Jmeter参数化实现原理及过程解析

背景:

在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能。这种测试方式在业界称为数据驱动测试,而在实际测试工作中,测试工具中实现不同数据输入的过程称为参数化设置。

jmeter提供多种参数化设置的方式,常用的有:

1、使用 用户定义的变量元件 实现

2、使用 用户参数元件 实现

3、使用 函数助手 实现

4、使用 CSV 数据文件设置元件 实现

5、其它方式(数据库数据、beanshell等)实现

一、用户定义的变量元件实现

假如设置如下:

调用:

二、使用 用户参数元件 实现参数化:

用户参数元件可通过右键快捷菜单中选择 添加-前置处理器-用户参数进行添加,与用户自定义变量不同的是,用户参数列表中的参数取值可以在测试计划执行过程中发生变化。

调用:

三、函数助手实现参数化

调用:

四、采用csv进行参数化【最常用的方式】

csv数据文件中的csv称为逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。在jmeter中可以使用此类型文件提供的数据作为参数化。通过右击 -- 新增 -- 配置元件 -- CSV 数据文件设置元件进行添加。

注意:csv文件保存时候一定要选择utf-8 格式

设置线程数:

运行时候则会自动运行5次。

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

(0)

相关推荐

  • Jmeter如何添加循环控制器

    这篇文章主要介绍了Jmeter如何添加循环控制器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 场景描述:批量数据创建 新建线程组->编辑请求信息POST,创建产品 将入参录入Body Data 添加用户定义的变量,将数据参数化${value},在请求入参中引用 循环控制器应该控制的是多次请求,生成批量产品数据,添加循环控制器,设置循环次数,为3次,请求循环3次 添加循环变量参数,此处为年级递增创建,目标为:5,6,7 如果需要创建不同类型的数

  • Jmeter JDBC请求常见问题解决方案

    1. 时区设置问题 Cannot create PoolableConnectionFactory (The server time zone value '???��������??��??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration propert

  • Jmeter跨线程组共享cookie过程图解

    一.Jmeter版本 此次示例采用的是apache-jmeter-5.2.1版本 二.设置配置文件使Cookie管理器保存cookie信息. 修改apache-jmeter-5.2.1/bin/jmeter.properties文件,把CookieManager.save.cookies设置为true,并去掉前面的注释#号,如下图所示: ​ 修改完成后保存,退出,并重启jmeter. 三.在调试取样器和请求中查看具体的cookie信息 在线程组中添加HTTP Cookie 管理器,运行测试计划后

  • Jmeter跨线程组传值调用实现图解

    Jmeter的线程组之间是独立的,用Jmeter做接口测试或者是性能测试时,经常会涉及到多个线程组.那么如何将A线程组返回的变量信息提取后,传递给B,C线程组使用呢?这里以已登录接口返回的access_token值为例,在这里我用了一个BeanShell后置处理器来结合使用,过程如下: 第一步:测试计划:必须勾选[独立运行每个线程组] ​ 第二步:登录接口返回access_token ​ 第三步:通过正则表达式提取器提取:access_token ​ 第四步:在BeanShell后置处理器中使用

  • JMeter 实现Java请求步骤及原理详解

    1.jar包 添加jar包依赖,注意和Jmeter的版本相同: ApacheJMeter_core.jar,ApacheJMeter_java.jar 2.写Java请求 先继承 AbstractJavaSamplerClient,或者实现 JavaSamplerClient, 各方法和参数: getDefaultParameters(),用来自定义参数的. runTest(),请求主体. Arguments类: 参数管理: addAuguments() 用来添加参数. JavaSamplerC

  • 如何使用jmeter录制浏览器Https请求过程图解

    Jmeter录制脚本时,跟http脚本录制主要区别是,https录制需要添加安全证书. 那么在jmeter上如何操作呢?且看下面的操作步骤 一.jmeter的代理服务器及证书配置 1.打开jmeter后,在工作台右键选择非测试元件,添加"HTTP代理服务器" 2.在线程组下面添加"录制控制器" 3.在"http代理服务器"界面,目标控制器选择,之前添加好的线程组:排除模式添加 .*\.(js|css|PNG|jpg|png|gif).* ,过滤掉

  • Jmeter接口登录获取参数token报错问题解决方案

    Jmeter接口登录时获取到的参数token一直在变的问题,导致运行时总是报错 解决方法如下: 1.新建一个GET的HTTP请求 2.添加正则表达式提取器 记得name="_token" value="(.+?) 中间有一个空格,"_token"和value中间的空格(之前在这边耗费了很多时间) 3.新建一个POST的HTTP请求用于登录,_token值写为${token} 4.新建一个Debug Sampler用于查看获取到的token 值 5.运行,察

  • Jmeter线程组传参原理解析

    这篇文章主要介绍了jmeter线程组传参原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景介绍: 使用jmeter做登录和搜索接口的测试: 登录接口请求头为:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 搜索接口请求头为:Content-Type: application/json; charset=UTF-8 同时,搜索的请求头中需要用到登录接口返回值中

  • Jmeter参数化实现原理及过程解析

    背景: 在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能.这种测试方式在业界称为数据驱动测试,而在实际测试工作中,测试工具中实现不同数据输入的过程称为参数化设置. jmeter提供多种参数化设置的方式,常用的有: 1.使用 用户定义的变量元件 实现 2.使用 用户参数元件 实现 3.使用 函数助手 实现 4.使用 CSV 数据文件设置元件 实现 5.其它方式(数据库数据.beanshell等)实现 一.用户定义的变量元件实现 假如设置如下: 调

  • Python动态类型实现原理及过程解析

    在python中,我们使用变量时,并没有声明变量的存在和类型.类型是在运行过程中自动决定的. a = 3 python将会执行三步去完成上面这个请求. 1.创建一个对象代表3 2.创建一个变量a,如果a未创建. 3.将变量a与对象3相连接. 可以将变量a看作对象3的一个引用. a = 3 b = a 多个变量可以指向同一个对象,在Python中叫共享引用. Python在每个对象中保持了一个计数器,用于记录当前指向该对象的引用的数目,一旦计数器被设置为0,该对象的内存空间就会自动回收. 原处修改

  • JavaScript位置参数实现原理及过程解析

    1.什么是位置参数? JavaScript:为什么命名参数比位置参数更好 你一定很熟悉位置参数,即使你第一次听到这个名字. function greet(firstName, lastName) { console.log(`Hello ${firstName} ${lastName}`); } // 预期用法 greet('Michael', 'Scott'); const fName = 'Harry'; const lName = 'Potter'; greet(fName, lName)

  • Python生命游戏实现原理及过程解析(附源代码)

    1. 生命游戏是什么 生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机.它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞.一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量.如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去:相反,如果周围活细胞过少,这个细胞会因太孤单而死去. 规则看起来很简单,但却能演绎出无穷无尽的内容. 滑翔者:每4个回合"它"会向右下角走一格.虽然细胞早就是不同的细胞了,但它能保持原

  • Jenkins节点配置实现原理及过程解析

    1.配置代理 系统管理---configure Global Security(全局安全设置)---Tcp port for inbound agents---指定端口 服务器防火墙中开放此端口(linux版) 关闭电脑防火墙(windows版) 点击 agent protocols---勾选Java Web Start Agent Protocol4 2.添加节点 系统管理---管理节点 新建节点---输入节点名称(node2)---勾选Permanent Agent 添加节点(可以理解为是一

  • TCP性能调优实现原理及过程解析

    三次握手阶段 客户端SYN包的重试次数 sysctl -w net.ipv4.tcp_syn_retries=6 相关介绍 第 1 次重试发生在 1 秒钟后,接着会以翻倍的方式在第 2.4.8.16.32 秒共做 6 次重试,最后一次重试会等待 64 秒,如果仍然没有返回 ACK,才会终止三次握手.所以,总耗时是 1+2+4+8+16+32+64=127 秒,超过 2 分钟. 服务端半连接池大小 sysctl -w net.ipv4.tcp_max_syn_backlog=16384 服务端半连

  • Python unittest工作原理和使用过程解析

    这篇文章主要介绍了Python unittest工作原理和使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.unittest的工作原理: TestCase:一个testcase就是一条测试用例. setUp:测试环境的准备 tearDown:测试环境的还原 run:测试执行 TestSuite:测试套件或集合,多个测试用例的集合就是1个suite,一个suite可以包含多条测试用例,测试套件suite里面也可以嵌套测试套件suit

  • spring 声明式事务实现过程解析

    这篇文章主要介绍了spring 声明式事务实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 /** * 声明式事务: * * 环境搭建: * 1.导入相关依赖 * 数数据 * 3.给方法上标注 @Transactional 表示当前方法是一个事务方法: * 4. @EnableTransactionManagement 开启基于注解的事务管理功能:据源.数据库驱动.Spring-jdbc模块 * * 2.配置数据源.JdbcTempl

  • Spring MVC4.1服务器端推送实现过程解析

    这篇文章主要介绍了Spring MVC4.1服务器端推送实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 服务器端推送 SSE(server send event)是一种服务器端向浏览器推送消息的技术,而不是我们常规的浏览器像server请求然后响应; 当我们需要使用server向浏览器主动推送数据的时候,请考虑使用该项技术,而不是考虑具有双向通讯功能的websocket; 以前我们用ajax轮询server也能实现,服务器负担大;

  • Python生成个性签名图片获取GUI过程解析

    这篇文章主要介绍了Python生成个性签名图片获取GUI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来看看程序运行的样子: 所以,程序的原理是 从一个url = ' http://www.uustv.com/ '中爬取个性签名的图片. 在该网页中审查该图片的元素,然后找到该图片的imgur 使用正则表达式直接定位 程序的后面使用到了tkinter的 GUI简易界面,用于和用户的简单交互,非常方便. 整个程序的完整代码如下: (有任

随机推荐