Jmeter —— jmeter参数化实现

jmeter参数化

在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能。这种测试方式在业界称为数据驱动测试, 而在实际测试工作中,测试工具中实现不同数据输入的过程称为参数化设置。

jmeter提供多种参数化设置的方式,常用的有:

1、使用 用户定义的变量元件 实现

2、使用 用户参数元件 实现

3、使用 函数助手 实现

4、使用 CSV 数据文件设置元件 实现

5、其它方式(数据库数据、beanshell等)实现

一、使用 用户定义的变量元件 实现参数化:

在实际使用jmeter进行接口测试过程中,我们把一些常用的配置值全部放置到用户定义的变量元件中,方便统一管理。在需要使用到的其他地方通过 ${变量名} 的语法格式进行引用即可

**添加路径:**右击------配置元件------用户自定义的变量

​在http请求中使用${变量名}引用;如下图

二、使用 用户参数元件 实现参数化:

用户参数元件可通过右键快捷菜单中选择 添加-前置处理器-用户参数进行添 加,与用户自定义变量不同的是,用户参数列表中的参数取值可以在测试计划执 行过程中发生变化。

每次迭代更新一次:如果选中该选项,则参数的值在每个迭代中保持不变,在新 的迭代开始时取下一个值。如果取消该选项,则参数值在每个在其作用域内的 sampler发出请求时取下一个可用值。

建议在参数的取值范围很小,使用用户参数比较合适

**添加路径:**右击------前置处理器------用户参数

在名称中输入一个变量名,用户后面输入不同的值;在http请求中引用变量名

​在线程组中,修改线程数;如下图

执行效果如下:

三**、使用 函数助手 实现参数化:**

**打开路径:**在工具栏------函数助手对话框; 快捷图标展示;如下图

函数助手中提供了很多可以进行参数化的函数,常用典型的几个函数。

jmeter官网详细文档地址:Apache JMeter - User's Manual

或者在jmeter目录------printable_docs------打开index.html------点击Function;如下图:

1、__Random:随机整数函数,输入最小值、最大值,如果需要把生成的值保 存在变量中,可以设置变量,如果只是一次使用,可以不设置存储变量。设置完 上述三项后,点击生成即可生成函数代码,在需要的地方使用即可

如下图:

①、选择Random,一个范围内最小值为10,一个范围内允许的最大值为100,存储结果的变量名(可选)为nums;点击生成函数,jmeter自动复制

​②、打开http请求,粘贴到指定位置

​③、线程组选择循环次数;

④、执行结果如下:

2、__RandomString:随机字符串函数,输入字符串指定长度、字符串的组成字 符,点击生成即可。如下图:

打开http请求,粘贴到指定位置

​忽略首行:csv文件中如果是字段名,而不是实际的参数化数据的时候,设置为 true,表示第一行数据不作为参数化的数据此外还有如下能实现参数化:

3、__time:当前时间的时间戳函数

4、__RandonDate:随机日期函数

5、__machineIP:取设备的IP地址函数

等等.....

四、使用 CSV 数据文件设置元件 实现参数化:

csv数据文件中的csv称为逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。在jmeter中可以使用此类型文件提供的数据作为参数化。通过右击 -- 新增 -- 配置元件 -- CSV 数据文件设置元件进行添加

导入的文件可以为excel后缀名为xls、csv或者txt文本

界面字段介绍:

**名称/注释:**自定义描述性文字

**文件名:**指保存信息的文件目录,可以相对或者绝对路径

**文件编码:**默认为ANSI,根据文件类型来,一般设置为UTF-8;GB2312、GBK

**变量名称:**给csv文件中各列起变量名字(有多列,用英文逗号隔开列名)

**忽略首行:**csv文件中如果是字段名,而不是实际的参数化数据的时候,设置为 true,表示第一行数据不作为参数化的数据

**分隔符:**用什么符号分隔参数化文件中的各列,以csv文件中的分割为准设置

**是否允许带引号:**允许参数化文件的参数带有双引号,默认是False,如果参数 文件的值带有双引号,False模式会将双引号也当做参数

**遇到文件结束符再次循环:**到了文件尾是否循环,True---继续从文件第一行开始 读取,False---不再循环

**遇到文件结束符停止线程:**到了文件尾是否停止线程,True---停止,False---不 停止,注:当遇到文件结束符再次循环设置为True时,此项设置无效。

**线程共享模式:**设置csv数据文件的使用范围

①、新建一个excel文件,后缀名为CSV的文件,

②、点击浏览选中上面的文件;文件编码为GBK;输入第一行的变量名name;忽略首行为True

③、在http请求中引用变量名

④、线程组循环5次

⑤、点击执行

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
ly21st1 小时前
skywalking配置项indexReplicasNumber不生效问题
程序人生·skywalking
测试者家园3 小时前
ChatGPT助力数据可视化与数据分析效率的提升(二)
软件测试·人工智能·信息可视化·chatgpt·数据分析·用chatgpt做软件测试·测试图书
Tiger Z3 小时前
R 语言科研绘图第 11 期 --- 柱状图-基础
开发语言·程序人生·r语言·贴图
半导体守望者5 小时前
Associa asresearch HypotMAX 7705 7710 7715 7720 OPERATION AND SERVICE MANUAL
经验分享·笔记·功能测试·自动化·制造
MJH8277 小时前
Selenium + Pytest自动化测试框架实战!
selenium·测试工具·jmeter·职场和发展·pytest·postman
测试者家园14 小时前
ChatGPT助力数据可视化与数据分析效率的提升(一)
软件测试·人工智能·信息可视化·chatgpt·数据挖掘·数据分析·用chatgpt做软件测试
小张认为的测试17 小时前
Selenium 浏览器驱动代理 - 无需下载本地浏览器驱动镜像!(Python 版本!)
python·功能测试·selenium·测试工具·单元测试·web·可用性测试
测试界萧萧17 小时前
15:00面试,15:08就出来了,问的问题有点变态。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展
Redamancy_Xun1 天前
软件老化分析
python·程序人生·安全威胁分析·可信计算技术·安全架构
lijiachang0307181 天前
设计模式(一):单例模式
c++·笔记·学习·程序人生·单例模式·设计模式·大学生