change the api of upload script

This commit is contained in:
fanfuxiaoran 2014-04-24 16:31:01 +08:00
parent 4b355f91e6
commit 775b752200
5 changed files with 574 additions and 554 deletions

View File

@ -21,6 +21,7 @@ import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.apache.log4j.Logger;
import org.bench4q.share.communication.HttpRequester.HttpResponse;
import org.bench4q.share.helper.ExceptionLog;
import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.agent.RunScenarioModel;
@ -35,6 +36,7 @@ import org.bench4q.web.extractObjectFromXml.ObjectXmlExchange;
import org.bench4q.web.model.BaseResponseModel;
import org.bench4q.web.model.ScenarioModel;
import org.bench4q.web.service.BaseService;
import org.bench4q.web.service.CommunicateWithMaster;
import org.bench4q.web.service.ScriptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@ -54,10 +56,21 @@ import com.google.gson.Gson;
@SessionAttributes("accessToken")
public class ScriptActionController {
private CommunicateWithMaster communicateWithMaster;
private final String baseUrl = "RecordScript";
private ScriptService scriptService;
private final String BASECALLER = "ScriptActionController:";
public CommunicateWithMaster getCommunicateWithMaster() {
return communicateWithMaster;
}
@Autowired
public void setCommunicateWithMaster(
CommunicateWithMaster communicateWithMaster) {
this.communicateWithMaster = communicateWithMaster;
}
private String getBaseUrl() {
return baseUrl;
}
@ -281,7 +294,8 @@ public class ScriptActionController {
public BaseResponseModel uploadScript(
@ModelAttribute("accessToken") String accessToken,
@RequestParam("script") CommonsMultipartFile script,
@RequestParam String scriptName) throws CustomGenericException {
@RequestParam String scriptName, List<File> paramFiles)
throws CustomGenericException {
if (script.isEmpty()) {
return new BaseResponseModel(false, "empty file");
}
@ -289,12 +303,16 @@ public class ScriptActionController {
return new BaseResponseModel(false, "empty file name");
try {
String scenarioModel = new String(script.getBytes());
MarshalHelper.unmarshal(RunScenarioModel.class, scenarioModel);
OperateScriptServerResponseModel operateScriptServerResponseModel = this
.getScriptService().uploadScript(accessToken,
scenarioModel, scriptName);
Logger.getLogger(ScriptActionController.class).info(
"script:" + scenarioModel);
RunScenarioModel runScenarioModel = (RunScenarioModel) MarshalHelper
.unmarshal(RunScenarioModel.class, scenarioModel);
HttpResponse httpResponse = this.getCommunicateWithMaster()
.uploadScriptWithParamFiles(accessToken, scriptName,
runScenarioModel, paramFiles);
OperateScriptServerResponseModel operateScriptServerResponseModel = (OperateScriptServerResponseModel) MarshalHelper
.tryUnmarshal(OperateScriptServerResponseModel.class,
httpResponse.getContent());
if (operateScriptServerResponseModel.isSuccess())
return new BaseResponseModel(true, (Object) new String(
"upload script:" + scriptName + " success!"));
@ -378,7 +396,8 @@ public class ScriptActionController {
@ResponseBody
public BaseResponseModel uploadEditScript(
@ModelAttribute("accessToken") String accessToken,
@RequestBody String content) throws CustomGenericException {
@RequestBody String content, List<File> paramFiles)
throws CustomGenericException {
System.out.println("uploadEditScript");
ScenarioModel scenarioModel = null;
Gson gson = new Gson();
@ -396,12 +415,14 @@ public class ScriptActionController {
if (!validateScenarioModel(pageModels, usePluginModels))
return new BaseResponseModel(false, "invalidate script");
try {
String script = ObjectXmlExchange.toXml(RunScenarioModel.class,
ObjectXmlExchange.toXml(RunScenarioModel.class,
runScenarioModel);
OperateScriptServerResponseModel operateScriptServerResponseModel = this
.getScriptService().uploadScript(accessToken, script,
scriptName);
HttpResponse httpResponse = this.getCommunicateWithMaster()
.uploadScriptWithParamFiles(accessToken, scriptName,
runScenarioModel, paramFiles);
OperateScriptServerResponseModel operateScriptServerResponseModel = (OperateScriptServerResponseModel) MarshalHelper
.tryUnmarshal(OperateScriptServerResponseModel.class,
httpResponse.getContent());
if (operateScriptServerResponseModel.isSuccess())
return new BaseResponseModel(true, (Object) new String(
"upload script:" + scriptName + " success!"));

View File

@ -1,226 +1,225 @@
package org.bench4q.web.service;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.xml.bind.JAXBException;
import org.apache.log4j.Logger;
import org.bench4q.share.communication.HttpRequester;
import org.bench4q.share.communication.HttpRequester.HttpResponse;
import org.bench4q.share.helper.ExceptionLog;
import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.ErrorResponseModel;
import org.bench4q.share.models.agent.RunScenarioModel;
import org.bench4q.web.api.BaseControllerService;
import org.bench4q.web.exception.CustomGenericException;
import org.bench4q.web.extractObjectFromXml.ObjectXmlExchange;
import org.eclipse.jetty.http.HttpStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class CommunicateWithMaster {
private Logger logger = Logger.getLogger(CommunicateWithMaster.class);
private HttpRequester httpRequester;
private final String HTTPRSEPONSE_INVALIDATE = " http response is null";
public final String FAIL_WITH_EXCEPTION = "fail with exception from master";
private final String AUTH_HEADER_PROPERTY = "Authorization";
private final String ACCES_TOCKEN_STARTER = "Bearer ";
private final String IOEXCEPTION = "io exception: get httpresponse from master";
private final String JAXBEXCEPTION = "JAXBException exception :get httpresponse from master";
private final String BADHTTPRESPONSE = "bad response";
private static final Properties prop = new Properties();
private static final String CONFIG_FILE_NAME = "ipConfig.properties";
private static String masterAddress = "";
private HttpRequester getHttpRequester() {
return httpRequester;
}
@Autowired
private void setHttpRequester(HttpRequester httpRequester) {
this.httpRequester = httpRequester;
}
public static String getMasterAddress() {
return masterAddress;
}
private String addMaseterAddressToUrl(String url) {
return masterAddress + url;
}
static {
String masterIpFilePath;
try {
masterIpFilePath = BaseControllerService.class.getClassLoader()
.getResource("").toURI().getPath()
+ CONFIG_FILE_NAME;
FileInputStream inputStream = new FileInputStream(new File(
masterIpFilePath));
prop.load(inputStream);
inputStream.close();
masterAddress = prop.getProperty("masterAddress");
} catch (Exception e1) {
masterAddress = "133.133.12.1:7979";
}
}
public HttpResponse uploadScriptWithParamFiles(String accessToken,
String scriptName, RunScenarioModel runScenarioModel,
List<File> paramFiles) {
String url = masterAddress + "RecordScript/uploadScript/" + scriptName;
System.out.println(url);
List<String> stringPart = new LinkedList<String>();
stringPart.add(MarshalHelper.tryMarshal(runScenarioModel));
return this.getHttpRequester().postFiles(
makeAccessTockenMap(accessToken), url, "paramFiles[]",
paramFiles, "scenarioModel", stringPart);
}
public Object getRespnseObjectByPostXml(String accessToken, String url,
Class<?> objectClass, String content, String caller)
throws CustomGenericException {
try {
url = this.addMaseterAddressToUrl(url);
HttpResponse httpResponse = this.getHttpRequester().sendPostXml(
url, content, this.makeAccessTockenMap(accessToken));
if (HttpRequester.isInvalidResponse(httpResponse)) {
logger.info(HTTPRSEPONSE_INVALIDATE);
throw new CustomGenericException("1", HTTPRSEPONSE_INVALIDATE,
caller);
}
if (httpResponse.getCode() == HttpStatus.BAD_REQUEST_400) {
ErrorResponseModel errorResponseModel = (ErrorResponseModel) ObjectXmlExchange
.fromXml(ErrorResponseModel.class,
httpResponse.getContent());
logException(errorResponseModel);
throw new CustomGenericException("2", FAIL_WITH_EXCEPTION + "_"
+ errorResponseModel.getMessage(), caller + "_"
+ errorResponseModel.getResource());
}
if (httpResponse.getCode() != 200) {
logger.info(caller + " get httpResponse code is not 200:");
logger.info(httpResponse.getContent());
throw new CustomGenericException("1", BADHTTPRESPONSE, caller);
}
logger.info(httpResponse.getContent());
Object responseObject = ObjectXmlExchange.fromXml(objectClass,
httpResponse.getContent());
return responseObject;
} catch (IOException e) {
logger.error(ExceptionLog.getStackTrace(e));
throw new CustomGenericException("1", this.IOEXCEPTION, caller);
} catch (JAXBException e) {
logger.error(ExceptionLog.getStackTrace(e));
throw new CustomGenericException("1", this.JAXBEXCEPTION,
"get networks_" + caller);
}
}
public Object getResponseModel(String accessToken, String url,
Class<?> objectClass, Map<String, String> params, String caller)
throws CustomGenericException {
try {
url = this.addMaseterAddressToUrl(url);
HttpResponse httpResponse = this.getHttpRequester().sendGet(url,
params, this.makeAccessTockenMap(accessToken));
if (HttpRequester.isInvalidResponse(httpResponse)) {
logger.info(HTTPRSEPONSE_INVALIDATE);
throw new CustomGenericException("1", HTTPRSEPONSE_INVALIDATE,
caller);
}
if (httpResponse.getCode() == HttpStatus.BAD_REQUEST_400) {
ErrorResponseModel errorResponseModel = (ErrorResponseModel) ObjectXmlExchange
.fromXml(ErrorResponseModel.class,
httpResponse.getContent());
logException(errorResponseModel);
throw new CustomGenericException("2", FAIL_WITH_EXCEPTION + "_"
+ errorResponseModel.getMessage(), caller + "_"
+ errorResponseModel.getResource());
}
if (httpResponse.getCode() != 200) {
logger.info(caller + " get httpResponse code is not 200:");
logger.info(httpResponse.getContent());
throw new CustomGenericException("1", BADHTTPRESPONSE, caller);
}
logger.info("content:" + httpResponse.getContent());
Object responseObject = ObjectXmlExchange.fromXml(objectClass,
httpResponse.getContent());
return responseObject;
} catch (IOException e) {
logger.error(ExceptionLog.getStackTrace(e));
throw new CustomGenericException("1", this.IOEXCEPTION, caller);
} catch (JAXBException e) {
logger.error(ExceptionLog.getStackTrace(e));
throw new CustomGenericException("1", this.JAXBEXCEPTION,
"get networks_" + caller);
}
}
public Object getResponseModelByPut(String accessToken, String url,
String content, Class<?> objectClass, String caller)
throws CustomGenericException {
try {
url = this.addMaseterAddressToUrl(url);
HttpResponse httpResponse = this.getHttpRequester().sendPutXml(url,
content, this.makeAccessTockenMap(accessToken));
if (HttpRequester.isInvalidResponse(httpResponse)) {
throw new CustomGenericException("1", HTTPRSEPONSE_INVALIDATE,
caller);
}
System.out.println(httpResponse.getContent());
if (httpResponse.getCode() == HttpStatus.BAD_REQUEST_400) {
ErrorResponseModel errorResponseModel = (ErrorResponseModel) ObjectXmlExchange
.fromXml(ErrorResponseModel.class,
httpResponse.getContent());
logException(errorResponseModel);
throw new CustomGenericException("2", FAIL_WITH_EXCEPTION + "_"
+ errorResponseModel.getMessage(), caller + "_"
+ errorResponseModel.getResource());
}
if (httpResponse.getCode() != 200) {
logger.info(caller + " get httpResponse code is not 200:");
logger.info(httpResponse.getContent());
throw new CustomGenericException("1", BADHTTPRESPONSE, caller);
}
Object responseObject = ObjectXmlExchange.fromXml(objectClass,
httpResponse.getContent());
return responseObject;
} catch (IOException e) {
logger.error(e, e.fillInStackTrace());
throw new CustomGenericException("1", this.IOEXCEPTION, caller);
} catch (JAXBException e) {
logger.error(e, e.fillInStackTrace());
throw new CustomGenericException("1", this.JAXBEXCEPTION,
"get networks_" + caller);
}
}
private Map<String, String> makeAccessTockenMap(String accessToken) {
Map<String, String> properties = new HashMap<String, String>();
properties
.put(AUTH_HEADER_PROPERTY, ACCES_TOCKEN_STARTER + accessToken);
return properties;
}
public void logException(ErrorResponseModel errorResponseModel) {
logger.info(FAIL_WITH_EXCEPTION);
logger.info("Exception code:" + errorResponseModel.getCode());
logger.info("Exception message:" + errorResponseModel.getMessage());
logger.info("Exception resource:" + errorResponseModel.getResource());
}
}
package org.bench4q.web.service;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.xml.bind.JAXBException;
import org.apache.log4j.Logger;
import org.bench4q.share.communication.HttpRequester;
import org.bench4q.share.communication.HttpRequester.HttpResponse;
import org.bench4q.share.helper.ExceptionLog;
import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.ErrorResponseModel;
import org.bench4q.share.models.agent.RunScenarioModel;
import org.bench4q.web.api.BaseControllerService;
import org.bench4q.web.exception.CustomGenericException;
import org.bench4q.web.extractObjectFromXml.ObjectXmlExchange;
import org.eclipse.jetty.http.HttpStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class CommunicateWithMaster {
private Logger logger = Logger.getLogger(CommunicateWithMaster.class);
private HttpRequester httpRequester;
private final String HTTPRSEPONSE_INVALIDATE = " http response is null";
public final String FAIL_WITH_EXCEPTION = "fail with exception from master";
private final String AUTH_HEADER_PROPERTY = "Authorization";
private final String ACCES_TOCKEN_STARTER = "Bearer ";
private final String IOEXCEPTION = "io exception: get httpresponse from master";
private final String JAXBEXCEPTION = "JAXBException exception :get httpresponse from master";
private final String BADHTTPRESPONSE = "bad response";
private static final Properties prop = new Properties();
private static final String CONFIG_FILE_NAME = "ipConfig.properties";
private static String masterAddress = "";
private HttpRequester getHttpRequester() {
return httpRequester;
}
@Autowired
private void setHttpRequester(HttpRequester httpRequester) {
this.httpRequester = httpRequester;
}
public static String getMasterAddress() {
return masterAddress;
}
private String addMaseterAddressToUrl(String url) {
return masterAddress + url;
}
static {
String masterIpFilePath;
try {
masterIpFilePath = BaseControllerService.class.getClassLoader()
.getResource("").toURI().getPath()
+ CONFIG_FILE_NAME;
FileInputStream inputStream = new FileInputStream(new File(
masterIpFilePath));
prop.load(inputStream);
inputStream.close();
masterAddress = prop.getProperty("masterAddress");
} catch (Exception e1) {
masterAddress = "133.133.12.1:7979";
}
}
public HttpResponse uploadScriptWithParamFiles(String accessToken,
String scriptName, RunScenarioModel runScenarioModel,
List<File> paramFiles) {
String url = masterAddress + "RecordScript/uploadScript/" + scriptName;
List<String> stringPart = new LinkedList<String>();
stringPart.add(MarshalHelper.tryMarshal(runScenarioModel));
return this.getHttpRequester().postFiles(
makeAccessTockenMap(accessToken), url, "paramFiles[]",
paramFiles, "scenarioModel", stringPart);
}
public Object getRespnseObjectByPostXml(String accessToken, String url,
Class<?> objectClass, String content, String caller)
throws CustomGenericException {
try {
url = this.addMaseterAddressToUrl(url);
HttpResponse httpResponse = this.getHttpRequester().sendPostXml(
url, content, this.makeAccessTockenMap(accessToken));
if (HttpRequester.isInvalidResponse(httpResponse)) {
logger.info(HTTPRSEPONSE_INVALIDATE);
throw new CustomGenericException("1", HTTPRSEPONSE_INVALIDATE,
caller);
}
if (httpResponse.getCode() == HttpStatus.BAD_REQUEST_400) {
ErrorResponseModel errorResponseModel = (ErrorResponseModel) ObjectXmlExchange
.fromXml(ErrorResponseModel.class,
httpResponse.getContent());
logException(errorResponseModel);
throw new CustomGenericException("2", FAIL_WITH_EXCEPTION + "_"
+ errorResponseModel.getMessage(), caller + "_"
+ errorResponseModel.getResource());
}
if (httpResponse.getCode() != 200) {
logger.info(caller + " get httpResponse code is not 200:");
logger.info(httpResponse.getContent());
throw new CustomGenericException("1", BADHTTPRESPONSE, caller);
}
logger.info(httpResponse.getContent());
Object responseObject = ObjectXmlExchange.fromXml(objectClass,
httpResponse.getContent());
return responseObject;
} catch (IOException e) {
logger.error(ExceptionLog.getStackTrace(e));
throw new CustomGenericException("1", this.IOEXCEPTION, caller);
} catch (JAXBException e) {
logger.error(ExceptionLog.getStackTrace(e));
throw new CustomGenericException("1", this.JAXBEXCEPTION,
"get networks_" + caller);
}
}
public Object getResponseModel(String accessToken, String url,
Class<?> objectClass, Map<String, String> params, String caller)
throws CustomGenericException {
try {
url = this.addMaseterAddressToUrl(url);
HttpResponse httpResponse = this.getHttpRequester().sendGet(url,
params, this.makeAccessTockenMap(accessToken));
if (HttpRequester.isInvalidResponse(httpResponse)) {
logger.info(HTTPRSEPONSE_INVALIDATE);
throw new CustomGenericException("1", HTTPRSEPONSE_INVALIDATE,
caller);
}
if (httpResponse.getCode() == HttpStatus.BAD_REQUEST_400) {
ErrorResponseModel errorResponseModel = (ErrorResponseModel) ObjectXmlExchange
.fromXml(ErrorResponseModel.class,
httpResponse.getContent());
logException(errorResponseModel);
throw new CustomGenericException("2", FAIL_WITH_EXCEPTION + "_"
+ errorResponseModel.getMessage(), caller + "_"
+ errorResponseModel.getResource());
}
if (httpResponse.getCode() != 200) {
logger.info(caller + " get httpResponse code is not 200:");
logger.info(httpResponse.getContent());
throw new CustomGenericException("1", BADHTTPRESPONSE, caller);
}
logger.info("content:" + httpResponse.getContent());
Object responseObject = ObjectXmlExchange.fromXml(objectClass,
httpResponse.getContent());
return responseObject;
} catch (IOException e) {
logger.error(ExceptionLog.getStackTrace(e));
throw new CustomGenericException("1", this.IOEXCEPTION, caller);
} catch (JAXBException e) {
logger.error(ExceptionLog.getStackTrace(e));
throw new CustomGenericException("1", this.JAXBEXCEPTION,
"get networks_" + caller);
}
}
public Object getResponseModelByPut(String accessToken, String url,
String content, Class<?> objectClass, String caller)
throws CustomGenericException {
try {
url = this.addMaseterAddressToUrl(url);
HttpResponse httpResponse = this.getHttpRequester().sendPutXml(url,
content, this.makeAccessTockenMap(accessToken));
if (HttpRequester.isInvalidResponse(httpResponse)) {
throw new CustomGenericException("1", HTTPRSEPONSE_INVALIDATE,
caller);
}
System.out.println(httpResponse.getContent());
if (httpResponse.getCode() == HttpStatus.BAD_REQUEST_400) {
ErrorResponseModel errorResponseModel = (ErrorResponseModel) ObjectXmlExchange
.fromXml(ErrorResponseModel.class,
httpResponse.getContent());
logException(errorResponseModel);
throw new CustomGenericException("2", FAIL_WITH_EXCEPTION + "_"
+ errorResponseModel.getMessage(), caller + "_"
+ errorResponseModel.getResource());
}
if (httpResponse.getCode() != 200) {
logger.info(caller + " get httpResponse code is not 200:");
logger.info(httpResponse.getContent());
throw new CustomGenericException("1", BADHTTPRESPONSE, caller);
}
Object responseObject = ObjectXmlExchange.fromXml(objectClass,
httpResponse.getContent());
return responseObject;
} catch (IOException e) {
logger.error(e, e.fillInStackTrace());
throw new CustomGenericException("1", this.IOEXCEPTION, caller);
} catch (JAXBException e) {
logger.error(e, e.fillInStackTrace());
throw new CustomGenericException("1", this.JAXBEXCEPTION,
"get networks_" + caller);
}
}
private Map<String, String> makeAccessTockenMap(String accessToken) {
Map<String, String> properties = new HashMap<String, String>();
properties
.put(AUTH_HEADER_PROPERTY, ACCES_TOCKEN_STARTER + accessToken);
return properties;
}
public void logException(ErrorResponseModel errorResponseModel) {
logger.info(FAIL_WITH_EXCEPTION);
logger.info("Exception code:" + errorResponseModel.getCode());
logger.info("Exception message:" + errorResponseModel.getMessage());
logger.info("Exception resource:" + errorResponseModel.getResource());
}
}

View File

@ -1,311 +1,312 @@
package org.bench4q.web.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.JAXBException;
import org.bench4q.share.models.agent.ParameterModel;
import org.bench4q.share.models.agent.RunScenarioModel;
import org.bench4q.share.models.agent.scriptrecord.BatchModel;
import org.bench4q.share.models.agent.scriptrecord.BehaviorModel;
import org.bench4q.share.models.agent.scriptrecord.PageModel;
import org.bench4q.share.models.agent.scriptrecord.UsePluginModel;
import org.bench4q.share.models.master.OperateScriptServerResponseModel;
import org.bench4q.share.models.master.ScriptModel;
import org.bench4q.web.exception.CustomGenericException;
import org.bench4q.web.extractObjectFromXml.ObjectXmlExchange;
import org.bench4q.web.model.NameAndIdMap;
import org.springframework.stereotype.Component;
@Component
public class ScriptService extends BaseService {
private String baseUrl = "RecordScript";
public String getBaseUrl() {
return baseUrl;
}
public void setBaseUrl(String baseUrl) {
this.baseUrl = baseUrl;
}
public ScriptModel queryScriptById(int id, String accessToken)
throws CustomGenericException {
// check script id and return throw exception
String caller = "ScriptService:queryScript";
OperateScriptServerResponseModel operateScriptServerResponseModel = (OperateScriptServerResponseModel) this
.getCommunicateWithMaster().getResponseModel(accessToken,
this.getBaseUrl() + "/queryScriptById",
OperateScriptServerResponseModel.class,
makeParamsMap("scriptId", String.valueOf(id)), caller);
if (operateScriptServerResponseModel.isSuccess())
return operateScriptServerResponseModel.getScriptModels().get(0);
else
throw new CustomGenericException("5", "query script failed", caller
+ ":" + id);
}
public ScriptModel queryScriptByName(String scriptName, String accessToken)
throws CustomGenericException {
OperateScriptServerResponseModel operateScriptServerResponseModel = (OperateScriptServerResponseModel) this
.getCommunicateWithMaster().getResponseModel(accessToken,
this.getBaseUrl() + "/queryScriptByName",
OperateScriptServerResponseModel.class,
makeParamsMap("name", scriptName), "");
if (operateScriptServerResponseModel.isSuccess())
return operateScriptServerResponseModel.getScriptModels().get(0);
else
throw new CustomGenericException("5", "query script failed", ""
+ ":" + scriptName);
}
public List<ScriptModel> queryScripts(List<Integer> scriptIds,
String accessToken) throws CustomGenericException {
String caller = "ScriptService:queryScript";
List<ScriptModel> scriptModels = new ArrayList<ScriptModel>();
for (Integer scriptId : scriptIds) {
OperateScriptServerResponseModel operateScriptServerResponseModel = (OperateScriptServerResponseModel) this
.getCommunicateWithMaster()
.getResponseModel(
accessToken,
this.getBaseUrl() + "/queryScriptById",
OperateScriptServerResponseModel.class,
makeParamsMap("scriptId", String.valueOf(scriptId)),
caller);
if (operateScriptServerResponseModel.isSuccess())
scriptModels.add(operateScriptServerResponseModel
.getScriptModels().get(0));
else
throw new CustomGenericException("5", "query script failed",
caller + ":" + scriptId);
}
return scriptModels;
}
public Map<String, Integer> getScriptNameIdMap(
List<ScriptModel> scriptModels) throws CustomGenericException {
Map<String, Integer> map = new HashMap<String, Integer>();
for (ScriptModel scriptModel : scriptModels) {
map.put(scriptModel.getName(), scriptModel.getId());
}
return map;
}
public List<NameAndIdMap> getScriptIdNameMap(List<ScriptModel> scriptModels)
throws CustomGenericException {
List<NameAndIdMap> nameAndIdMaps = new ArrayList<NameAndIdMap>();
for (ScriptModel scriptModel : scriptModels) {
NameAndIdMap nameAndIdMap = new NameAndIdMap(scriptModel.getId(),
scriptModel.getName());
nameAndIdMaps.add(nameAndIdMap);
}
return nameAndIdMaps;
}
public Map<String, Integer> getPageNameAndIdMap(
List<ScriptModel> scriptModels) throws JAXBException {
try {
Map<String, Integer> map = new HashMap<String, Integer>();
for (ScriptModel scriptModel : scriptModels) {
Map<String, Integer> pageMap = getPageNameAndIdMap((RunScenarioModel) ObjectXmlExchange
.fromXml(RunScenarioModel.class,
scriptModel.getScriptContent()));
if (pageMap != null)
map.putAll(pageMap);
}
return map;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
private Map<String, Integer> getPageNameAndIdMap(
RunScenarioModel runScenarioModel) {
List<PageModel> pageModels = runScenarioModel.getPages();
try {
Map<String, Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < pageModels.size(); i++) {
map.put("page_" + i, i);
}
return map;
} catch (NullPointerException e) {
return null;
}
}
public Map<String, Integer> getBehaviorNameAndIdMap(
List<ScriptModel> scriptModels) throws JAXBException {
try {
Map<String, Integer> map = new HashMap<String, Integer>();
for (ScriptModel scriptModel : scriptModels) {
Map<String, Integer> behaviorMap = getBehaviorNameAndIdMap((RunScenarioModel) ObjectXmlExchange
.fromXml(RunScenarioModel.class,
scriptModel.getScriptContent()));
if (behaviorMap != null)
map.putAll(behaviorMap);
}
return map;
} catch (NullPointerException e) {
return null;
}
}
public List<String> getScriptPages(RunScenarioModel runScenarioModel) {
try {
List<String> scriptPages = new ArrayList<String>();
for (int i = 1; i < scriptPages.size(); i++) {
scriptPages.add("page_" + i);
}
return scriptPages;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
public List<String> getScriptBehaviorUrl(RunScenarioModel runScenarioModel) {
List<BehaviorModel> behaviorModelsWithUrl = getBehaviorModelsHasUrl(runScenarioModel);
if (behaviorModelsWithUrl == null)
return null;
List<String> urList = new ArrayList<String>();
for (BehaviorModel behaviorModelWithUrl : behaviorModelsWithUrl) {
String url = generateUrl(behaviorModelWithUrl.getParameters());
urList.add(url);
}
return urList;
}
public Map<String, Integer> getBehaviorNameAndIdMap(
RunScenarioModel runScenarioModel) {
try {
Map<String, Integer> map = new HashMap<String, Integer>();
List<BehaviorModel> behaviorModels = this
.getBehaviorModelsHasUrl(runScenarioModel);
if (behaviorModels == null)
return null;
for (BehaviorModel behaviorModel : behaviorModels) {
String url = this.generateUrl(behaviorModel.getParameters());
if (url != null)
map.put(url, behaviorModel.getId());
}
return map;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
private String generateUrl(List<ParameterModel> parameterModels) {
String url = new String("");
int i = 0;
for (ParameterModel parameterModel : parameterModels) {
if (i == 1 && parameterModel.getValue() != null)
url += "?" + parameterModel.getValue();
if (i > 1 && parameterModel.getValue() != null)
url += "&" + parameterModel.getValue();
i++;
}
if (url.length() <= 0)
return null;
return url;
}
private List<BehaviorModel> getBehaviorModelsHasUrl(
RunScenarioModel runScenarioModel) {
try {
List<BehaviorModel> behaviorModels = getBehaviorModels(runScenarioModel);
if (behaviorModels == null)
return null;
List<BehaviorModel> behaviorModelsWithUrl = new ArrayList<BehaviorModel>();
for (BehaviorModel behaviorModel : behaviorModels) {
List<ParameterModel> parameterModels = new ArrayList<ParameterModel>();
parameterModels.addAll(behaviorModel.getParameters());
for (ParameterModel parameterModel : parameterModels) {
if (parameterModel.getKey().equals("url"))
behaviorModelsWithUrl.add(behaviorModel);
break;
}
}
return behaviorModelsWithUrl;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
private List<BehaviorModel> getBehaviorModels(
RunScenarioModel runScenarioModel) {
try {
List<BatchModel> batchModels = new ArrayList<BatchModel>();
for (PageModel pageModel : runScenarioModel.getPages())
batchModels.addAll(pageModel.getBatches());
List<BehaviorModel> behaviorModels = new ArrayList<BehaviorModel>();
for (BatchModel batchModel : batchModels)
behaviorModels.addAll(batchModel.getBehaviors());
return behaviorModels;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
public RunScenarioModel createRunScenarioModel(
List<BehaviorModel> behaviorModels,
List<UsePluginModel> usedPluginModels) {
RunScenarioModel runScenarioModel = new RunScenarioModel();
runScenarioModel
.setPages(createPageModelsWithBehaviorList(behaviorModels));
runScenarioModel.setUsePlugins(usedPluginModels);
return runScenarioModel;
}
private List<PageModel> createPageModelsWithBehaviorList(
List<BehaviorModel> behaviorModels) {
List<PageModel> pageModels = new ArrayList<PageModel>();
for (BehaviorModel behaviorModel : behaviorModels) {
pageModels.add(createPageModelWithOneBehaviorModel(behaviorModel));
}
return pageModels;
}
private PageModel createPageModelWithOneBehaviorModel(
BehaviorModel behaviorModel) {
PageModel pageModel = new PageModel();
pageModel.setBatches(new ArrayList<BatchModel>());
pageModel.getBatches().add(
createBatchModelWithOneBehavior(behaviorModel));
return pageModel;
}
private BatchModel createBatchModelWithOneBehavior(
BehaviorModel behaviorModel) {
BatchModel batchModel = new BatchModel();
batchModel.setBehaviors(new ArrayList<BehaviorModel>());
batchModel.getBehaviors().add(behaviorModel);
batchModel.setChildId(-1);
batchModel.setParentId(-1);
batchModel.setId(behaviorModel.getId());
return batchModel;
}
public OperateScriptServerResponseModel uploadScript(String accessToken,
String scenarioModel, String scriptName)
throws CustomGenericException {
String url = "RecordScript" + "/uploadScript" + "/" + scriptName;
return (OperateScriptServerResponseModel) getCommunicateWithMaster()
.getResponseModelByPut(accessToken, url, scenarioModel,
OperateScriptServerResponseModel.class, "upload script");
}
}
package org.bench4q.web.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.JAXBException;
import org.bench4q.share.models.agent.ParameterModel;
import org.bench4q.share.models.agent.RunScenarioModel;
import org.bench4q.share.models.agent.scriptrecord.BatchModel;
import org.bench4q.share.models.agent.scriptrecord.BehaviorModel;
import org.bench4q.share.models.agent.scriptrecord.PageModel;
import org.bench4q.share.models.agent.scriptrecord.UsePluginModel;
import org.bench4q.share.models.master.OperateScriptServerResponseModel;
import org.bench4q.share.models.master.ScriptModel;
import org.bench4q.web.exception.CustomGenericException;
import org.bench4q.web.extractObjectFromXml.ObjectXmlExchange;
import org.bench4q.web.model.NameAndIdMap;
import org.springframework.stereotype.Component;
@Component
public class ScriptService extends BaseService {
private String baseUrl = "RecordScript";
public String getBaseUrl() {
return baseUrl;
}
public void setBaseUrl(String baseUrl) {
this.baseUrl = baseUrl;
}
public ScriptModel queryScriptById(int id, String accessToken)
throws CustomGenericException {
// check script id and return throw exception
String caller = "ScriptService:queryScript";
OperateScriptServerResponseModel operateScriptServerResponseModel = (OperateScriptServerResponseModel) this
.getCommunicateWithMaster().getResponseModel(accessToken,
this.getBaseUrl() + "/queryScriptById",
OperateScriptServerResponseModel.class,
makeParamsMap("scriptId", String.valueOf(id)), caller);
if (operateScriptServerResponseModel.isSuccess())
return operateScriptServerResponseModel.getScriptModels().get(0);
else
throw new CustomGenericException("5", "query script failed", caller
+ ":" + id);
}
public ScriptModel queryScriptByName(String scriptName, String accessToken)
throws CustomGenericException {
OperateScriptServerResponseModel operateScriptServerResponseModel = (OperateScriptServerResponseModel) this
.getCommunicateWithMaster().getResponseModel(accessToken,
this.getBaseUrl() + "/queryScriptByName",
OperateScriptServerResponseModel.class,
makeParamsMap("name", scriptName), "");
if (operateScriptServerResponseModel.isSuccess())
return operateScriptServerResponseModel.getScriptModels().get(0);
else
throw new CustomGenericException("5", "query script failed", ""
+ ":" + scriptName);
}
public List<ScriptModel> queryScripts(List<Integer> scriptIds,
String accessToken) throws CustomGenericException {
String caller = "ScriptService:queryScript";
List<ScriptModel> scriptModels = new ArrayList<ScriptModel>();
for (Integer scriptId : scriptIds) {
OperateScriptServerResponseModel operateScriptServerResponseModel = (OperateScriptServerResponseModel) this
.getCommunicateWithMaster()
.getResponseModel(
accessToken,
this.getBaseUrl() + "/queryScriptById",
OperateScriptServerResponseModel.class,
makeParamsMap("scriptId", String.valueOf(scriptId)),
caller);
if (operateScriptServerResponseModel.isSuccess())
scriptModels.add(operateScriptServerResponseModel
.getScriptModels().get(0));
else
throw new CustomGenericException("5", "query script failed",
caller + ":" + scriptId);
}
return scriptModels;
}
public Map<String, Integer> getScriptNameIdMap(
List<ScriptModel> scriptModels) throws CustomGenericException {
Map<String, Integer> map = new HashMap<String, Integer>();
for (ScriptModel scriptModel : scriptModels) {
map.put(scriptModel.getName(), scriptModel.getId());
}
return map;
}
public List<NameAndIdMap> getScriptIdNameMap(List<ScriptModel> scriptModels)
throws CustomGenericException {
List<NameAndIdMap> nameAndIdMaps = new ArrayList<NameAndIdMap>();
for (ScriptModel scriptModel : scriptModels) {
NameAndIdMap nameAndIdMap = new NameAndIdMap(scriptModel.getId(),
scriptModel.getName());
nameAndIdMaps.add(nameAndIdMap);
}
return nameAndIdMaps;
}
public Map<String, Integer> getPageNameAndIdMap(
List<ScriptModel> scriptModels) throws JAXBException {
try {
Map<String, Integer> map = new HashMap<String, Integer>();
for (ScriptModel scriptModel : scriptModels) {
Map<String, Integer> pageMap = getPageNameAndIdMap((RunScenarioModel) ObjectXmlExchange
.fromXml(RunScenarioModel.class,
scriptModel.getScriptContent()));
if (pageMap != null)
map.putAll(pageMap);
}
return map;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
private Map<String, Integer> getPageNameAndIdMap(
RunScenarioModel runScenarioModel) {
List<PageModel> pageModels = runScenarioModel.getPages();
try {
Map<String, Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < pageModels.size(); i++) {
map.put("page_" + i, i);
}
return map;
} catch (NullPointerException e) {
return null;
}
}
public Map<String, Integer> getBehaviorNameAndIdMap(
List<ScriptModel> scriptModels) throws JAXBException {
try {
Map<String, Integer> map = new HashMap<String, Integer>();
for (ScriptModel scriptModel : scriptModels) {
Map<String, Integer> behaviorMap = getBehaviorNameAndIdMap((RunScenarioModel) ObjectXmlExchange
.fromXml(RunScenarioModel.class,
scriptModel.getScriptContent()));
if (behaviorMap != null)
map.putAll(behaviorMap);
}
return map;
} catch (NullPointerException e) {
return null;
}
}
public List<String> getScriptPages(RunScenarioModel runScenarioModel) {
try {
List<String> scriptPages = new ArrayList<String>();
for (int i = 1; i < scriptPages.size(); i++) {
scriptPages.add("page_" + i);
}
return scriptPages;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
public List<String> getScriptBehaviorUrl(RunScenarioModel runScenarioModel) {
List<BehaviorModel> behaviorModelsWithUrl = getBehaviorModelsHasUrl(runScenarioModel);
if (behaviorModelsWithUrl == null)
return null;
List<String> urList = new ArrayList<String>();
for (BehaviorModel behaviorModelWithUrl : behaviorModelsWithUrl) {
String url = generateUrl(behaviorModelWithUrl.getParameters());
urList.add(url);
}
return urList;
}
public Map<String, Integer> getBehaviorNameAndIdMap(
RunScenarioModel runScenarioModel) {
try {
Map<String, Integer> map = new HashMap<String, Integer>();
List<BehaviorModel> behaviorModels = this
.getBehaviorModelsHasUrl(runScenarioModel);
if (behaviorModels == null)
return null;
for (BehaviorModel behaviorModel : behaviorModels) {
String url = this.generateUrl(behaviorModel.getParameters());
if (url != null)
map.put(url, behaviorModel.getId());
}
return map;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
private String generateUrl(List<ParameterModel> parameterModels) {
String url = new String("");
int i = 0;
for (ParameterModel parameterModel : parameterModels) {
if (i == 1 && parameterModel.getValue() != null)
url += "?" + parameterModel.getValue();
if (i > 1 && parameterModel.getValue() != null)
url += "&" + parameterModel.getValue();
i++;
}
if (url.length() <= 0)
return null;
return url;
}
private List<BehaviorModel> getBehaviorModelsHasUrl(
RunScenarioModel runScenarioModel) {
try {
List<BehaviorModel> behaviorModels = getBehaviorModels(runScenarioModel);
if (behaviorModels == null)
return null;
List<BehaviorModel> behaviorModelsWithUrl = new ArrayList<BehaviorModel>();
for (BehaviorModel behaviorModel : behaviorModels) {
List<ParameterModel> parameterModels = new ArrayList<ParameterModel>();
parameterModels.addAll(behaviorModel.getParameters());
for (ParameterModel parameterModel : parameterModels) {
if (parameterModel.getKey().equals("url"))
behaviorModelsWithUrl.add(behaviorModel);
break;
}
}
return behaviorModelsWithUrl;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
private List<BehaviorModel> getBehaviorModels(
RunScenarioModel runScenarioModel) {
try {
List<BatchModel> batchModels = new ArrayList<BatchModel>();
for (PageModel pageModel : runScenarioModel.getPages())
batchModels.addAll(pageModel.getBatches());
List<BehaviorModel> behaviorModels = new ArrayList<BehaviorModel>();
for (BatchModel batchModel : batchModels)
behaviorModels.addAll(batchModel.getBehaviors());
return behaviorModels;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
public RunScenarioModel createRunScenarioModel(
List<BehaviorModel> behaviorModels,
List<UsePluginModel> usedPluginModels) {
RunScenarioModel runScenarioModel = new RunScenarioModel();
runScenarioModel
.setPages(createPageModelsWithBehaviorList(behaviorModels));
runScenarioModel.setUsePlugins(usedPluginModels);
return runScenarioModel;
}
private List<PageModel> createPageModelsWithBehaviorList(
List<BehaviorModel> behaviorModels) {
List<PageModel> pageModels = new ArrayList<PageModel>();
for (BehaviorModel behaviorModel : behaviorModels) {
pageModels.add(createPageModelWithOneBehaviorModel(behaviorModel));
}
return pageModels;
}
private PageModel createPageModelWithOneBehaviorModel(
BehaviorModel behaviorModel) {
PageModel pageModel = new PageModel();
pageModel.setBatches(new ArrayList<BatchModel>());
pageModel.getBatches().add(
createBatchModelWithOneBehavior(behaviorModel));
return pageModel;
}
private BatchModel createBatchModelWithOneBehavior(
BehaviorModel behaviorModel) {
BatchModel batchModel = new BatchModel();
batchModel.setBehaviors(new ArrayList<BehaviorModel>());
batchModel.getBehaviors().add(behaviorModel);
batchModel.setChildId(-1);
batchModel.setParentId(-1);
batchModel.setId(behaviorModel.getId());
return batchModel;
}
public OperateScriptServerResponseModel uploadScript(String accessToken,
String scenarioModel, String scriptName)
throws CustomGenericException {
String url = "RecordScript" + "/uploadScript" + "/" + scriptName;
return (OperateScriptServerResponseModel) getCommunicateWithMaster()
.getResponseModelByPut(accessToken, url, scenarioModel,
OperateScriptServerResponseModel.class, "upload script");
}
}

View File

@ -76,19 +76,19 @@
<div class="submitDiv">
<button type="submit" class="btn btn-large btn-primary"
onClick="javascript:password_validation(0);return false;return false)">
onClick="javascript:password_validation(0);return false;return fals)">
<fmt:message key="register_jsp_register" />
</button>
</div>
<div class="submitDiv">
<button type="submit" class="btn btn-large btn-primary"
onClick="javascript:password_validation(1);return false)">
onClick="javascript:password_validation(1);return false">
<fmt:message key="register_jsp_admin" />
</button>
</div>
<div class="submitDiv">
<button type="submit" class="btn btn-large btn-primary"
onClick="javascript:clean();return false;return false)">
onClick="javascript:clean();return false">
<fmt:message key="register_jsp_clear" />
</button>
</div>

View File

@ -29,7 +29,6 @@ function clean() {
document.getElementsByName('retype_pwd')[0].value = "";
}
function register(scope) {
alert(scope)
var userName = $('#username').val();
var password = $('#password').val();
var rePassword = $("#retype_pwd").val();