Jmeter用于接口测试中,关联如何实现
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取。
1、打开jmeter, 使用的3.3的版本,新建一个测试计划,在测试计划里新建一个线程组,新建一个登录的http请求,如图所示:

2、查看登录返回的结果:

3、充值接口需登录后才能操作,此时可以使用cookie方式,验证此用户已经登录,在充值接口里添加cookie管理器:


这里的sign就是上一个登口接口返回的sign值,
4、在登录请求下新建一个后置处理器,提取返回结果值:



5、查看接口运行结果:


总结: 以上就是jmeter的关联实现,如果有其他的接口需要前一次请求的结果,也可以添加的后置处理器提取变量,作用于后一个接口中,实现参数动态变化。
关于正则表达式的举例说明:
1、提取单个字符串:
假如想匹配Web页面的如下部分:name = "file" value = "readme.txt">并提取readme.txt。一个合适的正则表达式:name = "file" value = "(.+?)">。
():封装了待返回的匹配字符串。
.:匹配任何单个字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
2、提取多个字符串:
假如想匹配Web页面的如下部分:name = "file.name" value = "readme.txt">并提取file.name和readme.txt。一个合适的正则表达式:name = "(.+?)" value = "(.+?)"。这样就会创建2个组,分别用于$1$和$2$
比如:
引用名称:MYREF
模板:$1$$2$
如下变量的值将会被设定:
MYREF: file.namereadme.txt
MYREF_g0: name = "file.name"value = "readme.txt"
MYREF_g1: file.name
MYREF_g2: readme.txt
在需要引用地方可以通过:${MYREF}, ${MYREF_g1进行使用。
当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理,Jmeter可以通过“后置处理器”中的“正则表达式提取器”来处理关联。
简单的关联
比如在访问百度首页时响应数据里面有一个title
<title>百度一下,你就知道</title> 我就想在其他的请求中引用这个title
添加正则表达式提取器并设置如下:

添加一个关联请求来验证这个关联:

执行后我们看到关联成功了

复杂一点的关联,像取正则表达式结果里面多个值
比如一个请求的响应数据如下:

我们尝试来提取0.0,84956.0,1019,3这四个数据,添加正则表达式提取器做如下设置

引用名称: 引用名称和引用的方法,不用多解释,和变量参数化差不多。
正则表达式: 凡是要被引用的部分都替换成圆括号,括号内具体的表达式您可以单独查阅正则表达式相关的知识。
模板: 代表从正则表达式结果引用的样式,其实结果是一组,而不是一个。$0$代表这一组结果的全部,$1$代表这一组结果的第1个,以此类推;
$1$$2$代表该正则表达式一组结果中的第1个和第2个,俩结果挨在一起中间没有间隔;
$3$,$4$代表该正则表达式一组结果中的第3个和第4个,俩结果间有一个逗号相连。
匹配数字: 0代表正则表达式结果组中随机,1代表全部。
缺省值: 当引用不对时显示传递的信息,通畅写一个ERROR。
如上设置好正则表达式提取器后,我们可以添加一个被关联的验证请求,如下:

事实上,myref_g0,myref_g1...myref_g4 是正则表达式的结果组,而myref才是被模板控制提取出来结果,这里为了更清晰的观察正则表达式的结果组才在验证请求中添加这么多参数,实际使用是用一个myref和模板配合就可以了。
myref_g0={"rent":0.0,"price":84956.0,"totalprice":1019,"roomType":3}
myref_g1=0.0
myref_g2=84956.0
myref_g3=1019
myref_g4=3
1. 模板 $0$

2.模板$1$$2$

3.模板$3$,$4$

另外对于匹配数字,目前我只看到 0和1,取其他整数的情况也许还有,那一定是更复杂一点的情况,目前0或1对我来说已经够用了,以后遇到其他情况再来更新吧。
Jmeter用于接口测试中,关联如何实现的更多相关文章
- Jmeter用于接口测试中【接口耦合关联的实现】
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...
- jmeter接口测试中的用例数据分离
用jmeter做接口测试的话,一个jmx文件就可以是一个用例,而用例的设计多数还是等价类.边界值等方法.用例越来越多的时候,维护比较麻烦,所以可以把用例的数据存在csv文件中,然后通过组件(CSV D ...
- Jmeter进行接口测试
原文地址:https://www.cnblogs.com/nancyzhu/p/8035042.html web接口测试工具: 手工测试的话可以用postman ,自动化测试多是用到 Jmeter(开 ...
- 用Jmeter进行接口测试及乱码问题
web接口测试工具: 手工测试的话可以用postman ,自动化测试多是用到 Jmeter(开源).soupUI(开源&商业版). 下面将对前一篇Postman做接口测试中的接口用Jmeter ...
- 使用jmeter进行接口测试
目录 jmeter介绍 jmeter安装 修改UTF-8 jmeter主要测试组件 jmeter元件作用域与执行顺序 使用Jmeter进行接口测试 jmeter介绍 JMeter是Apache基金会J ...
- 使用jmeter做接口测试----柠檬不萌!
一.乱码解决方案 1.jmeter查看结果树乱码 (1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上 sampleresult.default.encoding= ...
- 如何使用JMeter从文件中提取数据
在性能测试方面,重用响应数据至关重要.几乎(如果不是全部!)负载测试场景假设您: 从先前的响应中提取有趣的方面,并在下一个请求中重用它们(也称为相关) 确保实际响应符合预期(又称断言) 因此,如果您是 ...
- 如何用Jmeter做接口测试
Jmeter介绍&测试准备: Jmeter介绍:Jmeter是软件行业里面比较常用的接口.性能测试工具,下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库. 前期准备:测试 ...
- jmeter 创建接口测试案例
1 怎么做接口测试? 一般情况下,由于我们项目前后调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送和接收.所以我们下面整理了一下使用Jmeter工具进行htt ...
随机推荐
- 清橙A1339. JZPLCM(顾昱洲)
http://www.tsinsen.com/ViewGProblem.page?gpid=A1339 题解:https://blog.csdn.net/LOI_DQS/article/details ...
- 18.5.2动态代理和AOP
----此处是JDK动态代理----package d18_5_2; public interface IDog { void info(); void run(); } package d18_5_ ...
- js修改物理返回键功能
preventBack: function(theurl){ var pushState = window.history.pushState; //点击物理返回键时,退出到跳转定义首页 if(pus ...
- RabbitMq+Haproxy负载均衡
HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保 ...
- CCF|最大波动|Java|100
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Sc ...
- Scala基础篇-05求值策略
Scala的求值策略有2种: call by value call by name 如何区分? 例子: def bar(x:Int,y: => Int) = def loop(): Int=lo ...
- 【HEVC帧间预测论文】P1.1 基于运动特征的HEVC快速帧间预测算法
基于运动特征的 HEVC 快速帧间预测算法/Fast Inter-Frame Prediction Algorithm for HEVC Based on Motion Features <HE ...
- COGS 886. [USACO 4.2] 完美的牛栏
★★☆ 输入文件:stall4.in 输出文件:stall4.out 简单对比时间限制:1 s 内存限制:128 MB USACO/stall4(译by Felicia Crazy) ...
- ChromiumWebBrowser禁止鼠标右键和拖动
在屏蔽之前先查看namespace CefSharp.WinForms内的代码 public class ChromiumWebBrowser : Control, IWebBrowserIntern ...
- nginx 新手入门
Nginx 是一个高性能的http 和反向代理服务器,也是一个代理服务器. Nginx比Apache 更加轻量级,占用的资源少,抗并发,二apache是阻塞型的,在高并发下,nginx更占优势. 我们 ...