HTTPRunner 升级到2.0

之前使用HRUN1.0已经快一年来,  一直在关注开源社区的进展, 减年年初2.0就已经上线来, 由于担心稳定性差,文档又没有健全,迟迟没有升级; 

最近看开发文档已经全部更新到2.0 决定将之前的项目进行优化; 首先学习下新的框架有哪些亮眼的地方;

项目中文使用文档: https://cn.httprunner.org/examples/testerhome-login/

 

1、环境搭建,具体可以参考文档,非常详细, 由于之前用过  我就直接升级就行了;

pip3 install -U HttpRunner

2、搭建测试脚手架(不用自己在像之前一样自己构建测试框架; 可以使用现成的框架结构,以下作者对测试用例的理解,是不是很有道理)

  • 测试用例应该是完整且独立的,每条测试用例应该是都可以独立运行的;在 HttpRunner 中,每个 YAML/JSON 文件对应一条测试用例。
  • 测试用例包含 测试脚本 和 测试数据 两部分:
    • 测试用例 = 测试脚本 + 测试数据
    • 测试脚本 重点是描述测试的 业务功能逻辑,包括预置条件、测试步骤、预期结果等,并且可以结合辅助函数(debugtalk.py)实现复杂的运算逻辑;可以将 测试脚本 理解为编程语言中的 类(class)
    • 测试数据 重点是对应测试的 业务数据逻辑,可以理解为类的实例化数据;
    • 测试数据 和 测试脚本 分离后,就可以比较方便地实现数据驱动测试,通过对测试脚本传入一组数据,实现同一业务功能在不同数据逻辑下的测试验证。

hrun --startproject demo  #会在当前路径下生成测试脚手架哦,IDE打开后是这样的

  • YAML/JSON(必须):测试用例文件,存储接口测试相关信息
  • debugtalk.py(可选):存储项目中逻辑运算辅助函数
    • 该文件存在时,将作为项目根目录定位标记,其所在目录即被视为项目工程根目录
    • 该文件不存在时,运行测试的所在路径(CWD)将被视为项目工程根目录
    • 测试用例文件中的相对路径(例如.csv)均需基于项目工程根目录
    • 运行测试后,测试报告文件夹(reports)会生成在项目工程根目录
  • .env(可选):存储项目环境变量,通常用于存储项目敏感信息
  • .csv(可选):项目数据文件,用于进行数据驱动
  • reports:默认生成测试报告的存储文件夹

 

 3、批量生成自动化测试用例 har2case

和1.0使用基本没差, 利用抓包工具筛选出目标接口,批量导出 har格式, 然后转换成json 或 yml格式  稍加改造就是现成的测试用例

也支持使用Yapi 和 Swagger批量导出生成测试用例, 文档上是这么写的  我还没机会去试.

har2case x.har -2y  #不写-2y 默认会生成json格式

 

4、用例优化之提取公共变量config

config层是用例中存放公共变量的地方,解决参数复用的问题;

存储公共变量使用变量名 variables, 可以放在用例集上 也可以放在某个具体的测试用例中;

后面接口调用直接 ${ }  会优先查找用例层面的variable  然后在找用例集层面的variable.

 

5、用例优化之 参数透传 extract

与之前一样  支持参数透传  即一条用例可能会调用多个接口, 接口调用前后存在依赖  后面的接口请求参数  需要前面接口的返回值(比如登陆的token)

接口一可以使用extract关键字来匹配返回值  路径.  或正则表达式

接口二想引用接口一的返回值  ${id}

 

6、用例优化之 测试数据参数化 parameters  & debugtalk

独立参数参数化  

关联参数参数化

引入csv文件进行参数化取值

引入热加载,用例参数化过程中实时去执行函数获取参数值

 

7、用例优化之 hook机制

支持用例集的hook和测试用例层面的hook

 

8、用例优化之 测试用例分层机制 -api  -testcase

测试用例分层机制的核心是将接口定义、测试步骤、测试用例、测试场景进行分离,单独进行描述和维护,从而尽可能地减少自动化测试用例的维护成本。

api文件夹的作用:把重复的请求(请求token)抽离出去,引用时可以修改参数,用variable覆盖api参数, 

希望用例可以回归本质,每一个用例都可以独立运行,做到数据解藕

除了把单个请求抽离出来  也可以把单个测试步骤抽离出来  被其它用例引用来解决数据节藕的问题

 

9、环境变量设置 .env

在自动化测试中,有时需要借助环境变量实现某些特定的目的,常见的场景包括:

  • 切换测试环境
  • 切换测试配置
  • 存储敏感数据(从信息安全的角度出发)

10、用例执行

hrun yourcasepath.yml --log-level debug   

#默认情况下,HttpRunner 运行时的日志级别为INFO,只会包含最基本的信息,包括用例名称、请求的URL和Method、响应结果的状态码、耗时和内容大小。

 

11、采用locusts执行用例的压力测试

$ locusts -f  yourcasepath.yml

 

posted @ 2019-08-06 00:23  头大点怎么了  阅读(1243)  评论(0编辑  收藏  举报