jmeter的脚本增强之参数化

jmeter作为一款开源的测试工具,功能广泛,深受测试同胞们的喜爱,这次来讲讲关于如何参数化及其方式。那为什么要进行一个参数化呢,如做压测时,要有大量的数据来模拟用户的真实场景,像登录页面操作,系统是不允许相同的用户同时登录,那这就需要对用户名进行一个参数化;或者是订票系统,每个用户在订票时时间都是不一样的,那为了达到真实的场景,就需要对时间进行一个参数化。参数化对于大量的重复的批量的数据保存一个变量,从而每次执行时,只需读取这个变量即可

jmeter有三大种参数化方式①读取文本,②程序生成,③从数据库里读取

一读取文本:

         读取文本呢又有三种方法,这简直了。在桌面上新建一个文本文档,里面输入要参数化的数据 (前提是都有在数据库里),这些是用户名跟密码,那为了工作方便,密码我都是设一样的

第一种方法:打开jmeter,点击选项—函数助手对话框,这列表开头是按abc顺序排列的,选择—CSVRead

然后将你新建的文本目录地址复制到名称对应的值里

把拷贝下来的字符串放在你要变量的位置上,那我这边是对用户名进行的参数化

我在线程组里添加四个线程,运行一下看下察看结果树

参数化成功

第二种方法:在测试计划右键添加—配置文件—csv数据文件设置

在CSV数据文件页面设置一下:

第三种方法:在测试计划右键添加—配置文件—bzm-Random CSV Data Set Config

我用的jmeter是4.0版本,可能有一些同学没有这个,或者是这个插件,打开jmeter目录,在这目录下F:\testing\tour\apache-jmeter-4.0\lib\ext加一个jar包文件                        jmeter-plugins-manager-0.20.jar  ,这个插件如果有同学需要可以网上下载也可以找我拿,然后重启jmeter,这个图标就出现了,然后点击这个图标搜索安装Random Csv Data Set ,安装好后再重启一下jmeter

这个参数化方式是官方新推出的功能,好使,能够随机提取

二程序生成:

      程序生成也是有很多种,这边来列几个常用的。点击选项—函数助手对话框

1、__machineIP:读取你当前的电脑IP地址

2、__machineName:读取你的机器名字

3、__Random:随机生成一个数字,如设最小值1,最大值100,会随机生成1~100间的数字,可用于年龄,手机号,不适用于注册

4、__RandomDate:随机生成日期,日期:yyyy-MM-dd,key可用于订票,下订单,出生年月日等等

5、__RandomString:随机生成字符串,如英文名,性别等

6、__time:生成实时时间,yyyy-MM-dd HH:mm:ss(固定格式)

这边来搞一搞如何来批量注册用户名,我们可以录制注册操作的脚本或是使用fiddle抓包工具来获取,那在注册那边参数改一下

关于关联下篇会继续更新

在线程组右键添加-配置文件—计时器

在计时器页面设置一下

由这个方法可以很容易的快速制造大量数据

三数据库读取:

    首先连接数据库,关于连接数据库上篇就有详细唠嗑过,先在测试计划页面里添加一个驱动

在测试计划右键添加如下:

然后在JDBC Connection 页面设置

然后继续在线程组右键添加—sampler—JDBC Requst,在这页面上呢写一个SQL语句,查询表里的所有用户名

查询出来表里的所有用户名,把这些放入到name里

线程组右键添加—逻辑控制—ForEach控制器,把每个用户迭代出来

应用场景,如果说你要看每个用户的个人信息,它的URL后都是username=tname(name表里的每一个用户)

那么直接在URL后加入参数化

线程组就只有一个线程,你点击运行后会一直运行,运行多少回呢,直到把name里的所有用户都运行完就会结束

这三大种参数化方式就又唠嗑完了。。。。。

下篇唠唠关联等等

原文地址:https://www.cnblogs.com/hearbeat/p/9409562.html

时间: 2024-10-13 02:10:02

jmeter的脚本增强之参数化的相关文章

Jmeter常用脚本开发之Debug Sampler

Debug Sampler编辑脚本时调试用的,跟Java项目打断点测试同理,它可以Debug Jmeter中所有自定义变量的值 如何添加Debug Sampler? 打开测试计划->线程组->右键,添加->Sampler,Debug Sampler 添加后的页面,如图所示.有三个参数JMeter properties,JMeter variables,System properties,选项值默认即可 JMeter properties,System properties这两个分别是Jm

