案例实现的效果:经过登陆请求后,去得到服务器返回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
-------------------------------------最后---------------------------------
更多软件测试相关内容请关注“软件测试道与术”公众号或扫描下方二维码
本文分享自微信公众号 - 软件测试道与术(UTesting)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。