博客
关于我
python+pytest接口自动化 —— 自动化用例编写思路 (使用pytest编写一个测试脚本)
阅读量:797 次
发布时间: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在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
    查看>>
    python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
    查看>>
    python在gpu上运行_【python】python开启GPU加速
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在Conda环境中,但在Windows虚拟环境中没有激活
    查看>>
    python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
    查看>>
    python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>
    Python和RF编写web自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>