首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >06-性能测试之JMeter参数化

06-性能测试之JMeter参数化

作者头像
测试邦
发布2019-09-04 09:52:44
7790
发布2019-09-04 09:52:44
举报
文章被收录于专栏:测试邦测试邦

导读

JMeter参数化

函数助手:_CSVRead

CSV Data Set Config

User Defined Variables

User Variables

1、JMeter 参数化

参数化是自动化测试脚本的一种常用技巧。简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则,这样,脚本在运行的时候就可以根据需要选取不同的参数值作为输入。这种方式在自动化中称为数据驱动测试(Data Driven Test),参数的取值范围被称为数据池(Data Pool)。

(1)JMeter支持多种形式的参数化,我们本节学习下面几种

函数助手:_CSVRead

CSV Data Set Config:CSV数据控件

User Defined Variables:用户定义的变量

User Variables:用户参数

(2)准备测试脚本

我们还使用前面录制的登录脚本,计划将登录名及其密码参数化

(3)准备测试数据

在Redmine系统中,手动创建几个用户;

在电脑上新建一个txt文档,记录下用户名、密码,用半角英文逗号分隔,然后保存成”.dat”格式;

2、函数助手:_CSVRead

(1)在JMeter界面,菜单栏,点击“选项”——>“函数助手对话框”,打开如下页面,从功能下拉列表选择_CSVRead功能

CSV file to get values from | *alias:取值的文件,写绝对路径

Column number of CSV file | next | *alias:文件起始列号,0代表第一列,1代表第二列,以此类推;

函数字符串:参数化后的参数,复制就可以使用了,比如这里,“{__CSVRead(D:\users.dat,0)}”代表我的用户名,“{__CSVRead(D:\users.dat,0)}”代表我的用户名,“{__CSVRead(D:\users.dat,1)}”代表密码

(2)替换脚本

我们将登录脚本的,用户名(admin),密码(test1234),替换成参数

(3)查看结果

修改线程数,发送请求,通过查看结果树,查看请求的参数,如下图所示:

可以看到3个登录请求,分别使用了文件中的不同用户名;

3、配置元件——CSV Data Set Config

(1)右键线程组,添加配置元件 ——> CSV Data Set Config

文件名:保存参数化的文件;

文件编码:要和文件的编码格式保持一致;

变量名称:对应参数文件每列的变量名,类似Excel文件的文件头,起到标示的作用,同事也是后续引用的标识符,建议采用有意义的英文标示;(有几列参数,这里就写几个参数名,每个名称中间用英文逗号分隔,这里的user、pwd就可以在其它地方调用了user、user、{pwd})

忽略首行:我们参数化文件,第一行是测试数据,即不需要忽略首行,所以选择false

分隔符:与参数文件保持一致即可,参数文件使用逗号,我们这里就填逗号,参数文件使用tab,这里就使用\t符号

是否允许带引号:是否允许cvs数据被引号包裹,我们选择false

遇到文件结束符再次循环?:这里选择True,什么意思呢?假如我们有3行数据,但是有4个线程,第4个线程会继续使用第一行数据循环登录

遇到文件结束符停止线程?:这里选择False,不结束

线程共享模式:4种模式,所有线程,当前线程组,当前线程,自定义

(2)替换脚本

这次我们修改为4个线程

修改登录请求参数

(3)查看运行结果

当3行数据被用完时,循环从第一条读取,所以admin这个用户使用了两次。

4、配置元件——User Defined Variables

(1)点击线程组,添加配置元件——User Defined Variables

如上图所示,在该参数组中已经定义了两个参数,通过界面下方的添加、删除按钮可以向参数列表增加和删除参数,Up和Down可以上下移动参数的位置;

PS:User Defined Variables中定义的参数值在test plan执行过程中不能发生取值的改变,因此一般仅将test plan中不需要随迭代发生改变的参数(只取一次的参数)设置在此处;例如:被测应用的host和port值。这里我们为了演示效果,创建了用户名和密码

(2)修改脚本

线程数修改为1

登录参数修改为如下图所示

(3)查看执行结果

5、前置处理器——User Variables

(1)邮件线程组,添加前置处理器——User Variables

小结

JMeter支持多种形式的参数化。请根据实际情况选择合适的参数化方法。

为什么要进行参数化,最主要的原因就是不参数化,脚本回放不成功,哈哈(比如你录制一个注册用户的脚本,由于登录名不能重复,如果不参数化,回放或者压测必然会失败)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试邦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档