Httprunner 初步探索 - 持续更新中

Httprunner 初步探索 - 持续更新中,第1张

httprunner初步探索
  • 前言
  • 一、httprunner是什么?
  • 二、httprunner初体验
    • 1.引入库
    • 2. 自动生成httprunner框架
    • 3. fiddler导出har文件并转换成yaml文件
    • 4. yml变量以及调用函数
      • 1. 定义环境变量
      • 2. 定义局部变量
      • 3. 调用函数
    • 5. 生成allure报告
  • 总结

前言

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

一、httprunner是什么?

httprunner是霍格沃兹学院集成pytest、allure等库的成熟框架,可以自动生成用例和代码。

二、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')
总结

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/915901.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存