美文网首页
jmeter 小脚本 BeanShell PreProcess

jmeter 小脚本 BeanShell PreProcess

作者: 远山怀民 | 来源:发表于2019-01-24 19:58 被阅读0次

可以用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);

相关文章

网友评论

      本文标题:jmeter 小脚本 BeanShell PreProcess

      本文链接:https://www.haomeiwen.com/subject/fzpujqtx.html