性能测试十二:jmeter进阶之java请求参数化

如项目中的ip.端口号之类的,都可以在此代码中定义 public Arguments getDefaultParameters() { // TODO Auto-generated method stub return null; } 此处注册两个参数到jmeter的变量池: p_name,默认值设为abc p_desc,默认值设为123 /** * 此函数里面可以人工注册一些参数,这些参数可以在java请求面板里展示或更改 */ @Override public Arguments getDe

【JMeter】【性能测试】参数化,内存溢出问题

这一篇文章随便说一下JMETER的脚本参数化 1:Parameters的两种参数化方法 1.1:函数助手参数化 首先准备你的参数数据.我在bin/data中新建了一个dat文件,记事本另存为修改编码为UTF-8,注意用户名和密码是一一对应的,用英文逗号隔开 点击函数助手对话框,填写数据文件路径与列数 点击生成,生成函数 将生成的函数填入Parameters值中,注意参数与列数的对应关系! 我们刚刚在数据中填入了三个参数,这里我们需要修改一下线程.且将线程改为3 执行一下脚本,观察结果树.可以发现

Jmeter 录制脚本

原文:Jmeter 录制脚本 Jmeter中有2种方法可以录制脚本.  不过我个人非常不推荐录制脚本,录制的脚本混乱,需要再次加工才能使用. 像我这么精通HTTP协议的人. 一直都是使用Fiddler来抓包,然后自己写脚本. 无论如何,本文还是要介绍下两种录制脚本的方法 方法一:  使用badboy来录制脚本 badboy本身是一个针对Web的测试工具,它录制的脚本可以直接供Jmeter使用 官方网站:http://www.badboy.com.au/ 打开badboy, 如何录制脚本, 录制完

LoadRunner如何在注册业务脚本中设置参数化唯一性

LR在录制一个网站注册业务的脚本时,突然间遇到一个问题:注册时,由于注册用户需要验证唯一性,所以在LR回放脚本时,用Run-time Viewer工具回放可以发现(先在脚本中设置几个断点),真实运行的注册脚本用户并没有注册成功,如图: 出现这样的问题,如何解决呢? 当然,首先就想到了脚本参数化设置,于是我动手写了一段代码,运行脚本让它随机生成用户名(用户名指定格式),然后写入一个dat文件,在参数设置中导入dat文件,这样就非常方便地进行参数化,代码如下: /*author:luihengk*/

Loadrunner VuGen实战---基本组成、协议、脚本优化、参数化(三)

一.3大基本组件:VuGen.Controller.Analysis 1.VuGen:录制.编写脚本. 2.Controller:性能测试场景设计以及监控的地方. 3.Analysis:生成图表报告的地方. 二.深入理解协议选择 1.什么是协议? 协议是数据包再交换.通信时要按照统一的约定,这样双方才能识别. Loadrunner有一个Agent进程专门监控客户端和服务器之间的通信. 2.Run-time setting中:注意调Packing和Think time才会较符合真实情况. 三.脚本

本机Tomcat启动myeclipse,用Jmeter录制脚本端口冲突解决办法

今天用jmeter 录制脚本与已经启动的Tomcat端口冲突,无法启动工作台的http代理服务器, 如果两个的端口一样,则http代理服务器启动就会提示端口被占用 所以先把Tomcat端口和http代理服务器的端口设置成不一样的,如Tomcat 8080  http代理服务器 80 然后输入本机地址的时候不要访问http://localhost:8080/...,得换成http://192.168.XXX.XXX:8080/... 8080是Tomcat的端口  192.168.XXX.XXX为

Jmeter进阶学习二(参数化)

1.疑问:为啥要使用参数化? 在测试过程中,参数化也是一种很重要的东西,比如:如果系统过程中多次使用同一个id,万一此id发生变化了,就需要每个文件中id一个一个的进行修改,如果使用参数化的话,就只需修改一个文件即可: 这样的话可以减少工作量: 2.此处采用的是用户定义的变量: 3.如何调用定义的变量? ...... 未完待续.... Jmeter进阶学习二(参数化)

使用非GUI模式运行jmeter测试脚本

使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <listener filename>(比如 jmeter -n -t testplan.jmx -l listener.jtl)        我的第一次使用命令行执行测试脚本时,看到的输出如下:D:\Jmeter\bin> jmeter -n -t testplan.jmx -l listener.jt