珠海高端网站建设报价,做网站能用思源黑体吗,营销型网站大全,部门网站建设管理经验交流材料随着我们采用不同的体系结构和实现方式#xff0c;对通用压力测试工具的需求不断增长。 Apache Jmeter是进行负载测试时最著名的工具之一。 它支持许多协议#xff0c;例如ftp http tcp#xff0c;并且可以轻松地用于分布式测试。 Jmeter还为您提供了一种创建自定义采样器… 随着我们采用不同的体系结构和实现方式对通用压力测试工具的需求不断增长。 Apache Jmeter是进行负载测试时最著名的工具之一。 它支持许多协议例如ftp http tcp并且可以轻松地用于分布式测试。 Jmeter还为您提供了一种创建自定义采样器的简便方法。 例如如果您需要对HTTP终结点进行负载测试而该终结点需要用于签名标头的特定过程那么自定义采样器将派上用场。 目标是实现一个自定义采样器项目该项目将对一个简单功能进行负载测试。 在此示例中我使用gradle 。 group com.gkatzioura.jmeter
version 1.0-SNAPSHOTapply plugin: javasourceCompatibility 1.6repositories {mavenCentral()
}dependencies {compile org.apache.jmeter:ApacheJMeter_java:2.11compile org.json:json:20151123testCompile group: junit, name: junit, version: 4.11
}task copySample(type:Copy,dependsOn:[build]) {copy {from project.buildDir.getPath()/libs/jmeter-sampler-1.0-SNAPSHOT.jarinto pathtoyourjmeterinstallation/apache-jmeter-2.13/lib/ext/}
} 我包括对项目的ApacheJMeter依赖项因为采样器将必须扩展AbstractJavaSamplerClient。 copySample任务会将jar复制到所有采样器所在的Jmeter的lib / ext路径中。 采样器将调用一个简单的函数 package com.gkatzioura.jmeter;/*** Created by gkatzioura on 30/1/2016.*/
public class FunctionalityForSampling {public String testFunction(String arguement1,String arguement2) throws Exception {if (arguement1.equals(arguement2)) {throw new Exception();}else return arguement1arguement2;}} CustomSampler类扩展AbstractJavaSamplerClient类并调用testFunction。 通过覆盖getDefaultParameters函数我们可以应用可与请求一起使用的默认参数。 package com.gkatzioura.jmeter;import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.Serializable;/*** Created by gkatzioura on 30/1/2016.*/
public class CustomSampler extends AbstractJavaSamplerClient implements Serializable {private static final String METHOD_TAG method;private static final String ARG1_TAG arg1;private static final String ARG2_TAG arg2;private static final Logger LOGGER LoggerFactory.getLogger(CustomSampler.class);Overridepublic Arguments getDefaultParameters() {Arguments defaultParameters new Arguments();defaultParameters.addArgument(METHOD_TAG,test);defaultParameters.addArgument(ARG1_TAG,arg1);defaultParameters.addArgument(ARG2_TAG,arg2);return defaultParameters;}Overridepublic SampleResult runTest(JavaSamplerContext javaSamplerContext) {String method javaSamplerContext.getParameter(METHOD_TAG);String arg1 javaSamplerContext.getParameter(ARG1_TAG);String arg2 javaSamplerContext.getParameter(ARG2_TAG);FunctionalityForSampling functionalityForSampling new FunctionalityForSampling();SampleResult sampleResult new SampleResult();sampleResult.sampleStart();try {String message functionalityForSampling.testFunction(arg1,arg2);sampleResult.sampleEnd();;sampleResult.setSuccessful(Boolean.TRUE);sampleResult.setResponseCodeOK();sampleResult.setResponseMessage(message);} catch (Exception e) {LOGGER.error(Request was not successfully processed,e);sampleResult.sampleEnd();sampleResult.setResponseMessage(e.getMessage());sampleResult.setSuccessful(Boolean.FALSE);}return sampleResult;}} 编译完成后必须将创建的jar复制到JMeter安装目录的lib / ext目录。 同样如果还有更多依赖项需要导入则还应该将它们复制到JMeter安装目录的lib路径中。 通过将Java Sampler添加到JMeter线程组来完成该过程之后我们可以选择我们的自定义采样器。 您也可以在此处找到源代码。 翻译自: https://www.javacodegeeks.com/2016/02/implement-custom-jmeter-samplers.html