关键字:排查问题技巧、js处理器(参数加密、生成校验码。。。)
1.首先录制脚本,这里运用fiddler录制APP的登录、退出脚本
2.打开jmeter,测试计划--添加线程组--打开录制的脚本--添加监听器(查看结果树)--保存--运行
查看结果树:运行失败,响应数据显示404。。。。
排查原因小技巧:jmeter设置代理,fiddler开启抓包 ,比对正常request请求数据与脚本运行的请求数据情况
添加请求默认设置HTTP RequestDefaults.
结果比对:缺少哈希time
问题找到了,要如何处理呢?,处于安全性考虑,很多应用会做些相关处理,比如登录密码加密, jmeter引用js实现RSA加密。。。。
如何引用js处理器去处理哈希time呢?
.添加前置处理器 JSR223 PreProcessor.
添加后选择脚本语言js, 然后在Script面板写上我们要执行的js方法(其他js的复杂操作大家可以去找下相关资料). 配合 Log Viewer 可以查看调试执行结果.
PS:顺便提下js里面的JMeter变量"vars",vars 是Jmeter提供的一个全局变量对象,用户操作Jmeter中的变量! vars的本质是Map, 可以使用put("xxx", abc), get("xxx"), 用来设置值和取值. 这在我们下面将要用到的管理器里面很有用.
.添加请求头管理器 Header Manager.
这里的设置会对我们发起的请求自动加上这个值, 达到自定义请求头header设置的效果.在管理器面板添加参数, value对应的是我们需要从js处理后的值, 用${xxx}取vars里面put进去的值.
再次运行一下,OK了。。。