IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Httprunner 初步探索 - 持续更新中 -> 正文阅读

[Python知识库]Httprunner 初步探索 - 持续更新中

前言

例如:学了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')

总结

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

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:26:21  更:2022-05-12 16:27:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 19:00:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计