目录
__CSVRead() :和 CSV Data Set Config 类似可以读取 CSV 文件数据
函数:可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用。
1. __CSVRead
2. __counter
3. __Random
4. __time
5. __setProperty
6. __property
数字类
__counter() : 计数器
__random(): 随机数函数
包含左右临界值(左闭右闭)
__time() : 获取时间的函数
时间格式: yyyy/MM/dd HH:mm:ss ==》 年/月/日 时:分:秒
__CSVRead类
__CSVRead() :和 CSV Data Set Config 类似可以读取 CSV 文件数据
作用:csvRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数
需求:使用 CSVRead 函数实现学院信息的批量插入(比如: 3条)
思想:
1)、搭建框架(线程组的线程数设置循环次数),JSON 格式数据只是模板,具体数据动态获取
注意:执行次数设置与信息头设置
CSV Data Set Config 执行多次是使用的循环次数,而 CSVRead 执行多次使用的是线程数
2)、将数据存储在外部的文本文档(CSV 格式)
3)、使用 CSVRead 函数逐行获取并解析 CSV 文件,插入到提交的 JSON 数据中
CSVRead 函数设置 CSV文件路径时,必须得使用绝对路径,不可以使用相对路径
第1个用户读取第一行,第2个用户读取第二行......
都是读取第一行,执行三次。这个跟csv data seting设置循环次数的区别。
1. 选择一个功能:选择__CSVRead
2. CSV file to get values from | *alias:要读取的文件路径-(绝对路径)
3. CSV文件列号| next| *alias:从第几列开始读取,注意第一列是0
4. 点击生成函数引用格式
5. 全选复制
属性类
需求:http 请求1 访问百度,将请求1响应的 title 值传递给请求2,但是两个请求不属于同一个线程组
http 请求2 访问 google /?wd=百度一下你就知道
实现思想 :
将线程组内部的数据导出去,存储在共享空间中,其他线程组要使用数据,就从共享空间获取。
实现流程:
1)、将数据从当前线程组导出 __setProperty
变量名
变量值 ${变量名}
<u>使用 BeanShell Sampler 调用函数</u>
2)、另外一个线程组将导出到共享空间的数据引入 __property
根据变量名获取
注意:查看共享数据,工作台 ----> 添加 -----> 非测试元件 ----> property display
通过在同一个线程组两个请求结合xpath提取器进行关联的方式可以实现。但是跨越两个线程组的话,参数就无法传递了,如上图,说明作用域只限在同一线程组。(测试计划已勾选 独立运行线程组选)
__setProperty() : 属性设置
用于把指定数据设定成Jmeter属性,可以理解为是把指定数据设置成全局变量.
1. 属性名称:要设置的属性名称也就是全局变量名
2. Value of property:属性的值(全局变量的值)
BeanShell Sampler 组件
可执行JavaScript的一种容器。设置属性的函数,真正生效需要BeanShell Sampler 的协助。
Property Display
查看共享全局变量信息。(键值对的形式)
位置:测试计划--非测试元件--Property Display
__property() : 属性获取
获取Jmeter中属性值
另一个线程组的请求需要引用全局变量的属性,如上图设置。
但是,不建议共享数据扩大作用域。使用场景不多。