zoukankan      html  css  js  c++  java
  • 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]
    

      

  • 相关阅读:
    微信OpenID获取
    2015总结及2016目标
    python start
    csv到mysql数据库如何分割
    读书 --- 老码识途
    读书--编写高质量代码 改善C#程序的157个建议2
    读书--编写高质量代码 改善C#程序的157个建议
    BinarySearch
    在aspx中写c#
    AWS 2020 Innovate所有视频
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/13510940.html
Copyright © 2011-2022 走看看