首页 > 其他分享 >httprunner4.x学习02-用例结构

httprunner4.x学习02-用例结构

时间:2024-04-04 23:44:45浏览次数:21  
标签:02 websocket api 步骤 request testcase 用例 测试用例 httprunner4

测试用例(TestCase)

一条测试用例(testcase)应该是为了测试某个特定的功能逻辑而精心设计的,并且至少包含如下几点:

  • 明确的测试目的(achieve a particular software testing objective)
  • 明确的输入(inputs)
  • 明确的运行环境(execution conditions)
  • 明确的测试步骤描述(testing procedure)
  • 明确的预期结果(expected results)

对应地,HttpRunner 的测试用例描述方式进行如下设计:

  • 测试用例应该是完整且独立的,每条测试用例应该是都可以独立运行的
  • 在 HttpRunner 中,每个 YAML/JSON/pytest/go test 文件对应一条测试用例
  • HttpRunner 以 TestCase 为核心,将任意测试场景抽象为有序步骤的集合

config配置

YAML/JSON 格式用例(testcase)结构延续了之前的config 和 teststeps 两个部分

config:
    name: "login_imos_case"
    variables:
        username: admin
        password: quxue2023
    headers:
        User-Agent: ${get_user_agent()}
    verify: False
    export: [ "foo3" ]

config属性说明:

属性名称
是否必填 说明
name
 是  测试用例名称
 variables  否  指定测试用例的公共变量
 headers  否  公共请求头部
 verify  否  https请求时,是否校验证书,默认True,忽略证书校验可以设置为False
 export  否  指定导出的测试用例会话变量,把变量暴露出来,设置为全局变量
 parameters  否  参数化设置,对整个文件生效
     

除了上面的一些自动化会用到的参数,4.x 版本新增了一些关键字

 
     
     
     
     
     
     
     
 
     
     
     
     
     
     
     
属性名称是否必填作用
websocket WebSocket 断开重连的最大次数和间隔等
think_time 针对性能测试用,设置思考时间
weight 针对性能测试用到,分配给当前测试用例的虚拟用户权重优先级
parameters_setting 参数驱动的具体策略
environs 环境变量,如果未指定则会从 .env 文件导入
path 当前测试用例所在路径

测试步骤

测试步骤 teststep 属性

名称说明
name 名称
api 引用接口的步骤类型
testcase 引用其他testcase的步骤类型
request 发起 http请求的步骤类型

每个步骤可以添加以下属性

名称说明适用范围
setup_hooks 前置函数 request/api/websocket
extract 参数提取 request/api/websocket
teardown_hooks 后置函数 request/api/websocket
validate 结果校验 request/api/websocket
export 导出变量 testcase
variables 局部变量 通用

  4.x 版本新增其它关键字

名称说明
think_time 思考时间
rendezvous 集合点
websocket 用于发起 WebSocket 请求的步骤类型
transaction 用于定义一个事务

 

标签:02,websocket,api,步骤,request,testcase,用例,测试用例,httprunner4
From: https://www.cnblogs.com/quxue/p/18115338

相关文章

  • Flask02配置文件
    如下"""zaiapp.py中写如下app.config.from_object(类或类的路径)这样:就可以根据不同的环境用不同的类实现快速切换对应的配置文件"""classConfig(object):DEBUG=FalseDATABASE_URL='xxx'classProductionConfig(Config):DATABASE_UR......
  • P8025 【树链剖分求祖先】
    P8025【树链剖分求祖先】这题的题意简单,简单分类讨论一下这里就不赘述了。最后题目就简化成求一个点的\(k\)级祖先。开始会的解法是倍增,但是常数过高被卡了。常数更优秀的做法是树剖,每一次跳树链,最后可能有一条链太长只能跳一部分,这是因为树链剖分的\(dfn\)序是有序的,即每......
  • 02-字符串
    字符串*增join:添加s1='alex's='+'.join(s1)#输出的结果是a+l+e+xprint(s)s1=['a1','a2','a3','a4']s=':'.join(s1)##列表转换成字符串a1:a2:a3:a4<class'str'>前提:s1中的元素都必......
  • 2024-4-4 分块补题
    P3203[HNOI2010]弹飞绵羊记录每个位置跳出当前块所需要的步数和跳出的位置。从后往前统计#include<bits/stdc++.h>#definemaxn200100usingnamespacestd;intn,m,len;intpos[maxn],k[maxn];intnxt[maxn],stp[maxn];structfk{intl,r;}a[maxn];intread(){......
  • 2024年4月4号java学习
    继承减少编写重复的代码,提高代码的复用性,使用extends关键字用来表示继承一个类如果类和类有相同的特性,并且一个类是另一个类的一种那么就可以使用继承java中只支持单继承,但有多层继承所有的类都间接或者直接继承Object类子类能够继承父类的东西虚方法表中包含:非私有方法,非f......
  • 20211317李卓桐Exp3-免杀原理实验报告
    Exp3-免杀原理任务详情1.实践内容(4分+1分附加分)1.1方法(分)正确使用msf编码器,使用msfvenom生成如jar之类的其他文件(1分),veil,加壳工具(1分),使用C+shellcode编程(1分),1.2通过组合应用各种技术实现恶意代码免杀(1分)(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共......
  • 20240404
    T1洛谷P3436PRO-ProfessorSzu首先缩点。然后从所有没有入度的强连通分量开始dfs,进行dp,数一下每个点到终点有多少路径。要注意的是当且仅当一个点能够到达终点时才能够用来更新其他点的dp值。代码#include<iostream>#defineintlonglongusingnamespacestd;in......
  • 2024.4 做题记录
    299.CF1534ELostArray难崩。题意转化为每次翻转\(m\)个\(01\)序列的元素,要把全\(0\)翻成全\(1\)。不想分讨。考虑直接最短路求最小步数,转移就枚举选多少个原本已经有的数。交互就记录方案就行了。300.P9537[YsOI2023]CF1764B很棒的题。考察终态,可以发现最后输......
  • 小美的蛋糕切割(美团2024届秋招笔试第一场编程真题)
    题面核心思想前缀和(不过是以一整行或一整列的维度)(滑动窗口应该也可以)需要注意的是可以横着切也可以竖着切代码importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){finallongMOD=(long)(1e9+7);Scannerscanne......
  • 2024/4/4 分块补题
    2024/4/4分块补题P3203[HNOI2010]弹飞绵羊分块跳跳跳,核心是每次跳出当前块,用\(to[i]\)表示跳到的位置。#include<bits/stdc++.h>usingnamespacestd;#defineldlongdoubletemplate<typenameT>inlineTread(){Tx=0;charch=getchar();boolfl=false;......