引言
使用JMeter做性能测试时,经常用的采样器是HttpRequest,但是对于类似SDK的api测试并不适用,我们可以用Java Request。
Maven依赖
新建一个Maven项目,必须增加以下两个依赖:
<dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>5.1</version> </dependency> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>5.1</version> </dependency>
Maven Plugins
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>utf-8</encoding> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.3</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
采样类
//必须继承AbstractJavaSamplerClientpublic class PutObjectRequestSample extends AbstractJavaSamplerClient { private static final Logger logger = LoggerFactory.getLogger(PutObjectRequestSample.class); // 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中 @Override public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("filename", ""); return params; } @Override public SampleResult runTest(JavaSamplerContext javaSamplerContext) { SampleResult sr = new SampleResult(); sr.sampleStart(); boolean success = false; try { String filename = javaSamplerContext.getParameter("filename"); String resultUUID =""; SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddSSSSSS" ); Date d= new Date(); String time = sdf.format(d); String uuid = UUID.randomUUID().toString().replace("-","").substring(0,17); resultUUID = fossService.putObject(PDF_BUCKET,time +"_"+ uuid,new FileInputStream(new File(filename)),"application/pdf"); if(StringUtils.isBlank(resultUUID)) {//设置端口为其他端口设置 sr.setSuccessful(false); logger.error("upload srtp fail!"); } else { sr.setSuccessful(true); logger.info("upload success:" + resultUUID); } } catch (Exception e) { sr.setSuccessful(false); logger.error("上传出错,异常:",e); } finally { sr.sampleEnd(); } return sr; } /** * main方法测试程序是否可用,打包时 注释掉 * @param args */// public static void main(String[] args) {// Arguments params = new Arguments();// params.addArgument("filename", "C:\2个已签.pdf");// JavaSamplerContext ctx = new JavaSamplerContext(params);// PutObjectRequestSample test = new PutObjectRequestSample();// test.runTest(ctx);// }}
打包
mvn clean package
生成两个jar包
*
-1.0-SNAPSHOT-jar-with-dependencies.jar放到apache-jmeter-5.1.1lib下
*-1.0-SNAPSHOT.jar 放到 apache-jmeter-5.1.1libext下
新建Java Request
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!