1.新建maven工程
2.导入依赖,并使用shade将所需的依赖打入jar包
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">
4.0.0
ForJmeter
com.csj2018
1.0-SNAPSHOT
org.testng
testng
6.14.3
junit
junit
4.12
org.hamcrest
hamcrest-all
1.3
io.rest-assured
rest-assured
4.0.0
io.rest-assured
json-path
4.0.0
io.rest-assured
xml-path
4.0.0
io.rest-assured
json-schema-validator
4.1.2
com.fasterxml.jackson.core
jackson-databind
2.9.8
com.fasterxml.jackson.core
jackson-core
2.9.8
com.fasterxml.jackson.core
jackson-annotations
2.9.8
org.apache.poi
poi
4.0.1
org.apache.poi
poi-ooxml
4.0.1
org.apache.jmeter
ApacheJMeter_core
3.3
org.apache.jmeter
ApacheJMeter_java
3.3
org.apache.maven.plugins
maven-shade-plugin
2.1
package
shade
io.rest-assured
3.编写Java类
import io.restassured.response.Response;
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 static io.restassured.RestAssured.given;
public class TestJmeterDemo extends AbstractJavaSamplerClient {
String corpid;
String corpsecret;
@Override
public void setupTest(JavaSamplerContext context){
System.out.println("测试开始");
corpid = context.getParameter("corpid");
corpsecret = context.getParameter("corpsecret");
}
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
SampleResult result = new SampleResult();
result.sampleStart();
//同@Test
String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken";
Response res = given().param("corpid",corpid).param("corpsecret",corpsecret).get(url).prettyPeek();
String accessToken = res.getBody().jsonPath().getString("access_token");
if(res.statusCode() == 200){
result.setSuccessful(true);
result.setResponseData(res.getBody().prettyPrint(),"UTF-8");
}else{
result.setSuccessful(false);
}
result.sampleEnd();
return result;
}
@Override
public void teardownTest(JavaSamplerContext context){
System.out.println("测试结束");
}
/**
* 参数化
*/
@Override
public Arguments getDefaultParameters() {
Arguments arguments = new Arguments();
arguments.addArgument("corpid","corpid.value");//value可以为空
arguments.addArgument("corpsecret","");
return arguments;
}
}
4.打包
#打包
mvn clean package
#将打出的jar移到指定目录
mv com.csj2018-1.0-SNAPSHOT.jar ~/otherApp/apache-jmeter-3.3/lib/ext/
5.启动jmeter,添加java请求,运行
问题
1.打的jar包提示某些类不存在,如Uncaught Exception java.lang.NoClassDefFoundError: org/ccil/cowan/tagsoup/Parser. See log file for details.
原因:如果是三方依赖的包,那需要打在最后的jar里,百度搜索assembly的maven。只需要在inclueds里加入这个包即可
io.rest-assured
org.ccil.cowan.tagsoup