Httprunner 初步探索 - 持续更新中

本文介绍了httprunner的使用,包括其安装、自动生成项目框架、从fiddler导出har文件转换为yaml、定义和使用变量以及调用函数。还展示了如何生成allure测试报告,并提供了详细的步骤和示例。
摘要由CSDN通过智能技术生成

前言

例如:学了unittest,又看了pytest,以为可以歇一会了,又听说了httprunner,而且还超级方便超级简单!就像手动挡的车换了自动挡?忍不住又卷起来。

一、httprunner是什么?

httprunner是霍格沃兹学院集成pytest、allure等库的成熟框架,可以自动生成用例和代码。目前仅支持python3.6及以上版本。

二、httprunner初体验

1.引入库

安装命令如下

# 这里有个坑,默认安装的是最新版本的,但是最新版本不支持 ‘httprunner startproject xx项目名’命令
pip install httprunner
pip install har2case
python -m pip install markupsafe==2.0.1

# 如果已经安装了最新版本的建议卸载重装
pip uninstall httprunner
# 我安装了3.1.1版本的,现在可以了
pip install httprunner==3.1.1

安装成功后继续执行查看版本命令,如下图则表示已经安装成功啦

hrun -V

在这里插入图片描述

2. 自动生成httprunner框架

# httprunner startproject 项目名(也可写绝对地址)
# 注意这里的项目名必须是新的且4.0版本的httprunner无法执行此命令
httprunner startproject httprunner_case

生成的框架如下
在这里插入图片描述
【har】:存放har格式的文件,例如通过fiddler下载的.har格式就会放在这里。
【reports】:生成的测试报告
【testcases】:测试用例
【env】:存放环境变量
【debugtalk.py】:存储自定义函数,例如yml中可调用这里面的函数

3. fiddler导出har文件并转换成yaml文件

fiddler是一款抓包工具,具体使用方法可参考:https://blog.csdn.net/notHavaBug/article/details/120255922?spm=1001.2014.3001.5502
我们使用fiddler抓包我们要测试的接口然后导出har类型的文件再通过har2case转换成yml文件
fiddler 操作步骤:选中接口 - 点击File - Export Sessions - Selected Sessions…(如果要导出全部则选择All Sessions…) - 下拉框选择 HttpArchive v1.1 - next - 保存为.har的文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果对fiddler不熟,咱也是可以用浏览器的,比如我用的谷歌,F12查看 - Network - 点击下载图标即可(不推荐用浏览器导出,总是会出现奇奇怪怪的问题~),如图:
在这里插入图片描述

将保存好的文件转换成yml文件

# har转yml: har2case har文件路径 -2y(这里如果用-2j则是生成json文件)
har2case C:\Users\yzzn\Desktop\login.har -2y
# 自动执行yml文件:hrun yml文件路径
hrun login.yml

在这里插入图片描述
在这里插入图片描述

4. yml变量以及调用函数

测试用例中不可能少了变量的,那在yaml中又要怎么定义呢?

1. 定义环境变量

在httprunner自定义生成的框架中有一个.env文件,这个就是用来存放环境变量的,操作如下:
在.evn文件中,以键值对形式加入变量(不区分大小写):
在这里插入图片描述
在yaml文件中引用环境变量

${ENV(username)}

在这里插入图片描述

2. 定义局部变量

我们登录一个网站后token总是处处都需要用到,这个时候我们就需要提取接口的参数并作为其他接口的变量了,操作如下:
首先在yml文件中,在登录的接口加入extract属性并定义一个名字和返回数据中需要用到的字段名,例如我取名叫token,而我接口返回的数据格式是{code:xxx,data:{token:xxx,name:xxx}}那我的写法如下图:(content开头是固定格式哦!值得注意的是,这是一个局部变量!意思就是说只有当前yml文件可用,如果其他yml文件也想用的话,不好意思只能再写一个login接口
在这里插入图片描述
调用局部变量的格式是 $ 变量名, 例如:$ token(不要留空格,这里是$ 是csdn的关键符号所以我留了空格)
在这里插入图片描述

3. 调用函数

在httprunner自定义生成的框架中有一个debugtalk.py,在这里定义你要的函数
在这里插入图片描述
在yml中引用: ${函数名()}
在这里插入图片描述

5. 生成allure报告

得先安装allure哦,可参考https://blog.csdn.net/notHavaBug/article/details/124176397

import os
import time

if __name__ == '__main__':
    # 生成allure报告
    date = time.strftime('%Y-%m-%d')
    os.system(f'hrun har/login_test.py --alluredir=./reports/json --clean-alluredir')
    os.system(f'allure generate --clean ./reports/json -o ./reports/{date}/html')
    os.system(f'allure open ./reports/{date}/html')
    
    # 也可以生成httprunner自带的html报告,就是比较丑
    # os.system('hrun har/login_test.py --html=./reports/result.html --self-contained-html')

总结

持续研究中,如有不对之处,欢迎指出

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值