jmeter关联(跨线程组)
??接口请求之间存在参数调用,为了保存这个参数,建立jmeter关联。比如登陆接口和购买商品接口,购买商品接口就需要登陆接口返回的token等登陆信息,jmeter关联就可以保存这个token信息,方便购买商品接口使用。
??jmeter关联可以通过二种方式来完成,获取到返回结果中指定的值。它们分别是正则表达式提取器、 json path extractor。
(提取单独的数据)
使用JSON提取器:
1.在一个线程组中提取
右键第一个http请求---选择添加--选择后置处理器--选择json提取器
建立http请求 --》建立JSON提取器 --》再建立另一个HTTP请求 ----》建立查看结果树
1.建立http请求 --》
第一个请求结果 用json看
2.建立JSON提取器 --》
3.再建立另一个HTTP请求 ----》
4.建立查看结果树
提取city为北京
2.为了跨线程组
使用 Bean Shell 后置处理程序(控制多个线程组的之间的通讯,可以跨多个线程)
点击http请求右键选择添加--》后置处理器--》选择Bean Shell 后置处理程序
用到了函数,函数助手对话框。
填入生成的变量:
到线程组2:选择函数助手做以下操作
将参数填到线程组2中的http请求中;
最后启动。查看结果.
正则表达式提取器
若想获取的返回值未匹配到,可以把正则表达式两边匹配的数据扩大点。
关于正则表达式
():括起来的部分就是要提取的。
.:匹配除换行外的任何字符串。
+:代表+号前面的字符必须至少出现一次(一次或多次)。
?:代表?前面的字符最多可以出现一次,在找到第一个匹配项后停止(0次或1次)。
:代表号前面的字符可以不出现,也可以出现一次或者多次(0次、1次或者多次)
(.*):贪婪模式,匹配尽可能多的字符
(.*?)或(.+?):匹配尽可能少的字符,一旦匹配到第一个就不往下走了。
右键点击http请求---》选择添加--》选择后置处理器--》选择正则表达式提取式
选择百度提取:如下图
JMeter if 判断:
右键点击线程组---》选择添加--》选择后置处理器--》选择用户定义的变量
右键点击线程组---》选择添加--》选择逻辑控制器 ---》选择如果(if)控制器
输入数据:“${name} == "baidu"
再次添加如果(if)控制器。
输入数据:“${name} == "qq"
再次添加http请求
查看结果树
方法二:
利用函数 ,生成变量。
将变量放入控制器中。别的一样
运行结果为原来的结果。
JMeter连接数据库:
1.准备:mysql -connector-java-5.1.35-bin.jar 的脚本 放入apache-jmeter-5.1.1文件的lib文件中,然后重启JMeter.
2.在线程组添加 JDBC Connection Configuration (添加--配置原件--JDBC ..)
3.在线程组添加 JDBC Request (添加---》取样器--》JDBC Request)
填入pool 与上图pool一样
4.最后。运行察看结果树即可