httprunner-环境与登录接口案例
前言
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试。
具有以下优点:
- 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
- 采用 YAML/JSON 的形式描述测试场景,保障测试用例描述的统一性和可维护性
- 借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑
- 支持完善的测试用例分层机制,充分实现测试用例的复用
- 测试前后支持完善的 hook 机制
- 响应结果支持丰富的校验机制
- 基于 HAR 实现接口录制和用例生成功能(har2case)
- 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
- 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
- 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
- 极强的可扩展性,轻松实现二次开发和 Web 平台化
环境准备
httprunner目前有2个版本,1.x和2x版本 ,具体安装安装哪个版本,可以根据不同需求。
1.5.8 多了个html报告模板。2.x 要用这个模板需要手动安装
httprunner 在安装的时候建议加上版本,默认是安装最新版,最新版在执行脚本时,会有报错的情况出现。
本篇安装环境
python3.7,httprunner=2.2.6
使用pip安装:
pip install httprunner==2.2.6 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
后面为安装源,这里选择国内镜像环境。不加 -i 后面的,默认从官网下载,速度较慢。
安装完成后检查版本号
hrun -V
登录案列
请求地址:http://127.0.0.1:8000/api/login
请求方法:POST
请求头部:{"Content-Type": "application/json"}
请求参数:{"username":"test1","pwd":"111111"}
编写yml/yaml格式脚本
- config: name: logincase base_url: http://127.0.0.1:8000 - test: name: login case1 request: url: /api/login method: POST headers: Content-Type: application/json User-Agent: python-requests/2.18.4 json: username: test password: 111111 validate: - eq: [status_code, 200] - eq: [headers.Content-Type, application/json] - eq: [content.msg, login success!] - eq: [content.code, 0]
json格式
1 [{ 2 "config": { 3 "name": "logincase", 4 "base_url": "http://127.0.0.1:8000" 5 } 6 }, 7 { 8 "test": { 9 "name": "login case1", 10 "request": { 11 "url": "/api/login/", 12 "method": "POST", 13 "headers": { 14 "Content-Type": "application/json", 15 "User-Agent": "python-requests/2.18.4" 16 }, 17 "json": { 18 "username": "test", 19 "password": "111111" 20 } 21 }, 22 "validate": [{ 23 "eq": ["status_code", 200] 24 }, 25 { 26 "eq": ["headers.Content-Type", "application/json"] 27 }, 28 { 29 "eq": ["content.msg", "login success!"] 30 }, { 31 "eq": ["content.code", 0] 32 33 } 34 ] 35 } 36 } 37 ]
运行用例
cmd运行,cd到login.yml目录,运行
hrun login.yml
json 格式运行也一样
查看测试报告
运行完成后会在当前目录生成一个report文件夹,里面会有一个html格式的报告文件,按时间戳生成的


浙公网安备 33010602011771号