本文记录关于自动化测试的基础学习内容
使用的语言:python
从这里开始介绍 HTTPrunner 这个框架
需要学习它的思想,为后续自己封装接口框架打基础
操作不需要完全会,后续会记录pytest框架的使用
一、HTTP runner概念
HTTP runner是一个面向HTTP协议的通用测试框架
思想:
只需要维护yaml、json、py文件就可以实现接口自动化测试、性能测试、线上监控、持续集成
二、设计理念
1、充分利用开源项目,不追求重复造轮子,而是将市面上强大的轮子组装成战车(降低框架的开发、学习成本)
2、遵循约定大于临时配置的准则
3、使用配置来组织测试用例
三、HTTP runner环境
1、安装python
2、安装HTTP runner
安装:pip install httprunner
验证:hrun -v
四、HTTP runner快速上手
1、HTTP runner命令
httprunner:主命令,用于所有功能
hrun:用于运行yaml、json、py格式测试用例
hmake:用于将yaml、json格式的测试用例转为py格式用例
har2case:用于将har文件转为yaml、json、pyt格式的测试用例
locusts:用于性能测试
2、HTTP runner使用流程
第一步:
用抓包工具抓包——导出har文件——打开pycharm——新建包文件——将har文件移动到文件下
第二步:
使用har2case命令将har文件转为yaml或者json或者py格式的测试用例
har2case 文件名:转为py测试用例
har2case 文件名 -2y:转为yaml测试用例
har2case 文件名 -j:转为json测试用例
第三步:
使用hrun命令运行测试用例
hrun 文件名
(不管是运行yaml文件还是json文件,实际上pycharm都是重新生成并运行py文件)
五、yaml测试用例结构
每一个测试用例都是list of dict结构(字典列表),分为config(配置)和teststeps(步骤)
config:
name: 用例名称
variable: 全局变量
verify: 是否开启https验证
base_url: 服务器IP
teststeps:
name: 步骤名称
request: 请求
headers: 请求头
method: 请求方式
params: 请求参数
url: 请求路径
vaildate: 断言
六、接口关联
提取方法:在request标签后面新增一个exteac标签,通过content或者body提取
config:
name: 用例名称
variable: 全局变量
verify: 是否开启https验证
base_url: 服务器IP
teststeps:
name: 步骤名称
request: 请求
headers: 请求头
method: 请求方式
params: 请求参数
url: 请求路径
exteac: 提取返回值
access_token: content.access_token
vaildate: 断言
使用方法:直接在params参数下面,写变量名:$提取保存的变量名
params:
token: $access_token
注意:可以直接用 $变量名 引用其他yml文件的变量,而不需要先导入文件
七、动态参数:通过debugtalk.py的热加载方式实现
1、创建一个debugtalk.py文件,在里面写函数
2、在yaml文件中,使用 $函数名(参数) 的方式调用
八、变量
在顶部config标签下的variable标签下,定义全局变量
在teststeps标签下的name标签后面,增加variable标签,定义局部变量
九、生成HTML报告(pycharm终端输入)
第一步:返回项目根路径
cd…
第二步:运行整个文件夹
hrun httprunners --html=httprunners/report.html
等号右边是生成报告的路径
生成的报告和pytest插件生成的一致