接口自动化测试工具HttpRunner的介绍
更新时间:2021-09-09 06:27:31 作者:admin 浏览:572
接口自动化测试工具HttpRunner的介绍
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 reimport sysfrom httprunner.cli import main_hrun_aliasif __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(),判断路径是否存在。
进入 __make() ,加载yml/json文件,并准备数据(按照数据的优先级进行复制,从低到高)。
进入make_testcase(),将yml/json文件基于模板生成对应的py文件。
最后回到main_run()方法,继续执行main_make()以下的代码,可以发现,程序最终将创建的py文件交给pytest.main()来执行。
以上是关于接口自动化测试工具HttpRunner的介绍,由多测师亲自撰写,全网独家提供! http://www.aichudan.com/