Jmeter使用JSR223运行js

上一篇 / 下一篇  2017-02-16 16:38:28 / 个人分类:性能测试

由于javascript:;" onClick="javascript:tagshow(event, '%B9%A4%D7%F7');" target="_self">工作需要,需要对一个APP的内部请求进行压力测试
结果发现登录请求中的密码串是在app前端用js使用RSA进行加密的。这种问题应该也并不罕见,可惜我没有找到现成的资料。。。
加密方式形如:
如何在jmeter中执行这个js,获得加密后的串呢?

首先调用获取公钥的请求(不知道公钥是什么的同学请百度RSA加密)
通过正则表达式提取公钥后,作为参数传递到JSR223前置处理器中。

JSR223是个什么东西呢?这个语言能够让你在java环境中执行JavaScript,因为jmeter本身是java写的,所以我们就需要这个了
JSR223前置处理器及写出的脚本如下图

这里最好我们将加密后的串输出到变量datemy中,以供后续使用。

注意事项:
要引用的js放在jmeter的bin目录下;
要验证变量是否取到了我们想要的值可以加入一个Debug Sample

TAG: JavaScript Jmeter jmeter jsr223

天使未必在场的个人空间 引用 删除 天使未必在场   /   2017-05-19 14:18:13
apache-jmeter-2.12 + java 1.6   load文件时报错;
换**ache-jmeter-3.2 + java1.8 可以加载了~
引用 删除 软评小白   /   2017-05-02 15:31:31
楼主,我将.js文件放在JMeter的bin下,然后load时报错:
jmeter.modifiers.JSR223PreProcessor: Problem in JSR223 script JSR223 PreProcessor javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "load" is not defined.
引用 删除 软评小白   /   2017-05-02 15:31:22
5
天使未必在场的个人空间 引用 删除 天使未必在场   /   2017-04-28 18:20:31
楼主,我将.js文件放在JMeter的bin下,然后load时报错:
jmeter.modifiers.JSR223PreProcessor: Problem in JSR223 script JSR223 PreProcessor javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "load" is not defined.
 

评分:0

我来说两句

Open Toolbar