接口自动化之HttpRunner初探 |Python 主题月

HttpRunner是一个基于Python的HTTP(S)测试框架,它使用YAML或JSON定义测试用例,支持参数化、变量提取和验证。通过pytest执行测试文件,提供详细测试报告。该文介绍了HttpRunner的主要特征、工作流程、用例管理和hook机制,帮助理解其使用和调试。
摘要由CSDN通过智能技术生成

作者:波小艺

介绍:

HttpRunner是一个简单优雅但功能强大的 HTTP(S) 测试框架。以YAML或JSON格式定义测试用例,保障测试用例描述的统一性和可维护性。程序执行的时候,会处理用户输入的yml/json文件并基于模板生成测试文件。最终通过pytest.main([])的方式去执行生成的用例文件。用户只需要通过json/yml文件去维护用例即可,不需要关心程序如何处理json/yml文件,如何生成测试文件等,简单快速通过pytest运行用例,并获取详细的测试报告。

主要特征:

  • 以YAML或JSON格式定义测试用例,保障测试用例描述的统一性和可维护性
    • testsuite > testcase > teststep(api)
    • 支持设计一系列的测试场景,每个测试场景可包含多个teststep。
    • 支持参数化设计
    • 支持variables/ extract/ validate/hooks机制(使用jmespath,提取和验证json响应)
    • 支持添加逻辑运算辅助函数(debugtalk.py),在测试脚本中实现复杂的动态逻辑
  • 在 HAR 支持下记录并生成测试用例。(使用charles去抓取请求,生成的用例文件可能还需要手动处理)
  • 使用 pytest 执行测试文件 ,数百个插件随时可用。使用 allure,测试报告可以非常强大。
    • run_testcase():处理请求前的数据
    • __run_step() > __run_step_request(使用requests发起api请求并导出其他用例引用的变量(__step_datas))
  • 通过重复使用locust ,您可以进行性能测试,而无需进行额外的工作。
  • 支持CLI命令,与CI/CD完美结合。

工作流程

想要了解其工作流程,最好的办法就是使用debug模式,那在这里应该如何使用debug来参透httprunner的执行流程呢?跟着我来看下:

调试技巧

使用pycharm进行调试,且python环境使用Virtualenv进行管理

  • 安装:pip install httprunner
  • /venv/bin/ 目录下找到hrun文件

  • 编辑hrun文件,为sys.argv赋值。第一个是hrun的绝对路径,第二个是用例的绝对路径
  • sys.exit(main_hrun_alias())这里打个断点,那么就可以开始愉快的调试之旅了~
# -*- coding: utf-8 -*-
import re
import sys
from httprunner.cli import main_hrun_alias
if __name__ == '__main__':
    sys.argv = ['/Users/boyizhang/PycharmProjects/apitest/venv/bin/hrun', '/Users/boyizhang/PycharmProjects/apitest/hruntests/testcases/testheader.yml']

    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main_hrun_alias())

工作流

调试日志:

  • 进入main_hrun_alias()中,并为sys.argv的列表插入新的一项“run”(因为我们是执行用例)

  • 进入main(),因为我们含有“run”,所以现在开始执行用例。

  • 进入main_run(extra_args),根据extra_args(yml/json路径)将yml/json文件生成python文件(测试文件)

  • 进入main_make(),判断路径是否存在

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值