pytest + yaml 框架,支持步骤中添加局部变量

前言

一个用例中会调用多个接口步骤,每个步骤中可能会存在相同的变量名,如登录用户名username,注册用户名usename, 这2个接口中需要使用不同的值。
于是可以在步骤中添加局部变量来解决此问题,局部变量的范围只在当前请求步骤中有效,不会污染全局变量的使用。
此功能实现在v1.2.0 版本上解决

环境准备

v1.2.0 版本解决和优化以下问题
1.断言的时候 None 和 ‘None’ 可以判断是相等,在yaml中可以写null 或者 None, 不区分类型了
2.添加局部变量variables
3.优化request 下的hook 功能
4.其它细节优化

使用示例

以下是示例demo

config:
    name: 步骤变量测试
    variables:
        user: test

test_s1:
    print: ${user}
    validate:
      - eq: ['${user}', test]

test_s2:
    name: 步骤变量优先
    print: ${user}
    variables:
        user: test3
    validate:
      - eq: ['${user}', test3]

test_s3:
    name: 全局变量不受影响
    print: ${user}
    validate:
      - eq: ['${user}', test]

test_s4:
    name: 每个步骤变量是独立的
    variables:
        user: testx
    print: ${user}
    validate:
      - eq: ['${user}', testx]

test_s5:
-
    name: 每个用例中可以有多个步骤变量
    variables:
        user: testq1
    print: ${user}
    validate:
      - eq: ['${user}', testq1]

-
    name: 每个用例中可以有多个步骤变量
    variables:
        user: testq2
    print: ${user}
    validate:
      - eq: ['${user}', testq2]

-
    name: 全局变量不受影响
    print: ${user}
    validate:
      - eq: ['${user}', test]

在request 请求中也可以支持步骤变量的使用

config:
  name: post示例
  variables:
    name: test

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

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

在上面的实例中,post 1 得到步骤变量里面的 yoyo 值,post 2得到全局变量里面的test

学习安排上

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。【保证100%免费】

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值