第十讲、Jmeter之关联

1、关联是什么

 关联是一种动态行为,用以后续的请求(比如HTTP请求)从之前的请求(比如JDBC Request)的的查看结果器—>响应数据(服务器返回的数据)中直接使用指定的数据。

常见场景一:1、HTTP请求—>HTTP请求。某个用户(调用登陆接口)登录成功后服务器会返回一个登录凭证比如防止csrf攻击而生成的app_token,之后的操作比如修改密码接口、支付接口和购买接口等都需要带上此凭证。我们怎么获取登录凭证并传递给后续的这三个HTTP接口请求呢,可用的方法就是关联。2、注册接口中有个参数input_code(短信验证码)也是通过关联从注册发送短信验证码接口的响应数据中获取的。3、查询订单详情接口中有个参数order_id(订单ID),也是通过关联从购买接口的响应数据中获取的。

常见场景二:JDBC Request—>HTTP请求。1、性能测试之多个用户并发登陆以测试系统当前支持的最大在线人数,登陆接口有五个参数mobile、password和app_ver、signMsg、device_type,比较low 的方法就是写一个txt参数化文件,手动从数据库里粘贴复制成百上千组mobile和password,比较hign的做法就是通过关联从JDBC Request的响应数据获取mobilepassword,只有app_ver、signMsg和device_type是手动输入的固定数据。2、性能测试之多用户并发访问产品列表页,访问产品列表页接口中的参数categorycurrentpage可以是手动输入固定的。3、性能测试之多用户并发访问产品详情页,访问产品详情页接口的参数product_id可以是手动输入固定的。4、性能测试之多用户并发购买同一理财产品时的参数化也可以通过关联实现,购买接口中的用户IDapp_token、身份证号和银行卡号都取自JDBC Request的响应数据,只有产品ID和购买金额是手动输入的固定数据。关键两点:采样器JDBC Request里查询sql语句的写法和正则表达式提取器里的前三行。

Jmeter中,关联是通过之前请求的后置处理器实现的,具体有XPath Extractor和正则表达式提取器两种方式,这里仅介绍正则表达式提取器。

2、通过后置处理器—>正则表达式提取器

第一步、之前的请求

本demo中使用HTTP请求不使用JDBC Request。添加一个http请求,比如登陆接口,运行然后得到响应数据(就是该接口的返回报文)。如图所示,登录凭证是"Message":"凭证"


第二步、添加正则表达式提取器

在之前请求的树形结构里添加后置处理器—>正则表达式提取器,并编辑此提取器。

第十讲、Jmeter之关联_第1张图片第十讲、Jmeter之关联_第2张图片

第三步、后续的HTTP请求

    在后续请求的URL中或者参数中或者响应断言中就可以通过正则表达式提取器中定义的引用名称获取之前请求的指定响应数据了。

第十讲、Jmeter之关联_第3张图片

你可能感兴趣的:(Jmeter)