Jmeter基础009----内置函数

一、函数概述

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()函数,填写函数参数,生成调用格式,如下图所示:

Jmeter基础009----内置函数

(2)复制生成的调用格式,创建HTTP请求,粘贴复制的调用格式,如下图所示:

Jmeter基础009----内置函数

(3)运行测试计划,查看结果树,如下图所示:

Jmeter基础009----内置函数

2、__random()函数

(1)打开Jmeter 内置的函数功能模块,选择__randon()函数,填写函数参数,生成调用格式,如下图所示:

 Jmeter基础009----内置函数

(2)复制生成的调用格式,创建HTTP请求,粘贴复制的调用格式,如下图所示:

 Jmeter基础009----内置函数

(3)运行测试计划,查看结果树,如下图所示:

Jmeter基础009----内置函数

3、__time()函数

(1)打开Jmeter 内置的函数功能模块,选择__time()函数,填写函数参数,生成调用格式,如下图所示:

 Jmeter基础009----内置函数

(2)复制生成的调用格式,创建HTTP请求,粘贴复制的调用格式,如下图所示:

 Jmeter基础009----内置函数

(3)运行测试计划,查看结果树,如下图所示:

Jmeter基础009----内置函数

注:时间格式: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格式数据只复制接口定义的模板,具体数据动态获取,如下图所示:

Jmeter基础009----内置函数

Jmeter基础009----内置函数

(2)编辑文本文档,将数据存储在外部的文本文档(CSV 格式),如下图所示:

Jmeter基础009----内置函数

(3)打开Jmeter 内置的函数功能模块,选择   __CSVRead()函数,填写函数参数,生成调用格式,如下图所示:

Jmeter基础009----内置函数

注:CSVRead函数设置CSV文件路径时,必须得使用绝对路径,不可以使用相对路径

 (4)复制生成的调用格式,在HTTP请求中粘贴复制的调用格式,如下图所示:

Jmeter基础009----内置函数

 (5)运行测试计划,查看结果树,如下图所示:

Jmeter基础009----内置函数

四、属性设置函数

1、函数

  • __setProperty():属性设置
  • __property():属性获取

2、需求

  •  HTTP请求1:访问百度,将请求1响应的title值传递给请求2,但是两个请求不属于同一个线程组
  •  HTTP请求2:访问google /?wd=百度一下你就知道

3、实现思想:

将线程组内部的数据导出去,存储在共享空间中,其他线程组要使用数据,就从共享空间获取

  • 将数据从当前线程组导出,使用__setProperty()函数。
  • 另外-一个线程组将导出到共享空间的数据引入,使用__property()函数。

4、实现流程

 (1)搭建框架,创建HTTP请求和Xpath提取器,如下图所示:

Jmeter基础009----内置函数

Jmeter基础009----内置函数

(2)打开Jmeter 内置的函数功能模块,选择   __setProperty()函数,填写函数参数,生成调用格式,如下图所示:

Jmeter基础009----内置函数

(3)线程组右键----添加----Sampler----Bean Shell,创建Bean Shell执行脚本,并粘贴复制的函数,如下图所示:

Jmeter基础009----内置函数

(4)打开Jmeter 内置的函数功能模块,选择   __property()函数,填写函数参数,生成调用格式,如下图所示:

 Jmeter基础009----内置函数

(5)再次创建线程组和HTTP请求,调用复制的__property()函数调用格式,如下图所示:

Jmeter基础009----内置函数

 (6)运行测试计划,查看测试结果,如下图所示:

Jmeter基础009----内置函数

 注意:可通过工作台----添加----非测试元件----Property Display,查看共享空间的数据,如下图所示:

Jmeter基础009----内置函数

注:一般不使用共享空间,因为这样变量的生命周期太长,容易出问题。

 五、总结

1、概述:

     函数是程序中的功能单元(最小),具有易读性,易维护,可实现功能复用。

2、函数

数字相关:

  • counter计数器
  • ranodm随机数
  • time时间值

文件读取:

  • csvread批量操作

属性设置:

  • setProperty属性设置
  • property属性获取
  • 二者结合可以实现跨线程组传值

相关推荐