Fork me on GitHub

httprunner4.x学习 - 02-用例结构

测试用例(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 用于定义一个事务

 

posted @ 2024-04-04 23:35  测栈云  阅读(45)  评论(0编辑  收藏  举报