找回密码
 立即注册
首页 业界区 业界 接口自动化测试报告

接口自动化测试报告

垢峒 2026-2-4 23:25:00
前述:


  • 博客系统主要包括登录接口、列表接口、博客详情接口、用户认证接口、编辑接口、作者信息接口。通过开发者工具抓取相关url,使用脑图设计出相关测试样例,对该系统进行接口测试。
脑图

1.png

测试环境


  • 技术栈:pytest框架、request模块、PyYAML模块、jsonSchema模块、allure-pytest模块、logging模块
  • 集成开发环境:pycharm
编写测试代码


  • 根据上面的脑图,针对每一个接口编写相应的测试代码。
  • 统一封装公共属性,提高代码的复用性。
  • 为了在测试过程中能够准确发现错误,在utils中加入日志模块,方便直接定位。
  • 使用yaml数据管理工具,实现测试数据与代码分离,便于数据管理和维护。
  • 通过JSON Schema验证响应格式,确保返回数据的结构正确性。
代码结构展示

2.png


  • 代码地址
公共类---utils


  • request_util.py:将requests库的功能进行二次封装,提供统一的接口调用方式;通过全局变量host统一管理被测系统的基地址。
  • yaml_util.py:提供对YAML格式测试数据文件的读写操作,允许测试过程中动态写入和读取数据。
  • logger_util.py:多层次日志输出,将不同级别的日志分开存储,便于定位错误。
登陆页面---test_login.py


  • 使用@pytest.mark.order(1)确保登录测试最先执行,成功登录是进行其他页面接口测试的基础。
  • 使用@pytest.mark.parametrize,结合脑图上面的用例,设置不同的条件进行登录测试。

    • 覆盖了各种异常登录场景
    • 新增测试场景只需添加新的参数组合
    • 通过一次定义,多次执行减少重复代码

列表页---test_list.py


  • 验证博客列表接口的正常功能,确保API按预期返回博客数据
  • 验证API的认证授权机制,确保未认证用户无法访问受保护资源
  • 从响应中提取关键数据供后续测试使用,实现测试间的数据传递
详情页---test_detail.py


  • 验证博客详情接口的正常功能,确保API按预期返回博客详细信息
  • 使用@pytest.mark.parametrize,实现了异常场景覆盖
  • 从YAML文件读取登录时生成的token,确保测试在已认证状态下执行
用户认证接口---test_getAuthorInfo.py


  • 补充了博客与作者信息关联的功能验证,完善了用户信息获取的测试覆盖,提供了作者信息查询的专项测试
  • test_getAuthorInfo验证在拥有合法 token 和有效 blogId 时,接口能返回正确的数据
  • 通过 @pytest.mark.parametrize 进行了等价类与边界值分析,测试了空值、负数、中文字符、超长数字等异常输入
编辑接口---test_add.py


  • 验证博客添加功能的完整性和正确性,确保用户能够成功创建新博客
  • 通过参数化测试覆盖各种边界条件,确保系统对异常输入的正确处理
  • 验证富文本内容(链接、图片等)的正确处理,确保系统对各种内容格式的支持
  • 验证标题和内容不能为空的业务规则,确保数据验证逻辑的正确性
用户信息接口---test_getUserInfo.py


  • 验证用户信息获取功能的完整性和正确性,确保用户能够成功获取自己的账户信息
  • 验证API的认证授权机制,确保未认证用户无法访问用户信息
  • 验证用户信息获取的业务规则,确保数据验证逻辑的正确性
测试结果展示


  • 配置好pytest.ini文件配置,输出详细测试结果
    3.png

  • 使用allure在终端生成可视化测试报告

    • 命令:allure generate .\allure-results\ -o .\allure-reports --clean
      4.png

      5.png


  • 可以看到32个测试用例全部通过,通过率百分百。
小结


  • 进行测试时需要关注代码执行的顺序,使用pytest-order第三⽅插件,控制测试用例的执⾏顺序。

    • 在test_login.py中使用@pytest.mark.order(1)--->访问任何接口都应该先进行登录,确保信息的隐私性。

  • 使用jsonschema对返回的数据格式进行校验,提高测试的效率和质量。
  • 测试阶段修改pytest.ini的配置为[pytest] addopts = -vs,输出具体的测试结果到终端,便于测试人员快速定位测试中出现的问题。
  • 完成测试后修改配置为[pytest] addopts = -vs --alluredir allure-results,并配合命令allure generate .\allure-results\ -o .\allure-reports --clean输出测试报告。
  • 使用简单的YAML文件存储关键数据,通过read_yaml和write_yaml函数统一管理数据存取,在测试开始前清空YAML文件防止数据污染。
  • 在编写某个测试接口的相关代码前,可以使用postman预测,确保接口地址的准确性。
  • 使用@pytest.mark.parametrize 进行参数化测试,极大地减少代码冗余;实现“测试数据”与“测试逻辑”的分离。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

2026-2-10 21:56:41

举报

您需要登录后才可以回帖 登录 | 立即注册