httprunner2.x学习1-环境与登录接口案例
2021-02-06 21:16
标签:validator pts config 二次开发 开发 录制 ram 记录 variables 由于之前写过一个 httprunner 系列是针对 1.5.8 版本写的教程, httprunner版本更新的还挺快的,最近已经到3.x版本了,看了下改动还是挺大的。 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试。 具有以下优点: 分层机制 是2.x 版本才有的功能, 1.x 版本不支持分层机制 httprunner目前有3个版本,1.x和2x版本和3.x版本,本篇以2.5.7版本为学习的基础版本 使用pip安装 pip install httprunner==2.5.7 安装完成后检查版本号 hrun -V 登录之后获取token这是最常见的场景了,接下来以独立接口为案例,登录接口这个是访问我本地的接口,你们是没法访问的, 使用httpapi命令行工具,访问后测试接口报文信息如下 接下来转换成httprunner的YAML格式脚本用例,保存为test_login.yml 如果你不喜欢yaml格式,用json也是可以的。新建一个test_login2.json文件,内容如下 运行用例很简单,直接在cmd里面,cd到test_login.yml目录,运行 hrun test_login.yml 或者执行json文件 hrun test_login2.json 执行结果如下 运行完成后会在当前目录生成一个report文件夹,里面会有一个html格式的报告文件,按时间戳生成的 点开log可以查看详情 请求(request) 返回 (response) 断言 (Validators) 这一篇跟1.x版本没什么区别 httprunner2.x学习1-环境与登录接口案例 标签:validator pts config 二次开发 开发 录制 ram 记录 variables 原文地址:https://www.cnblogs.com/yoyoketang/p/13109808.html前言
但是考虑到目前还是有很多公司的小伙伴在用 2.x 版本,所以这里在之前 1.5.8 基础上快速的更新一遍,重复的内容就直接复制过来的
对于直接看2.x 版本的小伙伴 也是可以快速上手的,这样就不用纠结1.x版本和2.x版本的区别了。
环境准备
D:\soft\venv_hrun\Scripts>hrun -V
2.5.7
使用案例
具体的登录接口开发需要用到django,查看这篇https://www.cnblogs.com/yoyoketang/p/11517213.html
登录接口相关文档信息如下:
http://127.0.0.1:8000/api/v1/login/
C:\Users\dell>http http://127.0.0.1:8000/api/v1/login/ username=test password=123456 -v
POST /api/v1/login/ HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 42
Content-Type: application/json
Host: 127.0.0.1:8000
User-Agent: HTTPie/1.0.3
{
"password": "123456",
"username": "test"
}
HTTP/1.1 200 OK
Allow: POST, OPTIONS
Content-Length: 109
Content-Type: application/json
Date: Thu, 19 Sep 2019 15:15:18 GMT
Server: WSGIServer/0.2 CPython/3.6.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"code": 0,
"msg": "login success!",
"token": "000038efc7edc7438d781b0775eeaa009cb64865",
"username": "test"
}
编写yml格式脚本
# 上海悠悠,httprunner QQ交流群:1121184576
- config:
name: logincase
variables: {}
- test:
name: login case1
request:
url: http://127.0.0.1:8000/api/v1/login/
method: POST
headers:
Content-Type: application/json
User-Agent: python-requests/2.18.4
json:
username: test
password: 123456
validate:
- eq: [status_code, 200]
- eq: [headers.Content-Type, application/json]
- eq: [content.msg, login success!]
- eq: [content.code, 0]
json格式
# 上海悠悠,httprunner QQ交流群:1121184576
[{
"config": {
"name": "logincase",
"variables": {}
}
},
{
"test": {
"name": "login case1",
"request": {
"url": "http://127.0.0.1:8000/api/v1/login/",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"User-Agent": "python-requests/2.18.4"
},
"json": {
"username": "test",
"password": "123456"
}
},
"validate": [{
"eq": ["status_code", 200]
},
{
"eq": ["headers.Content-Type", "application/json"]
},
{
"eq": ["content.msg", "login success!"]
}, {
"eq": ["content.code", 0]
}
]
}
}
]
运行用例
D:\soft\untitled>hrun test_login.yml
INFO HttpRunner version: 2.5.7
INFO Start to run testcase: logincase
login case1
INFO POST http://49.235.92.12:6009/api/v1/login/
INFO status_code: 200, response_time(ms): 180.63 ms, response_length: 109 bytes
.
----------------------------------------------------------------------
Ran 1 test in 0.184s
OK
INFO Start to render Html report ...
INFO Generated Html report: D:\soft\untitled\reports\20200612T111815.719602.html
D:\soft\untitled>
查看测试报告
文章标题:httprunner2.x学习1-环境与登录接口案例
文章链接:http://soscw.com/index.php/essay/51881.html