• HttpRunner2.X开源接口测试框架学习(六):参数化设置


    前言

    在HttpRunner中,测试用例组织主要基于三个概念:

    测试用例集(testsuite):对应一个文件夹,包含单个或多个测试用例(YAML/JSON)文件

    测试用例(testcase):对应一个YAML/JSON文件,包含单个或多个测试步骤

    测试步骤(teststep):对应YAML/JSON文件中的一个test,描述单次接口测试的全部内容,包括发起接口请求、解析响应结果、校验结果等

    问题

    在自动化测试中,经常会遇到如下场景:

    测试搜索功能,只有一个搜索输入框,但有10种不同的类型的搜索关键字,此时我们需要对测试数据进行参数化。

    参数化设置应用

    方式一:

    1、在httprunner中,参数列表需要定义在testsuite中。以百度搜索为例。在testsuite中定义搜索的关键字如下:

     2、在yml测试用例中调用testsuite中设置的参数字段

     3、运行测试用例,可以在报告中看到按照设置的参数进行了三次查询

     

    方式二:利用csv文件进行参数化

    P(文件路径)  是httprunner内置的解析csv文件的函数

    1、csv文件搜索关键字配置如下:

     2、testcases/2021/0705/test_demo_01.yml中代码如下:

    #通过csv文件实现参数化
    - config:
        name: '验证百度搜索是否正确'
        base_url: 'https://www.baidu.com'
        output:
          - title
    
    - test:
        name: '百度搜索请求'
        request:
          url: '/s'
          method: GET
          headers:
            User-Agent: 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Mobile Safari/537.36'
            Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
            Accept-Encoding: 'gzip, deflate, br'
            Accept-Language: 'zh-CN,zh;q=0.9'
          params:
            wd: $searchword
        extract:
          title: <title>(.+?)</title>
        validate:
          - eq: ['status_code',200]
          - eq: [$title,$result]

    3、测试套件中配置如下:

     备注:参数名称必须和 csv文件表头的名称一致

    3、运行测试用例集中的test_demo_02.yml,可以在报告中看到按照设置的参数进行了三次查询

    方式三:利用debugtalk.py实现参数化

    Jmeter 、postman等工具可以获取 随机整数、顺序取值、随机字符串、随机手机号、身份证等,Httprunner中,只要你能用python创造出上述数据就可以放到httprunner中使用随机整数实现。

    先要确定需要多少个随机整数作为参数化测试使用,因为在parameters中参数的个数是通过列表中的元素决定的。

    1、debugtalk中按照需求编写获取随机数的函数

    2、测试用例数据不变

    3、测试套件中配置测试用例路径,调用debugtalk中的取随机数的函数即可

    debugtalk定义顺序取值函数

    debugtalk中定义生成指定长度的随机字符串的函数

    debugtalk中定义获取随机手机号函数

    choice()方法从指定序列中返回一个随机选择的元素。

    sample()方法用于截取列表的指定长度的随机数

    测试用例中需要以上函数,调用即可。

  • 相关阅读:
    Requests
    探索式测试(概念)
    IDEA_Java+maven+selenium3+testng自动化测试环境安装
    RobotFramework Formate
    Robot Framework_dictionary search
    Git
    配置robotframework框架的自动化环境
    Python学习之路
    对 Jenkins+ANT+Jmeter 接口测试的实践
    自动生成测试脚本方案浅析
  • 原文地址:https://www.cnblogs.com/lvhuayan/p/14961272.html
Copyright © 2020-2023  润新知