package utils;
import Deal.AssertDeal;
import enums.RemoteServerInfoEntity;
import org.apache.http.entity.StringEntity;
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 java.util.HashMap;
import java.util.List;
import java.util.Map;
import static utils.ExcelReader.getLine;
import static utils.QccsUtils.map2StringEntity;
import static utils.QccsUtils.string2Map;
public abstract class OverWriteJavaSampleClient extends AbstractJavaSamplerClient {
Map<String,RemoteServerInfoEntity> setRemoteServerInfo;
{
try {
setRemoteServerInfo = setRemoteServerInfo();
} catch (Exception e) {
e.printStackTrace();
}
}
//自定义java请求方法入参,设置可用参数及默认值
public Arguments overGettDefaultParameters(String key){
Arguments params = new Arguments();
params.addArgument("httpHost","");
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getHeaderMsg().entrySet()) {
params.addArgument(stringStringEntry.getKey(),"");
}
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getParameterMsg().entrySet()) {
params.addArgument(stringStringEntry.getKey(),"");
}
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getAssertMsg().entrySet()) {
params.addArgument(stringStringEntry.getKey(),"");
}
return params;
}
public void overSetupTest(JavaSamplerContext arg0,String key) {
String httpHost = arg0.getParameter("httpHost");
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getHeaderMsg().entrySet()) {
stringStringEntry.setValue(arg0.getParameter(stringStringEntry.getKey()));
}
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getParameterMsg().entrySet()) {
stringStringEntry.setValue(arg0.getParameter(stringStringEntry.getKey()));
}
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getAssertMsg().entrySet()) {
stringStringEntry.setValue(arg0.getParameter(stringStringEntry.getKey()));
}
}
public String overRun(String httpHost, String key) {
String respJson = "";
StringBuilder urlBuff = new StringBuilder();
urlBuff.append(httpHost).append(setRemoteServerInfo.get(key).getUrl());
if(!setRemoteServerInfo.get(key).getHeaderMsg().isEmpty()) {
if (setRemoteServerInfo.get(key).getRequestType() == 1) {
respJson = HttpClientUtils.doGetRequest(urlBuff.toString(), setRemoteServerInfo.get(key).getHeaderMsg(), setRemoteServerInfo.get(key).getParameterMsg());
} else {
if (setRemoteServerInfo.get(key).getParamType() == 1) {
respJson = HttpClientUtils.doPostRequest(urlBuff.toString(), setRemoteServerInfo.get(key).getHeaderMsg(), setRemoteServerInfo.get(key).getParameterMsg(), null);
} else {
StringEntity entity = map2StringEntity((HashMap<String, String>) setRemoteServerInfo.get(key).getParameterMsg());
respJson = HttpClientUtils.doPostRequest(urlBuff.toString(), setRemoteServerInfo.get(key).getHeaderMsg(), null, entity);
}
}
}
else{
if (setRemoteServerInfo.get(key).getRequestType() == 1) {
respJson = HttpClientUtils.doGetRequest(urlBuff.toString(), null, setRemoteServerInfo.get(key).getParameterMsg());
} else {
if (setRemoteServerInfo.get(key).getParamType() == 1) {
respJson = HttpClientUtils.doPostRequestwithCookie(urlBuff.toString(), null, setRemoteServerInfo.get(key).getParameterMsg(), null);
} else {
StringEntity entity = map2StringEntity((HashMap<String, String>) setRemoteServerInfo.get(key).getParameterMsg());
respJson = HttpClientUtils.doPostRequestwithCookie(urlBuff.toString(), null, null, entity);
}
}
}
return respJson;
}
public SampleResult overRunTest(JavaSamplerContext arg0, String key){
String httpHost = arg0.getParameter("httpHost");
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getHeaderMsg().entrySet()) {
stringStringEntry.setValue(arg0.getParameter(stringStringEntry.getKey()));
}
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getParameterMsg().entrySet()) {
stringStringEntry.setValue(arg0.getParameter(stringStringEntry.getKey()));
}
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getAssertMsg().entrySet()) {
stringStringEntry.setValue(arg0.getParameter(stringStringEntry.getKey()));
}
//定义请求和响应相关信息,输出至生成结果树
//生成结果树中请求消息和响应消息内容
String title = " "+"\n"+"\t"+
" 接口:"+setRemoteServerInfo.get(key).getDescription()+" "+"\n"+"\t"+
" "+"\n";
String httpUrl = "HttpUrl:" + httpHost + setRemoteServerInfo.get(key).getUrl()+"\n";
String requestBody = "";
String assertMsg = "断言字段期望值:";
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getParameterMsg().entrySet()) {
stringStringEntry.setValue(arg0.getParameter(stringStringEntry.getKey()));
requestBody += "\n"+"\t"+"\""+ stringStringEntry.getKey()+"\""+":" + stringStringEntry.getValue() + ", ";
}
for (Map.Entry<String, String> stringStringEntry : setRemoteServerInfo.get(key).getAssertMsg().entrySet()) {
stringStringEntry.setValue(arg0.getParameter(stringStringEntry.getKey()));
assertMsg += "\""+ stringStringEntry.getKey()+"\""+":" + stringStringEntry.getValue() + ", ";
}
String requestJson = "RequestJson:"+"{" +requestBody+"\n" + "}"+"\n"+assertMsg;
Map<String, String> assertResult =new HashMap<>();
SampleResult sr = new SampleResult();
String request_msg = "";
request_msg = request_msg + title+httpUrl + requestJson ;//+ assertMsg;
String response_msg = "";
response_msg = response_msg+title;
try {
sr.sampleStart();
String runMap = this.overRun(httpHost,key);
if(setRemoteServerInfo.get(key).getAssertMsg().containsKey("exp_code")){
assertResult = AssertDeal.AssertDealofCodeMessage(runMap,setRemoteServerInfo.get(key).getAssertMsg());
response_msg += assertResult.get("assertResult") ;
sr.setSuccessful(Boolean.parseBoolean(assertResult.get("Bool")));
}
else if(setRemoteServerInfo.get(key).getAssertMsg().containsKey("exp_total")){
assertResult = AssertDeal.AssertDealofTotalResult(runMap,setRemoteServerInfo.get(key).getAssertMsg());
response_msg += assertResult.get("assertResult") ;
sr.setSuccessful(Boolean.parseBoolean(assertResult.get("Bool")));
}
else {
if(!runMap.equals(null)) {
response_msg += runMap;
sr.setSuccessful(Boolean.parseBoolean(assertResult.get(true)));
}
else {
没有合适的资源?快使用搜索试试~ 我知道了~
基于jmeter+Java+HttpclientUtil实现的接口测试工具
共170个文件
jar:111个
xml:29个
class:14个
需积分: 42 4 下载量 188 浏览量
2022-04-03
21:13:41
上传
评论 5
收藏 80.63MB ZIP 举报
温馨提示
基于jmeter+Java+HttpclientUtil实现的接口测试工具,通过Excel表格进行维护接口相关参数信息,借助Jmeter工具通过java请求设计接口测试自动化测试用例。代码重写了JavaSampleClient类,在使用过程中取出了冗余的方法实现,简单易懂。同时也可以引申修改进行性能测试。 压缩包为完成的项目代码,目前只实现的get和post两种http协议请求,可以下载自行补充或者使用。在公司的项目中使用了,比较容易上手而且设计自动化接口测试用例比较简单和容易维护
资源详情
资源评论
资源推荐
收起资源包目录
基于jmeter+Java+HttpclientUtil实现的接口测试工具 (170个子文件)
HttpClientUtils.class 10KB
OverWriteJavaSampleClient.class 9KB
RemoteServerEnum.class 5KB
AssertDeal.class 5KB
ExcelReader.class 5KB
RemoteServerInfoEntity.class 4KB
SSLClientCustom.class 3KB
RequestParamEnum.class 3KB
QccsUtils.class 3KB
SetRemoteServerInfo.class 3KB
Login.class 2KB
Register.class 2KB
RestResult.class 2KB
SSLClientCustom$1.class 717B
InterfaceTest.iml 3KB
selenium-server-standalone-2.53.0.jar 20.25MB
resources_cn.jar 16.82MB
groovy-all-2.4.10.jar 6.7MB
xalan-2.7.2.jar 3.01MB
itextpdf-5.5.8.jar 2.18MB
commons-math3-3.6.1.jar 2.11MB
netty-all-4.0.33.Final.jar 2.01MB
ApacheJMeter_core.jar 1.45MB
ph-commons-8.6.0.jar 1.31MB
xercesImpl-2.11.0.jar 1.3MB
freemarker-2.3.23.jar 1.29MB
dubbo-2.4.10.jar 1.28MB
rhino-1.7.7.1.jar 1.2MB
netty-3.9.0.Final.jar 1.17MB
rsyntaxtextarea-2.6.1.jar 1.1MB
zookeeper-3.5.5.jar 956KB
caffeine-2.4.0.jar 950KB
jackson-databind-2.3.3.jar 894KB
bcpkix-jdk15on-1.64.jar 857KB
tika-parsers-1.14.jar 853KB
spring-core-3.2.4.RElEASE.jar 849KB
spring-context-3.2.4.RELEASE.jar 843KB
jmeter-plugins-manager-0.13.jar 820KB
testng-6.8.17.jar 817KB
commons-collections4-4.1.jar 734KB
javassist-3.19.0-GA.jar 732KB
httpclient-4.5.3.jar 730KB
xmlgraphics-commons-2.1.jar 630KB
tika-core-1.14.jar 605KB
ApacheJMeter_components.jar 595KB
spring-beans-3.2.4.RELEASE.jar 594KB
commons-collections-3.2.2.jar 575KB
xstream-1.4.9.jar 536KB
mail-1.5.0-b01.jar 507KB
ph-css-5.0.3.jar 486KB
commons-lang3-3.5.jar 469KB
fastjson-1.2.29.jar 450KB
ApacheJMeter_http.jar 434KB
mongo-java-driver-2.11.3.jar 409KB
logback-core-1.0.13.jar 409KB
jodd-core-3.8.1.jar 385KB
commons-jexl3-3.0.jar 375KB
bsh-2.0b5.jar 375KB
zookeeper-jute-3.5.5.jar 363KB
httpcore-nio-4.4.6.jar 348KB
jsoup-1.10.2.jar 342KB
spring-aop-3.2.4.RElEASE.jar 328KB
httpcore-4.4.6.jar 316KB
junit-4.12.jar 308KB
dnsjava-2.1.8.jar 307KB
dom4j-1.6.1.jar 307KB
commons-net-3.6.jar 300KB
commons-codec-1.10.jar 278KB
serializer-2.7.2.jar 270KB
commons-jexl-2.1.1.jar 261KB
jtidy-r938.jar 244KB
ganymed-ssh2-build210.jar 239KB
jodd-lagarto-3.8.1.jar 216KB
xml-apis-1.4.01.jar 215KB
commons-io-2.5.jar 204KB
commons-lang-2.1.jar 203KB
json-path-2.2.0.jar 202KB
jackson-core-2.3.3.jar 195KB
spring-expression-3.2.4.RElEASE.jar 192KB
commons-beanutils-1.7.0.jar 184KB
httpasyncclient-4.1.3.jar 175KB
commons-dbcp2-2.1.1.jar 170KB
maven-model-3.0.jar 161KB
json-lib-2.4-jdk15.jar 155KB
jcharts-0.7.5.jar 139KB
jorphan.jar 137KB
registry-util-2.1.3.jar 125KB
json-smart-2.3.jar 117KB
bsf-2.4.0.jar 111KB
commons-pool2-2.4.2.jar 109KB
ApacheJMeter_functions.jar 91KB
ApacheJMeter_jms.jar 86KB
ezmorph-1.0.6.jar 84KB
zkclient-0.11.jar 73KB
oro-2.0.8.jar 64KB
commons-logging-1.1.3.jar 61KB
ApacheJMeter_mail.jar 57KB
ApacheJMeter_jdbc.jar 52KB
asm-5.2.jar 52KB
ApacheJMeter_monitors.jar 48KB
共 170 条
- 1
- 2
闲小憨
- 粉丝: 90
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0