• 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

  • 相关阅读:
    C#文件读写常用类介绍
    C#实现注销、重启和关机代码
    Mybatis学习---基础知识考核
    Linux操作系统各版本ISO镜像下载
    Java学习---JDK的安装和配置
    Java学习---基础知识学习
    Java学习---常见的模式
    Java实例---黑白五子棋[单机版]
    Java实例---简单的超市管理系统
    Java实例---简单的个人管理系统
  • 原文地址:https://www.cnblogs.com/1026164853qqcom/p/11306517.html
Copyright © 2020-2023  润新知