Jmeter参数化设置的5种方法

 jmeter在进行测试的时候,每次迭代的数据当不一样的时候,需要进行参数化,从参数化的文件中来读取测试数据,那么,jmeter如何参数化呢?今天脚本之家小编就给大家分享Jmeter参数化设置的5种方法。

  jmeter如何参数化?我们使用jmeter在进行测试的时候,测试数据是一项重要的准备工作,每次迭代的数据当不一样的时候,需要进行参数化,从参数化的文件中来读取测试数据。那么,你知道jmeter如何进行参数化吗?接下来小编就给大家总结了Jmeter参数化设置的5种方法,主要详细介绍的是用Csv Data配置元件来进行参数化,对于Jmeter参数化设置不太了解到的小伙伴一定要仔细看哦!!

用Jmeter测试时包含两种情况的参数,一种是在url中,一种是请求中需要发送的参数。

URL中的参数,如:http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/,其中“2010/06/01/jmeter参数”为url参数。

请求中的参数,此处只能举例get请求,如:http://blog.da-fang.com/?category=Web,其中“category”是参数名,“Web”是它的值。

  对于post请求,用jmeter录制后,可以在请求的“同请求一起发送参数”和“同请求一起发送文件”中找到。

参数化Jmeter脚本时,使用参数的地方书写格式为$

  对于URL“http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/”,在Jmeter的http请求中blog.da-fang.com填写在“服务器名称或IP”中;/index.php/$/填写在“路径”中。

  对于请求中的参数http://blog.da-fang.com/?category=Web,在Jmeter的http请求中blog.da-fang.com填写在“服务器名称或IP”中;/填写在“路径”中;参数名称category填写在“同请求一起发送参数”的“名称”中,参数值$填写在对应的“值”中。

Jmeter参数化设置的5种方法:

一、 用Jmeter中的函数获取参数值,__Random,__threadNum,__CSVRead,__StringFromFile,具体调用方法如下:

${__Random(,,)},$,${__CSVRead(,)},${__StringFromFile(,,,)}。

参看Jmeter函数的使用,通过菜单“选项”->“函数助手对话框”,即可在“函数助手”弹出框上找到Jmeter的函数。

其中${__Random(,,)}方法的第一个参数为随机数的下限,第二个参数为随机数的上限,第三个参数为储存随机数的变量名;${__CSVRead(,)}方法中第一个参数是文件名,第二个参数是文件中的列(列数从0开始);${__StringFromFile(,,,)}方法中第一个参数是文件名,${__StringFromFile(,,,)}方法中没有指定读取文件中的哪一列的参数,所以${__StringFromFile(,,,)}只能读取包含一列的文件。

二、用户定义的变量

2.1 添加“配置元件”->“用户定义的变量”

2.2 “名称”中输入变量名称,此处以登录为例,定义两个变量username和password。“值”中可以直接输入值,也可以通过Jmeter的函数__CSVRead,__StringFromFile从csv或dat文件中读取,还可以通过前缀加随机数的方法设置参数。

  当参数值是某个前缀加一个数字时,可以用前缀名加${__Random(,,)}或$的方法设置参数值。如进行登录测试之前,先准备了用户名为perf_0到perf_1000的用户,那么用户名就可以设为perf_{__Random(0,1000,)}。

当参数值没有规律的且量不太大时,可以通过${__CSVRead(,)},${__StringFromFile(,,,)}从文件中读取,如将用户名和密码保存在user.csv文件中,user.csv的内容如下:

oriana,123456

admin,admin

dandan,123456

因为user.csv文件中有两列数据,所以只能用${__CSVRead(,)}函数,username参数后的值设为${__CSVRead(user.csv,0)},password参数后的值设为${__CSVRead(user.csv,1)}。

三、从csv文件中读取(用Csv Data配置元件来进行参数化)

当参数的值没有规律且量不太大时,可以用这种方法。

具体做法如下:

1、打开jmeter图形界面工具,打开之前的脚本。

2、右键【添加】-【配置元件】-【Csv Data Set Config】

3、这个配置元件可以允许从你输入的路径来读取文件,然后根据分隔符获取到数据。

4、如下图,输入的数据。

讲解:

a,名称和注释不需要过多解释,自己定义。

b,Filename:参数化文件的读取位置。这个路径可以是绝对路径也是可以相对路径。在分布式测试中,还是利用相对路径比较方便,因为有的机器可能安装路径不一样。

c,File Encoding:编码格式,选择utf-8

d,Variable Names:变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开。例如username,passwd。参数化文件中同样有对应的两列数据。)

