关联:将前一次请求的获得的值作为下次请求的参数
1. http请求
流程:1. 先发出一次HTTP请求
2. 后置处理器使用正则表达式提取器,从http响应中提取需要的值
3. 下一次http请求使用正则表达式提取值。
正则表达式截图:
引用名称:其他元件引用时需要的名称。存入jmeter参数中,通过debug可以看到
正则表达式:提取范围。
():待提取的范围
模板:正则表达式提取的相关设置
用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东东),则可以是$1$,$2$等等,表示解析到的第几个值给str,正则表达式的提取模式,值从1开始,值0对应的是整个匹配的表达式 如对于表达式s(.*) 值0对应str,值1对应tr
匹配数字:(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容。
2.JDBC请求
打开路径
界面介绍
Variable name:引用的数据库配置文件名称
Query Type:数据库操作类型,此处选择查询。
Query:写操作SQL
Variable names:将SQL结果参数化。如图:A表示第一列,B表示第二列,C表示第三列
A_#:第一列行数
A_1:第一列第一行的值
A_2:第二列第二行的值
B_#:第二列行数。。。。。。
4)BeanShell 取出参数化后的结果
解释:(1)int num1 = Integer.valueOf(${A_#}).intValue();
获取当前取出的数据有多少行
(2)int num2 = Integer.valueOf(${__counter(TRUE,)}).intValue();
获取当前线程循环的次数
(3)int num = num2%num1 + 1;
将当前循环的次数除以行数取余后,加一
(4)vars.put("result",vars.get("B_"+num));
固定方法:vars.get("B_"+num)获取jmeter属性key=("B_"+num)的值
vars.put:将获取到的值传入给key=result的jmeter属性,其他元件可以通过${key}来取得该值,例如: