美文网首页
03-Httprunner接口自动化第三篇:参数化&debugt

03-Httprunner接口自动化第三篇:参数化&debugt

作者: gz_tester | 来源:发表于2022-06-20 09:26 被阅读0次

    一、用例提取公共变量

    在 HttpRunner 中,支持变量申明(variables)和引用($var)的机制。在 config 和 teststeps 中均可以通过 variables 关键字定义变量,然后在测试步骤中可以通过 $ + 变量名称 的方式引用变量。区别在于,在 config 中定义的变量为全局的,整个测试用例(testcase)的所有地方均可以引用;在 test 中定义的变量作用域仅局限于当前测试步骤(teststep)。

    1.1 config变量

    config:
      name: 测试用例-selectInfoyName
      base_url: https://baidu.com/
      variables:
          username: tester1
    

    1.2 teststeps变量

    teststeps:
    
      - name: selectInfoyName
        request:
          method: POST
          url: /test/v1/api/user/selectInfoyName
          json: {}
        variables:
            username: tester2
    

    二、参数化驱动

    2.1 在config中直接传输数据

    config:
        name: 查询测试接口
        variables:
            username: tester
        base_url: https://baidu.com/
        parameters:
            proveTypeNo: ["1", "2", "3"]
    
    
    teststeps:
    
        -   name: 查询测试接口
            request:
                url: /test/v1/api/prove/queryList
                method: POST
                json:
                    proveTypeNo: $proveTypeNo
            setup_hooks:
                - ${headers($request, $username)}
            validate:
                -   eq: [status_code, 200]
                -   eq: [json.code, "200"]
    
    

    2.2 采用csv的形式

    config:
        name: 测试接口
        variables:
            username: tester
        base_url: https://baidu.com/
        parameters:
            proveTypeNo-templateType: '${parameterize(./testdata/test/queryTemplatePng.csv)}'
    
    teststeps:
    
        -   name: 移动端 测试
            request:
                url: /test/v1/api/prove/queryList
                method: POST
                json:
                    proveTypeNo: $proveTypeNo
                    templateType: $templateType
            setup_hooks:
                - ${headers($request, $username)}
            validate:
                -   eq: [status_code, 200]
                -   eq: [json.code, "200"]
    

    三、debugtalk的使用

    HttpRunner 的实现方式为,支持热加载的插件机制(debugtalk.py),可以在 YAML/JSON 中调用 Python 函数。

    测试用例文件的同级或其父级目录中创建一个 debugtalk.py 文件,然后在其中定义相关的函数和变量。

    然后,我们在 YAML/JSON 测试用例文件中,就可以对定义的函数进行调用,对定义的变量进行引用了。引用变量的方式仍然与前面讲的一样,采用+ 变量名称的方式;调用函数的方式为{func($var)}。

    可参考代码:

    
    config:
        name: 测试接口
        variables:
            username: tester
        base_url: https://baidu.com
        parameters:
            proveTypeNo-templateType: '${parameterize(./testdata/test/queryTemplatePng.csv)}'
    
    teststeps:
    
        -   name: 测试接口
            request:
                url: /test/v1/api/prove/testTemplatePng
                method: POST
                json:
                    proveTypeNo: $proveTypeNo
                    templateType: $templateType
            setup_hooks:
                - ${headers($request, $username)}
            validate:
                -   eq: [status_code, 200]
                -   eq: [json.code, "200"]
    

    四、 上下级参数关联场景


    image.png

    相关文章

      网友评论

          本文标题:03-Httprunner接口自动化第三篇:参数化&debugt

          本文链接:https://www.haomeiwen.com/subject/ugdqvrtx.html