e,Ignore first line:忽略第一行数据。(类似loadrunner中第一行数据是变量名称,如果你的配置文件中为了记忆第一行也是变量名,可以选择是忽略这行数据)

f,Delimiter:分隔符,默认逗号。

g,Allow quoted data:是非选项,是否允许变量中间有分隔符,这里最好先默认false,数据中间最好不要有分隔符。

h,Recycle on EOF和Stop thread on EOF按需设置。是否循环,到结尾是否停止测试。我这里设置了True和False

i,Sharing mode:先选择所有的线程都可以利用此参数化。

5、准备测试数据。这里只是简单的写了几个数据来演示效果。

6、在请求中引用该变量。

引用方法是 ${}   ;其中{}内写入参数化中的变量。

注:在parameter中加入一些多余的参数没有问题,故在访问百度的请求后面随意加了一个参数。

7、修改循环次数。这里设置6次,是因为参数里面有5个数据,测试一下数据取完之后的效果。

8、点击运行,查看结果树。

可以看到共发送了6次请求,而且请求参数中已经获取了变量的数据。

9、打开第二个请求。可以看到第二个请求的参数里面变量值为data-b。顺序读取的。

10、找到最后一个请求,点开查看。

请求参数中searchid是data-a,说明数据是从头开始取的,也就是数据是遍历后循环的。参数化完成了。

4.从数据库中获取

当参数的值没有规律且量比较大时,可以选用这种方法。

具体做法如下:

4.1 下载MySQL JDBC “http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.12.zip/from/http://ftp.jaist.ac.jp/pub/mysql/”

4.2 解压下载的zip包后,将其中的mysql-connector-java-5.1.12-bin.jar放到Jmeter的lib目录下

4.3 添加“配置元件”->“JDBC Connection Configuration”,设置下列参数:

Database URL:jdbc:mysql://host:port/db(如jdbc:mysql://localhost:3306/testlink

JDBC Driver class:com.mysql.jdbc.Driver

username:连接数据库的用户名(如root)

password:连接数据库的密码

4.4 添加“Sampler”->“JDBC Request”,在SQL Query中输入查询语句,如下:

