Skip to content

测试用例模板

测试用例是执行具体测试逻辑的基本单元,包含配置元件、前置处理器、后置处理器、多个取样器(执行步骤)等组件。

配置项

yaml
title: 测试用例 # 包含配置原件、前置处理器、后置处理器、多个取样器(执行步骤)
configelements:
  - testclass: http  # 该用例下所有http取样器将使用该配置
    config: # 可简化填写,无需config关键字,直接将配置内容至于上层
      protocol: http
      host: localhost
preprocessors: # 前置处理器
  - testclass: jdbc
    config: # 可简化填写,无需config关键字,直接将配置内容至于上层
      datasource: JDBCDataSource_var
      sql: 'select * from sys_user;'
    extractors:
      - { testclass: json, field: '$.user_name', ref_name: user_name }
      - { testclass: result, ref_name: result }
      - { testclass: regex, field: '"id":"([0-9]+)","create_', ref_name: r_total, match_num: 0 }
postprocessors: # 后置处理器
  - testclass: jdbc
    config: # 可简化填写,无需config关键字,直接将配置内容至于上层
      datasource: JDBCDataSource_var
      sql: 'select * from sys_user;'
children: # 执行步骤
  - title: 步骤1
    testclass: http
    variables: # 变量
      username: ryze
    config:
      method: post
      path: /api/login
      body: { userName: '${username}', password: '123456qq', sign: '__digest(${username}123456qq)' }
    extractors: ## 提取器
      - { testclass: json, field: '$.status', ref_name: status }
      - { testclass: json, field: '$.data', ref_name: message }
    validators: ## 验证器
      - { testclass: http, field: status, expected: 200, rule: == }
      - { testclass: json, field: '$.status', expected: 200, rule: '==' }
  - title: 步骤2
    testclass: http
    variables: # 变量
      username: ryze
    config:
      method: post
      path: /api/login
      body: { userName: '${username}', password: '123456qq', sign: '__digest(${username}123456qq)' }
    extractors: ## 提取器
      - { testclass: json, field: '$.status', ref_name: status }
      - { testclass: json, field: '$.data', ref_name: message }
    validators: ## 验证器
      - { testclass: http, field: status, expected: 200, rule: == }
      - { testclass: json, field: '$.status', expected: 200, rule: '==' }

参数说明

参数必填说明
title测试用例的标题
configelements配置元件列表,为该测试用例中的取样器提供默认配置
preprocessors前置处理器列表,在执行测试步骤之前运行
postprocessors后置处理器列表,在执行测试步骤之后运行
children测试步骤列表,包含具体的取样器

使用示例

yaml
title: 用户登录并获取信息
configelements:
  - testclass: http
    config:
      protocol: https
      host: api.example.com
children:
  - title: 用户登录
    testclass: http
    config:
      method: POST
      path: /login
      body:
        username: testuser
        password: testpass
    extractors:
      - testclass: json
        field: $.data.token
        ref_name: auth_token
    validators:
      - testclass: http
        field: status
        expected: 200
        rule: '=='
  - title: 获取用户信息
    testclass: http
    config:
      method: GET
      path: /user/profile
      headers:
        Authorization: Bearer ${auth_token}
    validators:
      - testclass: http
        field: status
        expected: 200
        rule: '=='

在上述示例中,我们定义了一个包含两个步骤的测试用例:

  1. 用户登录并提取认证令牌
  2. 使用认证令牌获取用户信息

测试用例还包含了配置元件(为HTTP取样器提供默认配置)和前后置处理器(用于日志记录)。

Released under the MIT License.