当前位置: 首页 > news >正文

接口自动化测试报告

前述:

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

脑图

image

测试环境

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

编写测试代码

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

代码结构展示

image

  • 代码地址
公共类---utils
  1. request_util.py:将requests库的功能进行二次封装,提供统一的接口调用方式;通过全局变量host统一管理被测系统的基地址。
  2. yaml_util.py:提供对YAML格式测试数据文件的读写操作,允许测试过程中动态写入和读取数据。
  3. 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文件配置,输出详细测试结果
    image
  • 使用allure在终端生成可视化测试报告
    • 命令:allure generate .\allure-results\ -o .\allure-reports --clean
      image
      image
  • 可以看到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 进行参数化测试,极大地减少代码冗余;实现“测试数据”与“测试逻辑”的分离。
http://www.jsqmd.com/news/343299/

相关文章:

  • VASP+Wannier90 计算位移电流和二次谐波SHG
  • 【人工智能学习-AI入试相关题目练习-第十八次】
  • 数字图像处理篇---闭运算
  • 【大学院-筆記試験練習:线性代数和数据结构(24)】
  • 数字图像处理篇---形态学梯度
  • 从零开始学Java随记D1
  • 数字图像处理篇---顶帽
  • 数字图像处理篇---腐蚀
  • 从技术到商业:AI应用架构师拆解数据交易定价系统的核心逻辑
  • 帮我写一个提示词,用于根据视频内容,总结提炼生成闪记卡
  • 数字图像处理篇---膨胀
  • 数字图像处理篇---开运算
  • 这6款基于AI的工具,帮助用户在论文写作中实现更高效率与更优质的结果
  • 利用AI驱动的6款强大工具,论文写作时间缩短了,内容质量也得到了显著优化
  • 数字图像处理篇---常见的形态学操作
  • Kubernetes Charts资源包管理工具之Heml学习总结
  • 详解四大格式(PIL/OpenCV/NumPy/PyTorch)的转换原理与场景选择
  • 互联网大厂Java求职面试实录:从核心技术到AI大数据应用
  • AI技术支持的6款工具,为论文写作带来更快的完成速度和更出色的内容表现
  • 图像边缘检测算法全景解析
  • 2026年热门的深圳CNC操机编程培训,深圳无人机编程培训学校用户好评推荐榜 - 品牌鉴赏师
  • 借助AI驱动的6款智能工具,用户可以大幅加快论文写作速度并提升内容质量
  • P1449 后缀表达式
  • Chronyd与NTP
  • 这6款由AI驱动的专业工具,为论文写作提供了更快的速度和更高的质量保障
  • AI赋能的6款实用工具,让论文写作变得更加流畅,同时大幅改善最终成果质量
  • 国产时序数据库的云原生实践:Apache IoTDB 与 TimechoDB 在物联网场景的深度应用
  • AI效率工具基础版与专业版的核心差异详解:涵盖10款工具
  • 剑桥大学定义图形世界:神经网络让纹理压缩像画家调色一样自然
  • 开发报销单自动填写工具,导入发票信息(金额,日期,品类),自动填充报销单,核对无误后导出,支持按公司规范调整,节省报销时间。