BeanShell是一个小巧免费的JAVA源码解释器,支持对象式的脚本语言特性,亦可嵌入到JAVA源代码中,能动态执行JAVA源代码并为其扩展了脚本语言的一些特性.
JMeter里面提供了对BeanShell的支持,用户可以利用BeanShell写一些脚本来辅助性能测试。这里顺便提一下,在TestNG这个单元测试框架,也是支持BeanShell的。
借助BeanShell的使用,来测试一个Java工具类里面的方法调用。例如开发写了一个工具类,这个不是一个接口,但是供很多地方调用的一个工具类。我们有这么一个需求,想测试下这个工具类里面方法的压力或者性能瓶颈。这个时候,我们就需要把这个工具类导出jar包,然后把jar包添加到JMeter中,我们可以利用BeanShell进行对工具类的方法进行调用和测试。确定能测试通过之后,我们就可以进行压测。
用JMeter创建测试数据。
登录接口,JSON提取器获得UserName+ Token.
用Beanshell脚本将Username+ Token保存到File里。
1.先在Eclipse上写一个工具类,代码如下。
package testing;
public class Calculation {
public int sum(int a, int b) {
return a + b;
}
public int sub(int a, int b) {
return a - b;
}
public int mul(int a, int b) {
return a * b;
}
public int div(int a, int b) {
return a / b;
}
}
2.把工具类导出成jar文件
点击项目名称,右键,选择export,导出,选择JAR file.
选择导出到桌面,我命名这个Jar文件名为JMeterUtil.jar
3.Jar文件添加到JMeter
打开JMeter,点击测试计划下面的浏览器按钮,上传JMeterUtil.jar文件
4.添加一个BeanShell Sampler
在当前线程组下,添加一个BeanShell Sampler. 输入如下代码,我们来测试下调用工具类里面的两个整数相加的方法是否可行。
添加一个察看结果树监听,看看运行结果。
通过上面的过程,你应该知道如果开发给你一个jar包,让你测试里面某一个方法的压力,你就可以根据上面的步骤,设计相关的测试用例。