HttpRunner是一款面向http(s)协议的通用测试框架,只需要编写一份可维护的YAML/JSON脚本,即可实现自动化测试,性能测试,线上监控,持续集成等多种测试需求。
◈充分复用优秀的开源项目,不追求重复造轮子,而是将轮子组成战车。
◈遵循 约定大于配置 的准则,在框架功能中融入自动化测试最佳工程实践
◈追求投入产出比,一份投入即可满足多种测试需求
YAML/JSON
的形式描述测试场景,保障测试用例描述的统一性和可维护性HttpRunner使用python开发,它支持python3.6+和大多数操作系统。
1.直接使用pip安装
>pip3 install httprunner
2.如需使用最新版本,可以使用gitlub仓库的url安装
>pip3 install git+https://github.com/httprunner/httprunner.git@master
3.如果已安装过,可以使用-U升级
>pip3 install -U httprunner
>pip3 install -U git+https://github.com/httprunner/httprunner.git@master
-V 大写的V
httprunner startproject 项目名称
httprunner startproject这个命令跟django里的django-admin.py startproject project_name 很像,没错,其实httprunner的想法正式来源于django,这就是httprunner作为一个优秀开源技术资源整合和复用的体现之一。
我把生成出的项目丢到vscode里方便查看,可以看的生成的目录结构如下图,那么这些都是什么意思呢?
◈debugtalk.py 放置在项目根目录下(借鉴了pytest的conftest文件的设计)
◈.env 放置在项目根目录下,可以用于存放一些环境变量
◈reports 文件夹:存储 HTML 测试报告
◈testcases 用于存放测试用例
◈har 可以存放录制导出的.har文件
◈具体用法会在后续中细讲,本章不展开。我们可以点开生成的testcases文件夹下的测试用例,里面是提供了一个可运行的demo内容的,那先来运行一下看看。
>hrun hr_demo
可以看到两个测试用例运行成功,前期准备工作结束。
比如百度首页的请求
首先抓包,可以使用fiddler,charles,浏览器F12等等。
Fiddler:选中请求,点击左上角的File——Export Sessions——(可以选择导出选中的也可以导出所有),这里我们选择导出选中的,导出HTTPArchive,文件名baidu_home.har,保存到了项目的har目录下。
F12:
导出har文件到hr_demo下的har文件夹中:
运行命令将har文件转换成测试用例:
>har2case baidu.har
生成完毕,在har目录下可以看到生成出的python文件:
因为httprunner封装了pytest,所有既可以用hrun去运行,也可以用pytest去运行。
hrun:
pytest:
很简单,只要在命令后面多加对应的参数就行了。-2y/--to-yml 或者 -2j/--to-json
转换为YAML:
转换为JSON:
看看生成的文件:
> hrun /path/to/testcase --html=report.html
查看html测试报告
执行测试,收集结果
生成报告,查看报告