今天来给小伙伴们介绍一下httprunner,废话不多说,一切都在正文中,咱们直接看正文哟,喜欢的可以关注我哟。
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。 官方文档:https://docs.httprunner.org/
二、框架设计理念- 充分复用优秀的开源项目,不追求重复造轮子,而是将强大的轮子组装成战车
- 遵循 约定大于配置 的准则,在框架功能中融入自动化测试最佳工程实践
- 追求投入产出比,一份投入即可实现多种测试需求
- 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
- 以YAML或JSON格式定义testcase,使用pytest运行,更加简洁优雅
- 有了pytest,成百上千的插件随时可用
- 支持variables/extract/validate/hooks机制来创建极其复杂的测试场景
- 借助辅助函数(debugtalk.py),任何函数都可以在测试用例的任何部分中使用
- 支持完善的测试用例分层机制,充分实现测试用例的复用
- 使用python的第三方库jmespath,让提取和验证json响应更简单
- 基于 HAR 实现接口录制和用例生成功能(har2case)
- 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
- 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
- 集成了Allure,让测试报告更加漂亮,内容更丰富。
- 极强的可扩展性,轻松实现二次开发和 Web 平台化
四、环境说明
HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS、Linux、Windows 系统平台上。笔者使用的是macOS系统,所以后续都是基于macOS系统的学习。
另外,HttpRunner 支持 Python 3.5 及以上的所有版本,虽然 HttpRunner 暂时保留了对 Python 2.7 的兼容支持,但强烈建议使用 Python 3.6 及以上版本。
电脑上还没安装Python的小伙伴还请自行查询安装,非常的简单,这里附上python的官方地址:https://www.python.org/
五、安装HttpRunnerHttpRunner 的稳定版本托管在 PyPI 上,可以使用pip进行安装,非常的便捷。 打开CMD,输入安装命令即可:
pip install httprunner
如果已经安装过的,也可以进行更新升级一下。
pip install -U HttpRunner
检验是否安装成功 输入命令:
$ hrun -V
3.1.4
显示出版本号,说明安装成功。 你也可以通过输入:hrun -h,查看命令帮助说明。 在 HttpRunner 安装成功后,系统中会新增 4 个命令:
- httprunner: 核心命令
- hrun:httprunner 的缩写,功能与 httprunner 完全相同
- hmake:httprunner make的别名,用于将YAML/JSON测试用例转换为pytest文件
- har2case:辅助工具,可将标准通用的 HAR 格式(HTTP Archive)转换为YAML/JSON格式的测试用例
六、快速生成项目
环境装好了,相信很多小伙伴已经迫不及待的想run起来了,但是面对一个陌生的框架又无从下手。没关系,我们可以用脚手架来快速生成一个httprunner项目。 我们不妨先输入httprunner startproject -h,来看一下命令说明。
chenshiengdeMBP:PythonCode chenshifeng$ httprunner startproject -h
usage: httprunner startproject [-h] [project_name]
positional arguments:
project_name Specify new project name.
optional arguments:
-h, --help show this help message and exit
可以看出,只需要在命令后面带上项目名称这个参数就好了,那就先来创建一个项目,名称叫httprunner_demo。
chenshiengdeMBP:PythonCode chenshifeng$ httprunner startproject httprunner_demo
2022-05-04 17:27:16.152 | INFO | httprunner.scaffold:create_scaffold:43 - Create new project: httprunner_demo
Project Root Dir: /Users/chenshifeng/MyCode/PythonCode/httprunner_demo
created folder: httprunner_demo
created folder: httprunner_demo/har
created folder: httprunner_demo/testcases
created folder: httprunner_demo/reports
created file: httprunner_demo/testcases/demo_testcase_request.yml
created file: httprunner_demo/testcases/demo_testcase_ref.yml
created file: httprunner_demo/debugtalk.py
created file: httprunner_demo/.env
created file: httprunner_demo/.gitignore
$ tree httprunner_demo -a
2022-05-04 17:27:16.161 | WARNING | httprunner.scaffold:show_tree:29 - tree command not exists, ignore.
Sentry is attempting to send 0 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit
chenshiengdeMBP:PythonCode chenshifeng$
项目生成完毕,也是非常的简单。 如果你输入的项目名称已经存在,httprunner会给出warning提示。
chenshiengdeMBP:PythonCode chenshifeng$ httprunner startproject httprunner_demo
2022-05-04 17:29:00.631 | WARNING | httprunner.scaffold:create_scaffold:32 - Project folder httprunner_demo exists, please specify a new project name.
$ tree httprunner_demo -a
2022-05-04 17:29:00.636 | WARNING | httprunner.scaffold:show_tree:29 - tree command not exists, ignore.
Sentry is attempting to send 0 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit
相信了解过django的小伙伴能感觉到,httprunner startproject这个命令跟django里的django-admin.py startproject project_name 很像,没错,其实httprunner的想法正式来源于django,这就是httprunner作为一个优秀开源技术资源整合和复用的体现之一。
今天的httprunner的介绍就到这里了喜欢的可以给我点赞评论收藏加关注哟,你们的支持就是我的动力哟。