一、BeanShell Sampler
BeanShell Sampler ,既然是取样器,那么就是用来模拟向被测试系统发送请求的,JMeter会记录取样结果,也就是统计TPS、响应时间等性能指标。BeanShell支持Java对象的调用,所以我们可以直接通BeanShell来调用Java接口程序,这不就是接口测试嘛?
接下来我们就直接上代码看一个BeanShell调用Java接口的例子。
1.1 先编写两个简单的java类。
BeanUtil接口和它的实现类BeanShellEg
BeanUtil.java
package com.seling.test; public interface BeanUtil { public String getUserName(); public String getAddress(); public int mul(int i); }
BeanUtilImpl.java
package com.seling.test; public class BeanUtilImpl implements BeanUtil { public String userName; public String address; public BeanUtilImpl(String userName){ this.userName = userName; } public BeanUtilImpl(String userName, String address){ this.userName = userName; this.address = address; } @Override public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @Override public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public int mul(int i) { return i*i; } }
1.2 打成jar包,用于jmeter中测试调用
测试计划中导入jar包
1.3 编写Beanshell 取样器中脚本
1.4 BeanShell调用Java文件
讲到这里就不得不提一下之前的一个问题,之前有个朋友问到我是否可以调用java文件。答案当然是Ok的,那么show code。
先编写一个java文件: Myclass.java
package com.seling.test; public class Myclass { public int add(int a, int b){ return a+b; } }
1.5 BeanShell调用class文件
使用上面的java文件,编译成class,存放在/Users/kenwu/Desktop/PerformanceTest/Test/BeanTest/out/production/BeanTest/com/seling/test/Myclass.class
接着编写BeanShell脚本:
查看结果如下: