什么是bsf, Bean Scripting Framework(BSF)是一个支持在Java应用程序内调用脚本语言 (Script),而且支持脚本语言直接访问Java对象和方法的一个开源项目。 jmeter 使用bsf处理器, 无非就是能够编写本身的script脚本代码, 来实现更强大的测试脚本。javascript
下面这个例子告诉你,何时必须使用jmeter的bsf处理器, 何时使用正则表达式提取器就足够了。(如下例子均为假设,并不真实存在)html
须要使用bsf的例子 | 使用正则表达式提取器便可的例子 |
2. 返回了一个json(协议)字符串 其中包含了一个key为java passwd, 他的值为mypasswd. 正则表达式
|
2. 返回了一个html页面包含以下一个连接json
咱们想找到 http://blog.whoistester.com 这个字符串测试 并赋予到变量${url} 加密
|
3. 将mypasswd 这个值抓取到,并赋给${mypasswd}url
|
3. 直接利用征则表达提取器提取到xml 字符串并赋予给${url}变量htm |
4. 对${mypasswd}的值进行md5加密, 并md5加密后的字符串赋到 ${md5mypasswd} |
|
5. 而后使用${md5mypasswd}进行下一步的操做 | 如何使用正则表达式提取,请浏览 |
经过例子对比, bsf能够经过编写咱们本身的脚本,进行更复杂的逻辑处理。 一般jmeter本身提供的方法没法知足咱们的需求时,咱们则须要用bsf本身编写脚本,来实现本身的复杂处理逻辑.
bsf 有前置与后置处理器。后置处理器,经过 prev.getResponseDataAsString()能够得到该sample请求的返回数据。 咱们将返回的数据获得咱们想要的数据,而后能够进行逻辑运算处理。
而后经过 vars.put("key", value); 放入到jmeter的变量里。
这样咱们在后面的sample或者其余类型的处理器里,就可使用$key 这个变量了。
额外说的是, 尽可能不要使用javascript的正则表达式去解析html,xml。 这是痛苦的一件事情,但若是你须要获取少许的数据, 固然你可使用正则表达式的方法。 一个最好的办法是, 服务端尽可能返回json格式。