httprunner变量、参数关联与参数化

httprunner是基于requests的,所以处理思路与python中处理一样

目录

1、变量

2、httprunner参数关联

3、httprunner参数化

1、变量

比如说有一种场景,接口a需要传一个参数m值才能返回接口,接口b需要传参数m的值以及a的返回值才能获取结果,这时候可以把参数的值作为一个全局变量,然后传值

这里用到关键字variables

- config:
    name: my_test
    base_url: http://localhost:8090
    variables:
             m: test
- test:
    name: a
    request:
        url: /a
        method: post
        headers:
            Content-Type: application/json
        json:
            m: $m
    extract:
        - q: content.q         
    validate:
        - eq: [status_code, 200]
- test:
    name : b
    request :
        url : /b
        method : POST
        headers:
            Content-Type: application/json
            token: $token
        json:
            m: $m
            q: $q
    validate :
        - eq : [status_code,200]- config:
    name: my_test
    base_url: http://localhost:8090
    variables:
             m: test
- test:
    name: a
    request:
        url: /a
        method: post
        headers:
            Content-Type: application/json
        json:
            m: $m
    extract:
        - q: content.q         
    validate:
        - eq: [status_code, 200]
- test:
    name : b
    request :
        url : /b
        method : POST
        headers:
            Content-Type: application/json
            token: $token
        json:
            m: $m
            q: $q
    validate :
        - eq : [status_code,200]

2、httprunner参数关联

2个接口直接有关联,比如新增的接口需要登录信息才能请求成功,这时候就需要把登录信息传给登录接口,可以是cookies或者token

这里用到关键字extract关键字完成提取,这里以某平台的登录token关联为例:

mytest.yaml

- config:
    name: my_test
    base_url: http://localhost:8090
- test:
    name: test_demo case1
    request:
        url: /admin/login
        method: post
        headers:
            Content-Type: application/json
        json:
            username: admin
            password: 123456
    extract:
        - token: content.token         # 提取token
    validate:
        - eq: [status_code, 200]

- test:
    name : add
    request :
        url : /admin/add
        method : POST
        headers:
            Content-Type: application/json
token: $token
        json:
            m: $m
validate : - eq : [status_code,200]

  

3、httprunner参数化

在case中需要添加多种场景的参数取值组合,来检验case,以某平台登录为例子,以下记录以csv来传参,用到关键字parameters,传csv 使用parameterize(可简写为P)

myuser.csv

username,password
name1,123456
name2,1234567

mytest.yaml

- config:
    name: my_test
    base_url: http://localhost:8090
    parameters:
      - username-passwd:${P(myuser.csv)}   #1、参数名称与文件第一行成对应关系 2、从第2行开始取值
- test:
    name: test_demo case1
    request:
        url: /admin/login
        method: post
        headers:
            Content-Type: application/json
        json:
            username: $user
            password: $password
    validate:
        - eq: [status_code, 200]

  

原文地址:https://www.cnblogs.com/weizhideweilai/p/13510940.html