httprunner 4.x学习 - 3.variables 变量声明与引用

2023-08-22 11:05:54 浏览数 (1)

前言

在 HttpRunner 中,支持变量声明(variables)和引用(var 或 {var} )的机制。在 config 和 step 中均可以通过 variables 关键字定义变量,然后在测试步骤中可以通过

  • 在 config 中定义的变量为全局的,整个测试用例(testcase)的所有地方均可以引用;
  • 在 step 中定义的变量作用域仅局限于当前测试步骤(teststep)

config 全局变量

在config下声明变量(variables)是全局变量,这样就在整个.yml文件生效了

代码语言:javascript复制
config:
    name: logincase
    variables:
        user: test
        psw: "123456"

通过 {} 或 的形式来引用变量, 例如:var 或 {var}

代码语言:javascript复制
config:
  name: 引用变量
  variables:
    username: test123

teststeps:
-
  name: post
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      username: ${username}
      password: "123456"
  validate:
    - eq: [status_code, 200]

teststep 中局部变量

如下用例有2个步骤,其中第二个步骤post请求设置了局部变量, 那么它的作用范围只在第二个步骤中生效。

代码语言:javascript复制
config:
  name: 引用变量

teststeps:
-
  name: get
  request:
    method: GET
    url: http://httpbin.org/get
  validate:
    - eq: [status_code, 200]
-
  name: post
  variables:
    username: test123
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      username: ${username}
      password: "123456"
  validate:
    - eq: [status_code, 200]

变量优先级

原则上 config 变量和 step 变量名称尽量不要重复, 当config和step中都用同一个变量时,step变量优先级大于config变量

代码语言:javascript复制
config:
  name: 引用变量
  variables:
    username: test123

teststeps:
-
  name: get
  request:
    method: GET
    url: http://httpbin.org/get
  validate:
    - eq: [status_code, 200]
-
  name: post
  variables:
    username: test456
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      username: ${username}
      password: "123456"
  validate:
    - eq: [status_code, 200]

${username} 引用的结果是局部变量中的值 test456

0 人点赞