@1234567890
2018-03-27T09:11:28.000000Z
字数 2508
阅读 1616
性能测试
<dependencies><dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_core</artifactId><version>${jmeter-version}</version><!--在本地测试时请注释掉scope --><scope>provided</scope></dependency><dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_java</artifactId><version>${jmeter-version}</version><!-- 在本地测试时请注释掉scope --><scope>provided</scope></dependency></dependencies><build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><version>2.5.3</version><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><descriptors><!--<descriptor>src/assembly/assembly.xml</descriptor>--></descriptors></configuration></execution></executions><configuration><!-- 最终打包名称 --><finalName>as_velocity_10_sampler</finalName><appendAssemblyId>false</appendAssemblyId></configuration></plugin></plugins></build>
PS1:在开发时,请注释掉引用包ApacheJMeter_core,ApacheJMeter_java下的scope
PS2:使用maven-assembly-plugin 插件,将项目依赖的三方包一起打包。如果不用插件,就必须拷贝所有依赖的包到jmeter的 lib/ext下
取样器类必须继承 AbstractJavaSamplerClient
public class SimpleSampler extends AbstractJavaSamplerClient {// 用于设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter参数列表中// Arguments类表示一组参数对象public Arguments getDefaultParameters() {Arguments params = new Arguments();params.addArgument(HOST, "10.57.32.196");params.addArgument(PORT, "3000");return params;}// 初始化方法,用于初始化性能测试时的每个线程,实际运行时每个线程仅执行一次//// JavaSamplerContext类用于向JavaSamplerClient实现提供上下文信息// 这当前由在GUI中指定的初始化参数组成,其他数据将来可以通过JavaSamplerContext访问public void setupTest(JavaSamplerContext context) {}// 性能测试时的线程运行体,即测试执行的循环体,根据线程数和循环次数的不同可执行多次public SampleResult runTest(JavaSamplerContext context) {return sampleResult;}// 测试结束方法,用于结束性能测试中的每个线程,实际运行时,每个线程仅执行一次,在测试方法运行结束后执行public void teardownTest(JavaSamplerContext context) {super.teardownTest(context);}}
再说一遍:注释掉引用包ApacheJMeter_core,ApacheJMeter_java下的scope
public class Demo {public static void main(String[] args) throws NoSuchMethodException, UnsupportedEncodingException {SimpleSampler jmeter = new SimpleSampler();Arguments arguments = jmeter.getDefaultParameters();jmeter.setupTest(new JavaSamplerContext(arguments));SampleResult sampleResult = jmeter.runTest(new JavaSamplerContext(arguments));jmeter.teardownTest(new JavaSamplerContext(arguments));System.out.println(new String(sampleResult.getResponseData(),"utf-8"));}}
再说一遍:打开注释引用包ApacheJMeter_core,ApacheJMeter_java下的scope
1、将打成的包丢到 jmeter/lib/ext
2、重新启动jmeter
3、添加java请求的Sampler

4、选择自己开发的类