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种方法:

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

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

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

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

2.用户定义的变量

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)}。

3. 从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正则表达式提取器

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP-PhpSpreadsheet导出带图片方法

需求描述 导出表格&#xff0c;项目名称对应项目详情页面二维码。 实现方法 1&#xff0c;先将各个项目生成的二维码存放到了一个指定目录里面&#xff1b; 2&#xff0c;导出数据到excel表格 <?phpuse PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpread…

图像分割与修复

图像分割的方法 &#xff08;1&#xff09;传统的图像分割方法 &#xff08;2&#xff09;基于深度学习的图像分割方法 传统的图像分割方法 &#xff08;1&#xff09;分水岭法 &#xff08;2&#xff09;GrabCut法 &#xff08;3&#xff09;MeanShift法 &#xff08;4…

基于SpringBoot的校园电商物流云平台 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

[Unity错误解决]There are 2 audio listeners in the scene.

There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene. 从组件中找出包含 Audio Listener 的&#xff0c;只激活一个&#xff0c;其他的关掉

POI2012 PRE-Prefixuffix

P3546 [POI2012] PRE-Prefixuffix 题目大意 对于两个字符串 S 1 , S 2 S_1,S_2 S1​,S2​&#xff0c;如果将 S 1 S_1 S1​的一个后缀移动到开头后这个字符串变成了 S 2 S_2 S2​&#xff0c;则称 S 1 , S 2 S_1,S_2 S1​,S2​循环同构。 给定一个长度为 n n n的字符串 S S …

Android Studio打包有哪些优势

大家好&#xff0c;现在移动应用程序的快速发展&#xff0c;开发者需要一个强大又可靠的开发环境来创建和打包高质量的 Android 应用程序。Android Studio 是一款由 Google 官方开发的 Android 应用程序开发环境&#xff0c;提供了许多的优势和便利&#xff0c;那究竟都有哪些优…

【Eachrts】水滴图

引入依赖 npm安装echarts、echarts-liquidfill插件 "echarts": "^5.4.2", "echarts-liquidfill": "^3.1.0",引入插件 import * as echarts from echarts; import echarts-liquidfill;示例 <template><div class"Liqu…

软件设计模式:六大设计原则

文章目录 前言一、开闭原则二、里氏替换原则三、依赖倒转原则四、接口隔离五、迪米特法则六、合成复用原则总结 前言 在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可扩展性和灵活性&#xff0c;程序员要尽量根据6条原则来开发程序&am…

Docker 文件和卷 权限拒绝

一 创作背景 再复制Docker影像文件或访问Docker容器内已安装卷上的文件时我们常常会遇到&#xff1a;“权限被拒绝”的错误&#xff0c;在此&#xff0c;您将了解到为什么会出现“权限被拒绝”的错误以及如何解决这个问题。 二 目的 在深入探讨 Docker 容器中的 Permission De…

Java8新特性 Stream

首先创建一个用户的实体类&#xff0c;包括姓名、年龄、性别、地址、赏金 几个属性 Data public class User {//姓名private String name;//年龄private Integer age;//性别private Integer sex;//地址private String address;//赏金private BigDecimal money;public User(St…

2023一整年BurpSuit都更新了什么?

2023一整年BurpSuit都更新了什么&#xff1f; 2023.5之前除了引入了montoya的外&#xff0c;其他基本都属于优化&#xff0c;不统计了。 历史版本地址&#xff1a;https://portswigger.net/burp/releases/archive?y2023 2023.5 Organizer Notes Live crawl paths view 2023.6 …

如何使用Docker搭建青龙面板并结合内网穿透工具发布至公网可访问

文章目录 一、前期准备本教程环境为&#xff1a;Centos7&#xff0c;可以跑Docker的系统都可以使用。本教程使用Docker部署青龙&#xff0c;如何安装Docker详见&#xff1a; 二、安装青龙面板三、映射本地部署的青龙面板至公网四、使用固定公网地址访问本地部署的青龙面板 正文…

ansible变量的使用

本章主要介绍playbook中的变量 自定义变量使用变量文件字典变量列表变量facts变量内置变量变量的过滤器 为了能够写出更实用的playbook&#xff0c;需要在playbook中使用变量。下面来讲解playbook 中常见的变量。本章实验都在/home/lduan/demo2下操作&#xff0c;先把 demo2目…

【高录用快检索】第四届机械设计与仿真国际学术会议(MDS 2024)

【高录用快检索】第四届机械设计与仿真国际学术会议&#xff08;MDS 2024) 2024 4th International Conference on Mechanical Design and Simulation 2024年第四届机械设计与仿真国际学术会议&#xff08;MDS 2024) 将于2024年03月01-03日在中国西安召开。MDS 2024将围绕“…

一篇文章带你了解SpringBoot目录结构

前言 SpringBoot是整合Spring技术栈的一站式框架&#xff0c;是简化Spring技术栈的快速开发脚手架&#xff0c;是一个能够快速构建生产级别的Spring应用的工具。SpringBoot是目前流行的微服务框架&#xff0c;倡导“约定优于配置”&#xff0c;简化Spring项目搭建及开发过程。…

Ubuntu配置GPU资源

0、升级内核为5.15.0-88-generic&#xff1a; 0.1 配置下载源&#xff1a; 在/etc/apt/sources.list.d目录下新建list文件&#xff0c;添加内容&#xff1a; deb http://mirrors.aliyun.com/ubuntu/ focal-updates amin restricted0.2 下载 sudo apt-get install linux-imag…

中小型教育网络安全解决方案

热门IT技术视频教程&#xff1a;https://xmws-it.blog.csdn.net/article/details/134398330?spm1001.2014.3001.5502 一、中小型教育网络的安全现状及挑战 当前&#xff0c;校园网的安全形势非常严峻&#xff0c;大量的垃圾邮件、黑客攻击、病毒蠕虫等困扰着管理者。而且这些作…

java使用面向对象实现图书管理系统

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

2023年12月21日历史上的今天大事件早读

1375年12月21日 意大利文艺复兴的代表人物薄伽丘逝世 1620年12月21日 英国抵达第一个北美殖民地普利茅斯 1879年12月21日 斯大林出生 1921年12月21日 苏俄电气化计划批准 1928年12月21日 天津劝业场开业 1928年12月21日 中国核化学家王方定出生 1935年12月21日 载客21人的…

飞书+ChatGPT搭建智能AI助手,无公网ip实现公网访问飞书聊天界面

飞书ChatGPT搭建智能AI助手&#xff0c;无公网ip实现公网访问飞书聊天界面 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 …