基于parameters参数实现参数化过程解析

一、问题描述

在之前的httprunner版本中(2.*之前),进行参数化传值利用测试用例中config下的parameters实现,如下所示:

# testcase_demo.yml文件

- config:
  name: "验证百度搜索是否正确"
  base_url: "https://www.baidu.com"
  parameters:
   search_word: ['天天向上','12306','newdream']

- test:
  name: "百度搜索请求"
  request:
   url: "/s"
   method: GET
   headers:
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,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: $search_word
  validate:
   - eq: ["status_code",200]

上述利用命令 hrun testcase_demo.yml 进行执行后,在 httprunner 2.* 上会提示 $search_word 不存在,原因是httprunner 2.*上不支持在测试用例文件中使用parameters字段。

二、问题解决

在 httprunner 2.* 版本中,只能在testsuite测试套件文件中调用用例文件的时候才可以使用参数化,如下代码:

# testsuite测试套件文件内容
config:
 name: 测试套件

testcases:
 - name: param_demo
  testcase: testcases/testcase_demo.yml
  parameters:
   search_word: ['天天向上','12306','newdream']

此时把之前出现问题代码的config部分中的parameters去掉,使用 hrun testsuite测试套件文件.yml 执行,即可完成参数化功能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Pytorch之parameters的使用

    1.预构建网络 class Net(nn.Module): def __init__(self): super(Net, self).__init__() # 1 input image channel, 6 output channels, 5*5 square convolution # kernel self.conv1 = nn.Conv2d(1, 6, 5) self.conv2 = nn.Conv2d(6, 16, 5) # an affine operation: y = Wx +

  • PDO版本问题 Invalid parameter number: no parameters were bound

    今天在处理bug的时候发现某一个很奇怪的问题,在执行某类操作的时候会报:Invalid parameter number: no parameters were bound,但是该问题在本地或是测试机上测试都没有重现,猜想是否和版本有关,于是就google了下,发现http://forum.typecho.org/topic.php?id=1501 该文的二楼说道,该问题是版本的bug,在php5.2.9以下的pdo中会出现.于是就是找了团队中另外一位同时的机子(5.2.6)做测试,果然重现该问

  • asp.net Parameters.AddWithValue方法在SQL语句的 Where 字句中的用法

    他的写法是这样的: 复制代码 代码如下: view plaincopy to clipboardprint? string strWhere = "'%美%'"; strSql = "SELECT * FROM area Where [name] like @strWhere";//这个就不好使 cmd.Parameters.AddWithValue("@strWhere", strWhere); string strWhere = "

  • Struts2源码分析之ParametersInterceptor拦截器

    前言 ParametersInterceptor拦截器其主要功能是把ActionContext中的请求参数设置到ValueStack中,如果栈顶是当前Action则把请求参数设置到了Action中,如果栈顶是一个model(Action实现了ModelDriven接口)则把参数设置到了model中. 下面是该拦截器的doIntercept方法源码: @Override public String doIntercept(ActionInvocation invocation) throws Ex

  • PowerShell函数中使用$PSBoundParameters获取输入参数列表实例

    本文介绍在自定义PowerShell函数时,有一个$PSBoundParameters的变量可以获取到输入参数列表.获取输入参入列表对我们进行功能调试有很大的帮助. 当我们在执行一个函数时,可以使用输入参数的值,但我在PowerShell中,参数有的是必选,有的是可选,那么我们怎么知道用户真实的输入了哪些参数呢? 在PowerShell函数中,有一个全局变量$PSBoundParameters,它是一个Hash表,里面保存了所有的输入参数和输入参数的值.通过输出这个变量,我们就可以看到所有的输入

  • ECMAScript6函数剩余参数(Rest Parameters)

    我们知道JS函数内部有个arguments对象,可以拿到全部实参.现在ES6给我们带来了一个新的对象,可以拿到除开始参数外的参数,即剩余参数(废话好多 O(∩_∩)O~). 这个新的对象和arguments不一样,它是程序员自定义的一个普通标识符,只是需要在前面加上三个点:... function func(a, ...rest) { console.log(a) console.log(rest) } func(1) func(1, 2, 3, 4) 注意func的第二个参数rest,前面有三

  • MyBatis3传递多个参数(Multiple Parameters)

    传递多个参数一般用在查询上,比如多个条件组成的查询,有以下方式去实现: 版本信息: MyBatis:3.4.4 1.自带方法 <select id="getUserArticlesByLimit" resultMap="resultUserArticleList"> select user.id,user.userName,user.userAddress,article.id as aid,article.title,article.content f

  • 浅谈Rails 4 中Strong Parameters机制

    要弄明白Rails 4 中Strong Parameters机制,首先我们要看看Rails3中的Parameters 在 Rails3 中创建或更新 Active Record 对象时,会有 Mass Assignment 安全问题.所以 Model 中需要列一个白名单,声明哪些属性可以被 parameter 的数据更新. Rails 3 # kings_controller.rb def create #{ name: 'David', sex:male, age: 31} @king = K

  • 基于parameters参数实现参数化过程解析

    一.问题描述 在之前的httprunner版本中(2.*之前),进行参数化传值利用测试用例中config下的parameters实现,如下所示: # testcase_demo.yml文件 - config: name: "验证百度搜索是否正确" base_url: "https://www.baidu.com" parameters: search_word: ['天天向上','12306','newdream'] - test: name: "百度搜索

  • 基于python调用psutil模块过程解析

    这篇文章主要介绍了基于python调用psutils模块过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用Python来编写脚本简化日常的运维工作是Python的一个重要用途.在Linux下,有许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等.要获取这些系统信息,Python可以通过subprocess模块调用并获取结果.但这样做显得很麻烦,尤其是要写很多解析代码. 在Python中获取系统信息的另一个好办法是

  • spring boot基于DRUID实现数据源监控过程解析

    这篇文章主要介绍了spring boot基于DRUID实现数据源监控过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 随着需求和技术的日益革新,spring boot框架是越来越流行,她也越来越多地出现在我们的项目中,当然最主要的原因还是因为spring boot构建项目实在是太爽了,构建方便,开发简单,而且效率高.今天我们并不是来专门学习spring boot项目的,我们要讲的是数据源的加密和监控,监控到好说,就是不监控也没什么问题,但

  • 基于SPRINGBOOT配置文件占位符过程解析

    这篇文章主要介绍了基于SPRINGBOOT配置文件占位符过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.配置文件占位符 1.application.properties server.port=8088 debug=false product.id=ID:${random.uuid} product.name=da mao mao product.weight=${random.int} product.fristLinePrice

  • 如何基于SpringBoot部署外部Tomcat过程解析

    这篇文章主要介绍了SpringBoot以war包形式部署到外部Tomcat过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 SpringBoot 项目打包时能打成 .jar 与 .war包文件,.jar使用 java -jar xx.jar 就可以启动,而 .war 可以部署到tomcat的 webapps 中,随tomcat的启动而启动. SpringBoot 本身是内置tomcat的,如果想部署到外部tomcat, 就要做一些改变.

  • springmvc中进行数据保存以及日期参数的保存过程解析

    1.在Controller类中接受传入的日期类型的参数时 <form action="user/todate.do" method="post"> 日期:<input type="text" name="date"/><br /> <input type="submit" value="查看" /> </form> @Reque

  • Python基于DB-API操作MySQL数据库过程解析

    Python提供了一个标准数据库API,称为DB-API,用于处理基于SQL的数据库. 与任何底层数据库的交互都可以使用DB-API,因为DB-API在代码与驱动程序之间提供了一个抽象层,可以根据需要替换底层数据库,而无需丢弃现有的代码. DB-API与底层数据库交互示例: ①代码 ⇆ ②使用DB-API ⇆ ③数据库驱动程序 ⇆ ④底层数据库(如MySQL等) 使用DB-API操作MySQL数据库例子 1.Windows安装MySQL数据库驱动程序MySQL-Connector/Python

  • Python基于进程池实现多进程过程解析

    1.注意:pool必须在 if __name__ == '__main__' 下面运行,不然会报错 2.多进程内出现错误会直接跳过该进程,并且默认不会打印错误信息 3.if__name__下面的数据需要通过参数传入主函数里面,不然主函数获取不到该数据值而报错. 4.若不通过传参形式传入数据,可以定义全局变量.但是全局变量的值不能在多进程里面进行修改. 代码如下 from multiprocessing import Pool # 进程池,用于多进程 import os # 用于获取当前执行的文件

  • 基于javassist进行动态编程过程解析

    今天在研究dubbo时,发现一个新的知识点,可以使用javassist包进行动态编程,hibernate也使用该包进行编程.晚上百度了很多资料,将它的特性以代码的形式展现出来. package com.zhi.demo; import java.lang.reflect.Field; import javassist.ClassPool; import javassist.CtClass; import javassist.CtConstructor; import javassist.CtFi

  • 基于SpringBoot实现定时发送邮件过程解析

    前提: 1.Springboot项目 2.引入maven 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 以下代码中涉及到的maven依赖有日志依赖,但是springboot都有集成,不用重新引入依赖 Application(程序入口)

随机推荐