可以用jmeter写一些小脚本。
背景:测试一个职位需要投递20个人投递,比较麻烦,不想手工投递,就来偷个懒
思路:用CSV参数化用户,获取用户的cookie,再去投递就OK。
历程:
1、HTTP Cookie 管理器,我所知道的用法就是直接加这个主件就行了,但是,重来没好用过,pass
2、信息头里,放cookie,信息头放在请求下。
这里写成cookie,就OK,但是请求头里,是看不到cookie的,
这里写成cookies,但是请求头看得到cookie,但是请求就不通。
方法1:
骚操作:
用正则表达式获取cookie,因为是2个cookie要拼接。就直接在信息头里写的,结果居然可以,但是已投递的,返回的结果是对的,没有投递的简历,返回结果是“该简历已删除,无法投递”,但是我的简历没有删除,后来问了开发,中间差了个选择简历的接口。
想把cookie打印出来看看,debug sample看不到,写到BeanShell PostProcessor ,直接打印cookie,打印出来的是null
把这个cookie再放在一个用户自定义变量,打印出来,就是【AAA_XSESSION_ID="${chy_token}";AAA_XSESSION_ID_EXP="${EXP}"】
方法2:写个小脚本,舍近求远
结果:纵使觉得天衣无缝,结果请求还是不成功,就当练手了。
脚本里来打印cookie,看看对不对,再把这个cookie返回给jmeter外部用,就是vars.get。vars.put
vars.get:jmeter中定义的变量,拿进来还需要再定义一次。
vars.put:beanshell里定义的变量,拿出去在jmeter中用,就要put出去。
log.info:打印
拼接字符串:用+,字符串中有引号的,单引号,双引号套用。
每句话结尾记得打分号;
具体格式如下:
import org.json.*;
import java.lang.Integer;
import java.lang.String;
import java.lang.Math;
EXP= vars.get("EXP");
chy_token= vars.get("chy_token");
//拼接字符串
String cookie="AAA_XSESSION_ID="+'"'+EXP+";"+"AAA_XSESSION_ID_EXP="+'"'+chy_token;
vars.put("cookie",cookie);
log.info(cookie);