jmeter的两种参数化方法

标签: Jmeter源码学习 | 发表时间:2017-04-08 01:47 | 作者:
出处:https://my.oschina.net/u/2391658

JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现。

参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。

这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问。

一、准备脚本,测试数据

1、录制一个脚本(可以用badboy工具录制),在jmeter中打开,找到有用户名和密码的页面。如下:

2、我们需要“参数化”的数据,用记事本写了五个用户名和密码,保存为.dat格式的文件,编码问题在使用CSV Data Set Config参数化时要求的比较严格, 记事本另存为修改编码UTF-8.  注意用户名和密码是一一对应的,中间用户逗号(,)隔开。

我将这个文件放在了我的( C:\JmeterWorkSpace\t.dat  )路径下。

二、参数化

  这里介绍两种参数化的方式:函数助手,CSV Data Set Config。

1、借助函数助手的方式

a、点击菜单栏“选项”---->函数助手对话框,看下图:  CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推。。

b、复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以啦。

好了,现在我们的参数化设置完成,在脚本的时候,会调用我们C:\JmeterWorkSpace盘下面的t.dat文件,第一列是用户,第二列是密码。

2、借助jmeter中的配置元件(CSV Data Set Config)

 a、选中线程组,点击右键,添加-配置元件-CSV Data Set Config

说明:

Filename --- 参数项文件
File Encoding --- 文件的编码,设置为UTF-8
Vaiable Names --- 文件中各列所表示的参数项;各参数项之间利用逗号分隔;参数项的名称应该与HTTP Request中的参数项一致。
Delimiter --- 如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;(如果此文本文件为CSV格式的,默认用英文逗号分隔)

Recycle on EOF? --- True=当读取文件到结尾时,再重头读取文件
                    False=当读取文件到结尾时,停止读取文件
Stop thread on EOF? --- 当Recycle on EOF为False时,当读取文件到结尾时,停止进程,当Recycle on EOF为True时,此项无意义

 

备注说明:

这里我用通俗的语言大概讲一下Recycle on EOF与Stop thread on EOF结果的关联

Recycle on EOF :到了文件尾处,是否循环读取参数,选项:true和false

Stop thread on EOF:到了文件尾处,是否停止线程,选项:true和false

当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,通俗的讲,在前面控制了不停的循环读取,后面再来让stop或run没有任何意义

当Recycle on EOF 选择flase时,Stop thread on EOF选择true,线程4个,参数3个,那么只会请求3次

当Recycle on EOF 选择flase时,Stop thread on EOF选择flase,线程4个,参数3个,那么会请求4次,但第4次没有参数可取,不让循环,所以第4次请求错误

事例下载: demo

b、使用刚才定义好的变量

至此,两种参数化的方法就介绍完了。

需要说明一下:函数助手方法要比CSV控件方法参数化功能要弱,推荐使用CSV控件方法。

再看看与loadrunner参数化不一样的:

1、 jmeter参数文件的第一行没有列名称

2、 这里要注意的是参数文件的编码,可以使用记事本另存为就可以修改该编码(编码问题在使用CSV Data Set Config参数化时要求的比较严格)

3、 Jmeter的参数化设置没有LoadRunner做的出色,它是依赖于线程设置的(只有CSV Data Set Config参数化方法才有)

更多文章: http://www.cnblogs.com/yangxia-test/category/431240.html

相关 [jmeter 方法] 推荐:

jmeter的两种参数化方法

- - 孟飞阳的博客
JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问.

JMETER 参数化

- - 开源软件 - ITeye博客
用Jmeter中的函数获取参数值,__Random,__threadNum,__CSVRead,__StringFromFile. 2.用户定义的变量 “配置元件”->“用户定义的变量”. 从csv文件中读取“配置元件”->“CSV Data Set Config”. 调用方法${id_g1} ${id_g2} ${id_g3}.

JMeter使用技巧

- - 博客园_首页
在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享. 如何使用英文界面的jmeter. 如何使用英文界面的JMeter.   Jmeter启动时会自动判断操作系统的locale 并选择合适的语言启动,所以,我们启动jmeter后,其会出现一个倍感亲切的中文界面.

[转]JMeter进行WebService测试

- - 小鸥的博客
1. Building a WebService Test Plan参考. 1.   建立WebServiceTest Plan. 参考 http://jmeter.apache.org/usermanual/build-ws-test-plan.html. 1)      添加ThreadGroup.

[转]Jmeter测试结果分析

- - 小鸥的博客
Jmeter测试结果分析这一篇,我打算分成上下两部分. 上篇,主要讲述如何使用jmeter中Assertion对结果进行简单的分类;下篇,主要讲述的是当我们拿到测试结果后,我们应该如何去看待这些测试结果. 用过LoadRunner的人都知道,LoadRunner本身提供了很多函数可以对收集回来的结果进行一些初步的分析.

Jmeter分布式部署文档

- - BlogJava-qileilove
测试时,如果进行大数据量的并发测试时,单个电脑的CPU和内存可能无法承受,这个时候,我们需要进行一个分布式的测试,比如10000个并发,使用三台电脑来进行并发,. Jmeter提供了这种功能,你可以很轻松的实现Jmeter的这种分布式测试.   1 首先确何所有的电脑上都安装Jmeter.   2 在所有电脑上开起Jmeter,开启命令是jmeter-server.bat,而不是以前的jmeter.bat.

JMeter使用记录1 -- JDBC测试

- - CSDN博客互联网推荐文章
场景:使用jmeter对web应用和mysql数据库进行压力测试. JMeter是一款非常强大的测试工具,可以用来测试web,数据库,从07年用过之后一直对它情有独钟,下面记录下在一个项目中对它的简单使用. 项目分数据库测试和web应用测试. 数据库测试比较简单,将要测试的数据库的jdbc driver放到jmeter的lib文件夹,新建线程组,配置起100线程,循环10次,10秒启动所有线程,加入一个jdbc connection configuration,加入要进行的CRUD操作,点击启动按钮,然后通过summary report看performance.

jmeter beanShell 修改http请求参数

- - ITeye博客
在使用jmeter进行测试时,需要对上一步响应的明文参数,如userName='tom' token='%sdf%sdkdfj'之类的参数,加密一下,才能进行下一步http请求,. 1、加密要引入自定义的加密函数. 2、要可以拿到第一次http的响应. 3、第二次http请求前,要动态构建参数.

Jmeter常用函数之__CSVRead使用

- - 行业应用 - ITeye博客
__CSVRead函数用于对脚本进行参数话,当脚本中不同变量需要不同参数值时,可以考虑__CSVRead函数. 以登录的用户名、密码为例:实际进行压力测试时,需要模拟使用不同的用户并发访问系统,此时需要我们对脚本中的用户名、密码进行参数化;下面具体介绍如何使用csvread函数:. 准备好参数取值List清单,文件格式为:csv或者txt文件,里面保存变量要读取的参数值,每个变量间用逗号相隔.

Jmeter 使用实践 - 接口 diff 测试

- - OneAPM 博客
大多数人都使用 Jmeter 做过性能测试,但是在使用的过程中你会发现,它不仅可以做性能测试和功能测试,还能够满足基本的接口测试需求. 相比其他工具,Jmeter 入门门槛较低,安装也比较方便,根据自己的需要可以扩展一些插件,总之一句话: 优点太多了. 那么问题来了,为什么要做接口 diff 测试.