3.HttpRunner_variables变量声明与引用

简介

在 HttpRunner 中,
变量定义:
- 在variables定义变量
- extract中提取返回数据,作为变量。
变量引用:
- $变量名
- ${变量名}

定义变量区别在于:

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

案例:

# 测试名称(必须的),String
name: 获取 城市 的天气
# 变量(可选的), List,被上级(testcases,testsuite)覆盖
variables:
    # 设置变量,城市
    city:baseUrl: https://www.apiopen.top
    path: /weatherApi
    msg: "成功!"
# 默认域名(可选的).String
base_url: $baseUrl
# 请求参数(必须的), dict, 与request中的参数相同
request:
    method: GET
    url: $path
    params:
        # 通过 $+参数名称 的形式,应用变量
        city: ${city}# 提取器(可选的), dict,提取返回参数
extract:
    code: content.code
# 验证(可选的), list
validate:
    - eq: [$code , 200]
    - eq: [content.msg, $msg]
# 前置处理(可选的),list
setup_hooks:
# 后置处理(可选的),list
teardown_hooks:

局部变量

在登录案例中,账号和密码是写死的,一般写用例的时候,我们最好把这种可能会变的参数单独写个变量。做到测试数据和代码的分离,以便后续维护。

test中定义局部变量:

- test:
    name: login case1
    variables:
        username: wwwj111
        password: '123456'

引用usernamepassword变量

$username  $password

登录完整脚本如下:

- config:
    name: 登录接口
    variables: {}
- test:
    name: /user/login/
    variables:
        username: wwj111
        password: '123456'
    request:
        headers:
            Content-Type: application/json
        json:
            password: $password
            username: $username
        method: POST
        url: http://127.0.0.1:8009/user/login/
    extract:
        - token: content.token         # 提取token
    validate:
    -   eq:
        - status_code
        - 200
    -   eq:
        - content.user_id
        - 2
    -   eq:
        - content.username
        - wwj111

局部变量只在当前的test用例生效,在其它的test用例不会生效

全局变量:

如果要设置一个全局变量,需把变量声明(variables)放到config下,这样就在整个.yml文件生效了

- config:
    name: 登录接口
    variables:
        username: wwj111
        password: '123456'
- test:
    name: /user/login/
    request:
        headers:
            Content-Type: application/json
        json:
            password: $password
            username: $username
        method: POST
        url: http://127.0.0.1:8009/user/login/
    extract:
        - token: content.token         # 提取token
    validate:
    -   eq:
        - status_code
        - 200
    -   eq:
        - content.user_id
        - 2
    -   eq:
        - content.username
        - wwj111

环境变量

定义变量

默认情况下,在自动化测试项目的根目录中,有.env文件,并将敏感数据信息放置到其中,存储采用 name=value 的格式

USERNAME=wwj111
PASSWORD=123456

引用环境变量:

variable_name为变量名称
${environ(variable_name)}
${ENV(variable_name)}

运行测试时,指定加载的环境变量文件--dot-env-path + 环境文件路径

hrun api/天气.yml --log-level DEBUG --dot-env-path dev.env
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值