博客
关于我
python+pytest接口自动化 —— 自动化用例编写思路 (使用pytest编写一个测试脚本)
阅读量:796 次
发布时间:2023-03-07

本文共 1587 字,大约阅读时间需要 5 分钟。

通过编写接口自动化测试用例,厘清思路

一、明确测试对象

在进行接口自动化测试之前,我们需要明确测试的目标。为此,我们需要知道接口的具体信息,包括功能、协议、URL、请求方法、请求参数、响应参数等。这些信息通常可以通过接口文档获取,或者在没有文档的情况下使用抓包工具如Fiddler进行捕获。

抓取接口信息示例:

  • 请求URL:https://weathernew.pae.baidu.com/weathernew/pc
  • 请求方式:GET
  • 请求参数:{"query": "浙江杭州天气", "srcid": 4982}

通过抓包,我们可以获取到接口的详细信息,确保后续测试有明确的目标。

二、编写测试用例

编写测试用例时,我们需要将代码进行封装,以便管理和执行多个测试用例。Python中的pytest框架提供了强大的测试框架,支持单元测试和集成测试。

测试用例封装示例:

import requestsclass TestWeather:    """校验百度天气查询接口:https://weathernew.pae.baidu.com/weathernew/pc"""        def test_get_weather_normal(self):        """正向校验-查询存在的城市的天气"""        url = "https://weathernew.pae.baidu.com/weathernew/pc"        params = {"query": "浙江杭州天气", "srcid": 4982}        res = requests.get(url=url, params=params)        assert res.status_code == 200        assert "window.tplData" in res.text        def test_get_weather_error(self):        """异常校验-查询不存在的城市的天气"""        url = "https://weathernew.pae.baidu.com/weathernew/pc"        params = {"query": "微信公众号:测试上分之路", "srcid": 4982}        res = requests.get(url=url, params=params)        assert res.status_code == 200        assert "window.tplData" not in res.text        assert "暂未开通此城市查询" in res.text

关键点:

  • 请求数据:正向请求和异常请求的参数不同,需要分别处理。
  • 断言设置:确保接口返回的状态码和内容符合预期,例如:
    • 正向请求:状态码为200,返回window.tplData内容。
    • 异常请求:状态码为200,但不返回window.tplData内容,同时返回错误提示信息。

三、执行脚本获取测试结果

使用pytest框架管理测试用例,可以通过简单的命令执行多个测试用例。例如:

pytest test_weather.py -v

四、总结

通过以上步骤,我们可以清晰地看到接口自动化测试的流程:

  • 明确测试对象:获取接口的详细信息,包括URL、请求参数和响应参数。
  • 编写测试用例:将测试逻辑封装到类或函数中,并设置断言以验证接口的行为。
  • 执行测试:使用 pytest 等框架执行测试用例,获取测试结果。
  • 优化测试:根据测试结果反馈,调整测试用例,确保接口的稳定性和可靠性。
  • 通过这种方法,我们可以系统地进行接口自动化测试,确保接口的正确性和稳定性。

    转载地址:http://ugofk.baihongyu.com/

    你可能感兴趣的文章
    Python听写汇总结果
    查看>>
    python吊打Excel?屁!那是你不会用!
    查看>>
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
    查看>>
    python各进制的表述与转换
    查看>>
    python各种库安装
    查看>>
    python可视化matplotlib_如何使用Python中最强大的可视化工具Matplotlib?
    查看>>
    python可维护性_使用这7大神器,让你的Python 代码更容易于维护
    查看>>
    Python只运行一次while循环
    查看>>
    python变量的详细教程_Python零基础入门教程之语法入门[变量](第二期)
    查看>>
    Python变量命名方法-ChatGPT4o作答
    查看>>
    Python变量与运算符
    查看>>
    Python变量/运算符/函数/模块/string
    查看>>
    python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法
    查看>>
    python系列【仅供参考】:python flask框架 debug功能
    查看>>
    python发送notes邮件_使用python在Lotus Notes中发送邮件
    查看>>
    Python双版本下创建一个Scrapy(西瓜皮)项目
    查看>>
    Python双版本下No module named 'requests'
    查看>>
    python及pycharm2018软件安装教程
    查看>>
    python去重txt文本_Python实现的txt文件去重功能示例
    查看>>
    python去掉列表的逗号,从Python列表项中删除标点符号
    查看>>