@1234567890
2018-03-27T09:11:28.000000Z
字数 2508
阅读 1516
性能测试
<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、选择自己开发的类