接口测试之Jmeter基本使用(十)-beanshell后置处理器

   案例实现的效果:经过登陆请求后,去得到服务器返回Headers信息,而后用得到的信息去请求其余接口获取数据。java

分析:用户登陆成功--》返回Cookie---》客户端拿着Cookie再去请求--》认证Cookie,返回请求数据。shell

实现步骤:  apache

一、经过Charles抓包分析请求的URL,发现Cookie是在Header字段中去请求服务器的,登陆接口返回的也是在Header中,以下图:swift

具体的参数以本身的接口信息为准,这里只是个人请求Cookie参数。只做为参考服务器


二、在请求用户信息的请求中增长一个HTTP信息头管理器,将相应的字段进行参数化,具体参数化的值在beanshell中获取和设置,以下图:微信


三、在登陆请求的后面新增一个Beanshell 后置处理器,用户获取header信息和输入参数。代码以下:cookie

import org.apache.jmeter.samplers.*;import org.apache.jmeter.config.*; import java.util.regex.Matcher;import java.util.regex.Pattern;
String headers=prev.getResponseHeaders();//获取前一个请求的响应头部信息log.info("headers-->{}",headers);String regex = "Set-Cookie:(.*)"; //正则匹配到Cookie信息Pattern p = Pattern.compile(regex);Matcher m = p.matcher(headers);while(m.find()){ String cookie=m.group(1); log.info("cookie-->{}",cookie); String cookietype=cookie.split("=")[0]; log.info("cookietype--{}",cookietype); switch(cookietype){ case " t_skey": String str=cookie.split(";")[0]; log.info("t_skey--{}",str.split("=")[1]); vars.put("t_skey",cookie.split(";")[0].split("=")[1]); case " LMB_AUTH_CODE": log.info("LMB_AUTH_CODE--{}",cookie.split(";")[0].split("=")[1]); vars.put("LMB_AUTH_CODE",cookie.split(";")[0].split("=")[1]); case " __TOKEN_NEW": log.info("__TOKEN_NEW--{}",cookie.split(";")[0].split("=")[1]); vars.put("__TOKEN_NEW",cookie.split(";")[0].split("=")[1]); } } log.info("__TOKEN_NEW-->{}",vars.get("__TOKEN_NEW")); log.info("LMB_AUTH_CODE-->{}",vars.get("LMB_AUTH_CODE")); log.info("t_skey-->{}",vars.get("t_skey"));


相关阅读:
测试

接口测试之Jmeter基本使用(九)-beanshell前置处理器ui

接口测试之Jmeter基本使用(八)--Samplerspa

接口测试之Jmeter基本使用(二)--参数设置


-------------------------------------最后---------------------------------

 更多软件测试相关内容请关注“软件测试道与术”公众号或扫描下方二维码





本文分享自微信公众号 - 软件测试道与术(UTesting)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索