博客
关于我
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 安装程序:“写入文件 C:\Python27\pythonw.exe 时出错“
    查看>>
    Python 安装避坑指南:从入门到进阶
    查看>>
    Python 安装配置详解
    查看>>
    python 实现儿童算术游戏
    查看>>
    python 实现字符串转整型
    查看>>
    Python 实现定时任务的八种方案!
    查看>>
    Python 实现自动化测试 dubbo 协议接口
    查看>>
    python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
    查看>>
    Python 对mysql数据库的操作
    查看>>
    Python 对象数据库列表
    查看>>
    Python 导入requests报错No module named requests
    查看>>
    python 将函数加到列表中进行调用
    查看>>
    python 将图片与字符串相互转换
    查看>>
    Python 嵌套字典全面指南
    查看>>
    Python 工具v简介
    查看>>
    python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem
    查看>>
    Python 常见的错误类型和继承关系
    查看>>
    python 常量_零基础学Python系列之一:Python的变量与常量
    查看>>
    Python 并发编程
    查看>>
    Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
    查看>>