目录
场景:
环境及工具 :
JMeter中文配置:
配置登录接口:
配置响应结果:
配置json提取器
测试json提取器
配置Beanshell后置处理器:
http请求右键-->添加---->后置处理器--->Beanshell后置处理器
配置全局请求头:
验证全局token是否生效:
场景:
线上遇到一个这样的问题工作流报乐观锁异常
org.activiti.engine.ActivitiOptimisticLockingException: was updated by another transaction concurrently初步怀疑是并发造成的,本地需要用jmeter压测工具去重现。
环境及工具 :
windows,JMeter
JMeter中文配置:
jmeter.properties中配置language=zh_CN
配置登录接口:
线程组-->右键添加-->取样器-->HTTP请求
填写协议、ip、端口及请求路径点击保存
配置响应结果:
http请求右键-->添加---->监听器--->察看结果树
配置json提取器
http请求右键-->添加---->后置处理器--->json提取器
(注:目的是从返回结果中提取token)
测试json提取器
配置Beanshell后置处理器:
http请求右键-->添加---->后置处理器--->Beanshell后置处理器
通过工具设置Beanshell后置处理器脚本:工具-->函数助手对话框
这里需要注意:
第一:如果你的请求token前没有前缀,则直接填写${__setProperty(newtoken,$.access_token,)}
注:$.access_token在json提取器中定义了token,因此可${__setProperty(newtoken,${token},)}
第二种情况:如果你的请求token前有前缀 比如token前有Bearer
先用V函数 value of property的值填写 Bearea ${token},点击生成得到${__V(,Bearea ${token})}
然后在用setProperty函数助手value of property的值填写第一步生成的${__V(,Bearea ${token})}
注意这里Bearer生成的逗号去掉,然后点击生成得到${__setProperty(,${__V(Bearea ${token})},)}
最后定义一个变量别名newtoken供全局使用,放到beanshell后置处理器的脚本中
${__setProperty(newtoken,${__V(Bearea ${token})},)}
配置全局请求头:
线程组右键-->添加 -->配置元件--->HTTP请求头管理
使用函数助手property,value of property值newtoken
验证全局token是否生效:
任意添加一个需要token的请求接口
执行后请求路径上带上token且响应成功