一、函数概述
1、概述
函数是程序中的封装单元(最小的),封装一些功能实现。Jmeter内置了一些函数,了解这些函数,使用函数助手可以帮助我们调用函数。
2、函数分类
(1)数字相关的:
- __counter():计数器 注:前面两个下划线
- __random():随机数函数,函数参数包含左右临界值
- __time():获取时间的函数,时间格式:yyyy/MM/dd HH:mm:ss==年/月/日 时:分:秒
(2)文件读取相关的:
__CSVRead( ):和CSV Data Set Config类似可以读取CSV文件数据
(3)属性相关的:
- __setProperty( ):属性设置
- __property() : 属性获取
3、实现思想
(1)打开Jmeter 内置的函数功能模块
(2)选择要调用的函数,传参数,生成调用格式
(3)哪里需要粘哪里
二、数字相关函数使用
1、__counter()函数
(1)打开Jmeter 内置的函数功能模块,选择__counter()函数,填写函数参数,生成调用格式,如下图所示:
(2)复制生成的调用格式,创建HTTP请求,粘贴复制的调用格式,如下图所示:
(3)运行测试计划,查看结果树,如下图所示:
2、__random()函数
(1)打开Jmeter 内置的函数功能模块,选择__randon()函数,填写函数参数,生成调用格式,如下图所示:
(2)复制生成的调用格式,创建HTTP请求,粘贴复制的调用格式,如下图所示:
(3)运行测试计划,查看结果树,如下图所示:
3、__time()函数
(1)打开Jmeter 内置的函数功能模块,选择__time()函数,填写函数参数,生成调用格式,如下图所示:
(2)复制生成的调用格式,创建HTTP请求,粘贴复制的调用格式,如下图所示:
(3)运行测试计划,查看结果树,如下图所示:
注:时间格式:yyyy/MM/dd HH:mm:ss==年/月/日 时:分:秒
三、 __CSVRead( )函数
1、__CSVRead()函数:
__CSVRead() 和CSV Data Set Config类似可以读取CSV文件数据,但是CSV Data Set Config执行多次是使用的循环次数,而CSVRead执行多次使用的是线程数。
2、需求
使用CSVRead函数实现学院信息的批量插入(此如: 3条)
3、实现思想:
- 搭建框架(线程组设置线程数)JSON格式数据只是模板,具体数据动态获取。注意:执行次数设置与信息头设置
- 将数据存储在外部的文本文档(CSV 格式)
- 使用CSVRead函数逐行获取并解析CSV文件,插入到提交的JISON数据中。注:CSVRead函数设置CSV文件路径时,必须得使用绝对路径,不可以使用相对路径
4、实现过程
(1)搭建框架,设置线程组的线程数,HTTP请求的请求JSON格式数据只复制接口定义的模板,具体数据动态获取,如下图所示:
(2)编辑文本文档,将数据存储在外部的文本文档(CSV 格式),如下图所示:
(3)打开Jmeter 内置的函数功能模块,选择 __CSVRead()函数,填写函数参数,生成调用格式,如下图所示:
注:CSVRead函数设置CSV文件路径时,必须得使用绝对路径,不可以使用相对路径
(4)复制生成的调用格式,在HTTP请求中粘贴复制的调用格式,如下图所示:
(5)运行测试计划,查看结果树,如下图所示:
四、属性设置函数
1、函数
- __setProperty():属性设置
- __property():属性获取
2、需求
- HTTP请求1:访问百度,将请求1响应的title值传递给请求2,但是两个请求不属于同一个线程组
- HTTP请求2:访问google /?wd=百度一下你就知道
3、实现思想:
将线程组内部的数据导出去,存储在共享空间中,其他线程组要使用数据,就从共享空间获取
- 将数据从当前线程组导出,使用__setProperty()函数。
- 另外-一个线程组将导出到共享空间的数据引入,使用__property()函数。
4、实现流程
(1)搭建框架,创建HTTP请求和Xpath提取器,如下图所示:
(2)打开Jmeter 内置的函数功能模块,选择 __setProperty()函数,填写函数参数,生成调用格式,如下图所示:
(3)线程组右键----添加----Sampler----Bean Shell,创建Bean Shell执行脚本,并粘贴复制的函数,如下图所示:
(4)打开Jmeter 内置的函数功能模块,选择 __property()函数,填写函数参数,生成调用格式,如下图所示:
(5)再次创建线程组和HTTP请求,调用复制的__property()函数调用格式,如下图所示:
(6)运行测试计划,查看测试结果,如下图所示:
注意:可通过工作台----添加----非测试元件----Property Display,查看共享空间的数据,如下图所示:
注:一般不使用共享空间,因为这样变量的生命周期太长,容易出问题。
五、总结
1、概述:
函数是程序中的功能单元(最小),具有易读性,易维护,可实现功能复用。
2、函数
数字相关:
- counter计数器
- ranodm随机数
- time时间值
文件读取:
- csvread批量操作
属性设置:
- setProperty属性设置
- property属性获取
- 二者结合可以实现跨线程组传值