• 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]
    

      

  • 相关阅读:
    前端错误监控
    MeasureSpec内容
    java异常
    JAVA线程的xiao习:线程池 线程同步 线程间通讯 =》进程间通信
    四大组件的context的研究
    初遇Java StringBuffer 和 StringBuilder 类&&利用 StringBuilder 给TextView实现换行处理
    AlertDialog 的context 不能是application的context
    BroadCast用法以及notification用法
    安卓 ContentProvider
    远程service的使用思路
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/13510940.html
Copyright © 2020-2023  润新知