jmeter二次开发之java请求
2019-03-03 21:16 清风软件测试开发 阅读(1181) 评论(0) 编辑 收藏 举报现在很多公司都用的是微服务,每个服务的请求协议有可能不相同,怎样用jmeter二次开发自己的java请求?
下面是具体的开发步骤:
1,把需要的jar包 添加到maven依赖中
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>MyJmeter</groupId> <artifactId>MyJmeter</artifactId> <version>1.0-SNAPSHOT</version> <properties> <jmeter.version>3.0</jmeter.version> </properties> <dependencies> <!--jmeter--> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>${jmeter.version}</version> </dependency> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>${jmeter.version}</version> </dependency> </dependencies> <build> <plugins> <!--<plugin>--> <!--<groupId>org.apache.maven.plugins</groupId>--> <!--<artifactId>maven-jar-plugin</artifactId>--> <!--<version>2.4</version>--> <!--<configuration>--> <!--<archive>--> <!--<manifest>--> <!--<addClasspath>true</addClasspath>--> <!--<classpathPrefix>lib/</classpathPrefix>--> <!--<mainClass>etms.TestEtms</mainClass>--> <!--</manifest>--> <!--</archive>--> <!--</configuration>--> <!--</plugin>--> <!--<plugin>--> <!--<groupId>org.apache.maven.plugins</groupId>--> <!--<artifactId>maven-dependency-plugin</artifactId>--> <!--<executions>--> <!--<execution>--> <!--<phase>package</phase>--> <!--<goals>--> <!--<goal>copy-dependencies</goal>--> <!--</goals>--> <!--<configuration>--> <!--<outputDirectory>--> <!--${project.build.directory}/lib--> <!--</outputDirectory>--> <!--</configuration>--> <!--</execution>--> <!--</executions>--> <!--</plugin>--> </plugins> </build> </project>
2,然后编写具体的Java请求方法,代码如下
package com.niu.MyJmeter; import javafx.scene.shape.ArcTo; import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; import org.apache.xmlbeans.impl.xb.xsdschema.impl.PublicImpl; /** * Created by Administrator on 2017/8/30 0030. */ public class JmeterTest implements JavaSamplerClient { private String interfaceName; private String methodName; @Override public void setupTest(JavaSamplerContext javaSamplerContext) { //某种连接只连接一次,例如数据库 System.out.print("测试开始"); } @Override public SampleResult runTest(JavaSamplerContext javaSamplerContext) { SampleResult result = new SampleResult(); //获取页面上interfaceName的方法 interfaceName = javaSamplerContext.getParameter("interfaceName"); //获取页面上methodName的方法 methodName = javaSamplerContext.getParameter("methodName"); //测试开始的时间戳 result.sampleStart(); //设置响应数据的格式 result.setResponseData(interfaceName+":"+methodName,"UTF-8"); //测试结束的时间戳 result.sampleEnd(); //设置成功的 result.setSuccessful(true); //设置响应code码 result.setResponseCodeOK(); //设置数据编码格式 result.setDataEncoding("UTF-8"); return result; } @Override public void teardownTest(JavaSamplerContext javaSamplerContext) { System.out.print("测试结束"); } @Override public Arguments getDefaultParameters() { //添加参数 Arguments arguments = new Arguments(); arguments.addArgument("interfaceName",""); arguments.addArgument("methodName",""); return arguments; } public static void main(String[] args){ JmeterTest jmeterTest = new JmeterTest(); JavaSamplerContext arg0 = new JavaSamplerContext(jmeterTest.getDefaultParameters()); jmeterTest.runTest(arg0); jmeterTest.teardownTest(arg0); } }
3,IDEA打包放进jmeter里面
然后用IDEA中的clean 先清除包,再install打成jar包,放到jmeter中的javasample中,本次代码中的参数是interfaceName, methodName ,然后面填入值,就可以用查看结果树来查看响应结果。
原文地址https://blog.csdn.net/qq_30353203/article/details/77713754