HttpRunner使用技巧

一、HttpRunner简介
HttpRunner是一款面向HTTP(S)协议的通用测试框架,只需编写维护一份YAML/JSON文件,即可实现自动化测试、性能测试、线上监控、持续集成等测试需求。

二、HttpRunner特征 (yml文件和json配置文件)
1)支持以YAML/JSON格式定义测试用例
2)支持响应验证
3)支持初始化清除机制
4)支持套件级别的用例管理
5)支持pytest命令(hrun底层封装,h3新特性)
6)支持allure生成测试报告
7)支持性能测试(底层Locust)

三、HttpRunner版本差异

2.x 3.x
推荐格式 yml .py
命令行 项目实现 复用pytest命令
报告 独立实现 复用pytest报告生成
分层 api、case、suite RunTestCase、RunRequest
特点 代码和case分离 链式调用,简化结构

四、HttpRunner原理
在这里插入图片描述

五、早期框架
1)requests基于urllib3
2)自动化–requests<–性能–locust
3)locust基于requests
在这里插入图片描述

六、安装使用
环境说明:
HttpRunner使用python开发,支持python3.6以上版本和大多数操作系统。
安装:
pip install httprunner
验证:
httprunner -V 或 hrun -V

七、五大核心命令
1)httprunner:主命令,用于所有功能。
2)hrun:别名httprunner run,用于运行YAML/JSON/pytest测试用例。
3)hmake:别名httprunner make,用于将YAML/JSON测试案例转换为pytest文件。
4)har2case:别名httprunner har2case,用于将Har转换为YAML/JSON测试用例。
5)locusts:用于运行性能测试。
主要是hrun命令**

八、使用httprunner
1)方式1:录制生成用例(浏览器要默认系统代理,fiddler才抓得到)
1.fiddler抓包导出har格式文件

2.生成用例
har2case listcode.har

{
   "log":{
   "pages":[], "comment":"exported @ 2021/8/25 22:56:24", "entries":[{
   "time":76, "serverIPAddress":"120.55.190.222", "connection":"ClientPort:32736;EgressPort:32738", "request":{
   "headersSize":501, "postData":{
   "text":"", "mimeType":""}, "queryString":[{
   "name":"action", "value":"list_course"}, {
   "name":"pagenum", "value":"1"}, {
   "name":"pagesize", "value":"20"}], "headers":[{
   "name":"Host", "value":"120.55.190.222:7080"}, {
   "name":"Connection", "value":"keep-alive"}, {
   "name":"Accept", "value":"application/json, text/plain, */*"}, {
   "name":"User-Agent", "value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"}, {
   "name":"Referer", "value":"http://120.55.190.222:7080/mgr/ps/mgr/index.html"}, {
   "name":"Accept-Encoding", "value":"gzip, deflate"}, {
   "name":"Accept-Language", "value":"zh-CN,zh;q=0.9"}, {
   "name":"Cookie", "value":"sessionid=ej5157gqs5z1ukombfgaxkbmdi4khx2j"}], "bodySize":0, "url":"http://120.55.190.222:7080/api/mgr/sq_mgr/?action=list_course&pagenum=1&pagesize=20", "cookies":[{
   "name":"sessionid", "value":"ej5157gqs5z1ukombfgaxkbmdi4khx2j"}], "method":"GET", "httpVersion":"HTTP/1.1"}, "timings":{
   "blocked":-1, "ssl":0, "receive":0, "wait":56, "dns":0, "send":0, "connect":20}, "response":{
   "headersSize":172, "bodySize":1697, "statusText":"OK", "redirectURL":"", "status":200, "httpVersion":"HTTP/1.1", "cookies":[], "content":{
   "compression":0, "text":"{\"retcode\": 0, \"retlist\": [{\"id\": 3645, \"name\": \"111\", \"desc\": \"111\", \"display_idx\": 1}, {\"id\": 3648, \"name\": \"\\u82f1\\u8bed\", \"desc\": \"\\u9ad8\\u4e2d\\u82f1\\u8bed\", \"display_idx\": 1}, {\"id\": 3650, \"name\": \"\\u677e\\u52e4123456\", \"desc\": \"123467\", \"display_idx\": 1}, {\"id\": 3652, \"name\": \"\\u677e\\u52e412\", \"desc\": \"1234455\", \"display_idx\": 1}, {\"id\": 3654, \"name\": \"dge\", \"desc\": \"gegheh\", \"display_idx\": 1}, {\"id\": 3655, \"name\": \"g4h4\", \"desc\": \"y4y\", \"display_idx\": 1}, {\"id\": 3656, \"name\": \"g4444\", \"desc\": \"y1234\", \"display_idx\": 1}, {\"id\": 3657, \"name\": \"g4454\", \"desc\": \"y1234\", \"display_idx\": 1}, {\"id\": 3658, \"name\": \"11\", \"desc\": \"11\", \"display_idx\": 1}, {\"id\": 3659, \"name\": \"1122\", \"desc\": \"1111\", \"display_idx\": 1}, {\"id\": 3660, \"name\": \"112233\", \"desc\": \"1111\", \"display_idx\": 1}, {\"id\": 3661, \"name\": \"112233445566\", \"desc\": \"1111\", \"display_idx\": 1}, {\"id\": 3662, \"name\": \"xiaoyi12345\", \"desc\": \"1111\", \"display_idx\": 1}, {\"id\": 3664, \"name\": \"oyitu\\u513f\\u7ae5\", \"desc\": \"\\u70ed\\u70ed\", \"display_idx\": 1}, {\"id\": 3630, \"name\": \"\\u5316\\u5b66\", \"desc\": \"\\u5316\\u5b66\\u8bfe\\u7a0b\", \"display_idx\": 4}, {\"id\": 3631, \"name\": \"\\u521d\\u4e2d\\u5316\\u5b66\", \"desc\": \"\\u521d\\u4e2d\\u6570\\u5b66\\u8bfe\\u7a0b\", \"display_idx\": 4}, {\"id\": 3633, \"name\": \"\\u521d\\u4e2d\\u7269\\u7406\", \"desc\": \"\\u521d\\u4e2d\\u7269\\u7406\\u8bfe\\u7a0b666888\", \"display_idx\": 4}, {\"id\": 3641, \"name\": \"\\u521d\\u4e2d\\u97f3\\u4e50\\u559c\\u5267\\u4eba\", \"desc\": \"\\u521d\\u4e2d\\u97f3\\u4e50\\u559c\\u5267\\u4eba\\u8bfe\\u7a0b\", \"display_idx\": 4}, {\"id\": 3643, \"name\": \"\\u6570\\u5b66\", \"desc\
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妍婧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值