SELECT CONCAT (“[",

GROUP_CONCAT(

CONCAT("{username:'",login,"'"),

CONCAT("{password:'",password),"'}"),"]“) AS json FROM users

4.5 在4.4中的JDBC请求中添加“后置处理器”->“正则表达式提取器”,以提取3.4中的用户名和密码为例设置正则表达式提取器的参数:

引用名称:user

正则表达式:username:’(.+?)’\{password:’(.+?)’

模板:$1$$2$

使用时,user_g1即为用户名,user_g2即为对应用户名的密码;更多正则表达式提取方法参见Jmeter正则表达式提取器

5.用正则表达式从前面请求的响应数据中提取,具体操作见Jmeter正则表达式提取器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/254463.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter参数化方式

Jmeter参数化方式 一、用户参数二、用户自定义变量三、CSV数据文件 Jmeter参数化方式主要分为用户参数、用户自定义变量、CSV数据文件。 一、用户参数 该参数化方式适用于参数取值范围较小的情况,如较少用户登录系统。 1、添加用户参数功能模块 2、设置参数变量、…

性能测试(二)—— JMeter元件作用域和执行顺序、JMeter示例、JMeter参数化

目录 一、JMeter元件作用域和执行顺序 1. 元件的基本介绍 2. 元件作用域 3. 元件执行顺序 二、JMeter使用示例 1. JMeter第一个案例 2. 重点组件 2.1 线程组 2.2 HTTP请求 2.3 查看结果树 三、JMeter参数化 1. JMeter参数化常用方式 2. 用户定义的变量 2.1 场景 …

Java性能权威指南-总结2

Java性能权威指南-总结2 性能测试方法原则2:理解批处理流逝时间、吞吐量和响应时间批处理流逝时间吞吐量测试 原则3:用统计方法应对性能的变化 性能测试方法 原则2:理解批处理流逝时间、吞吐量和响应时间 性能测试的第2条原则是多角度审视应用性能。应该测量哪个指标取决于对…

springboot整合kafka入门

kafka基本概念 producer: 生产者,负责发布消息到kafka cluster(kafka集群)中。生产者可以是web前端产生的page view,或者是服务器日志,系统CPU、memory等。 consumer: 消费者,每个consumer属于一个特定的c…

Linux系统下imx6ull QT编程—— C++类和对象(三)

Linux QT编程 文章目录 Linux QT编程一、类和对象 一、类和对象 C 在 C 语言的基础上增加了面向对象编程,C 支持面向对象程序设计。类是 C 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方…

PHP + 小程序开发过程

前言 在此之前,我也曾经写过一篇用Go语言开发的过程总结!当然这次也不例外,同样记录下过程,方便后续再次接触时,重新拾起会轻松点。 我特意地看了一下博客文章的记录,从项目的启动时间(2017-1…

php开发微信小程序教程,从零开始开发微信小程序步骤(三)

前面我们和大家分享了如何创建一个新的页面和设置页面的标题,这一章我们来聊聊底部导航栏是如何实现的。即点击底部的导航,会实现不同对应页面之间的切换。我们先来看个我们要实现的底部导航栏的效果图:(三个导航图标示例,微信小程序最多能加5个)。 1. 图标准备 阿里图标库…

小程序中商家入驻提醒、新订单提醒

1. 应用场景 ThinkPHP技术QQ群: 828567087 用户在小程序商城购买下单之后,商家如何能及时收到新订单提醒,进行发货处理呢? 用户在小程序中申请入驻商家后,平台管理员如何能及时收到入驻申请通知,进行及时审核处理呢&…

微信小程序与PHP数据交互

微信js源码 Page({onLoad: function () {var that thiswx.request({//要交互页面的地址url: http://localhost/php/index.php/Wxwater/Test/test,data:{pid:1 //data里边使我们要传递给PHP的数据},method: GET,headers: {Content-Type: application/json},success(res) {cons…

PHP后台-微信小程序发送订阅消息(详细)

微信小程序订阅消息文档 步骤一:获取订阅消息模板 ID 在微信公众平台手动配置获取模板 ID: 登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。 在公告模板库找到要…

微擎小程序PHP,微擎配置小程序教程

微擎小程序通用配置图文教程,教会你怎么配置微擎小程序! 1、去源码下载微擎小程序,这里以官网小程序为列,教大家如何配置微擎小程序。 2、将对应的官网小程序后端文件夹hc_step上传到微擎的addons目录下 3、在微擎安装好官网小程序…

php小程序二维码获取生成图片分享

第一步:获取小程序二维码 代码如下(采用tp5框架): namespace app\api\controller; use think\Controller; use think\Db; use think\Config; use app\api\controller\Common;class Code extends Common{/*** [getXcxCode 获取微信小程序二维…

微信小程序后台php实现数据get传递

1:利用phpstudy搭建本地服务器,端口设置为88 2:访问http://localhost:88/phpmyadmin/,在test数据库中新建一个表li,表中添加一个字段name,增加两行数据来进行测试 3:网站www根目录下新建一个wxa…

PHP 管理小程序审核发布

目录 前言一、申请小程序、开发平台账号二、使用步骤 1.获取token2.发布小程序总结 前言 随着微信文档功能越来越多 ,大多数数据越来越容易便捷,本文就介绍小程序在后台的操作管理 提示:以下是本篇文章正文内容,下面案例可供参考…

php实现微信小程序消息通知

接入消息通知指引地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/custommsg/callback_help.html 文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html#%E6%A8%A1%E7%89%88%E6%B6%88%E6%81%AF%E7%AE%A1%E7%90%86 看完这两个地址…

crmeb 多商户小程序配置

一、小程序下载并提交审核 下载微信小程序代码 位置:平台后台>应用>小程序 1 首先需要填写这里的小程序信息 然后在这里就可以下载,如果未开启直播要选择,否则会无法使用 2、下载编译后的小程序代码 没有配置小程序的需要先配置小程序…

微信小程序中国标准时间注册错误

在运行微信小程序的时候出现下图错误: 解决办法,在控制台当中输入openVendor() 会打开文件。如下图:删除圈中的文件,重启工具即可:

微信公众号支付报错:当前页面的url未注册

问题描述 公众号支付报错:“当前页面的URL未注册” 原因分析 用户实际的支付目录必须和在微信支付商户平台设置的一致,否则会报错"当前页面的URL未注册" 支付授权目录: 商户最后请求拉起微信支付收银台的页面地址 解决方案: 登…

基于原生微信小程序的时间组件

作者的絮叨 在开发原生微信小程序的时候,发现很少有基于原生微信小程序开发的相关插件或组件,不知道是不是我的孤陋寡闻,还是真的很少,暂且不管~下面我介绍一下我当时开发的一个时间组件,比较简陋,希望可以…

java后端微信小程序登录与注册

java后端微信小程序登录与注册&微信登录授权 分析: 微信小程序用户表 的字段来源于微信服务器 , 必须想办法去获取到对应的用户信息 找到微信开放平台: 微信开放平台 以下是微信开放平台给出的登录流程图: 微信给出的字段值: {"nickName": "Band",&…