use of org.cerberus.engine.entity.ExecutionUUID in project cerberus-source by cerberustesting.
the class RunTestCase method doGet.
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
// Calling Servlet Transversal Util.
ServletUtil.servletStart(request);
/**
* Adding Log entry.
*/
ILogEventService logEventService = appContext.getBean(ILogEventService.class);
logEventService.createForPublicCalls("/RunTestCase", "CALL", "RunTestCase called : " + request.getRequestURL(), request);
// Tool
// Selenium IP
String ss_ip = "";
// Selenium Host (optional)
String ss_ip_user = "";
// Selenium Password (optional)
String ss_ip_pass = "";
// Selenium Port
String ss_p = "";
String browser = "";
String robotDecli = "";
String version = "";
String platform = "";
String robot = "";
String active = "";
String timeout = "";
String userAgent = "";
String screenSize = "";
boolean synchroneous = true;
int getPageSource = 0;
int getSeleniumLog = 0;
String manualExecution = "N";
List<RobotCapability> capabilities = null;
// Test
String test = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Test"), "");
String testCase = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("TestCase"), "");
String country = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Country"), "");
String environment = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Environment"), "");
// Test Dev Environment
boolean manualURL = ParameterParserUtil.parseBooleanParam(request.getParameter("manualURL"), false);
String myHost = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("myhost"), "");
String myContextRoot = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("mycontextroot"), "");
String myLoginRelativeURL = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("myloginrelativeurl"), "");
// TODO find another solution
myLoginRelativeURL = myLoginRelativeURL.replace("=", "=");
String myEnvData = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("myenvdata"), "");
// Execution
String tag = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Tag"), "");
String outputFormat = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("outputformat"), "compact");
int screenshot = ParameterParserUtil.parseIntegerParam(request.getParameter("screenshot"), 1);
int verbose = ParameterParserUtil.parseIntegerParam(request.getParameter("verbose"), 0);
timeout = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("timeout"), "");
synchroneous = ParameterParserUtil.parseBooleanParam(request.getParameter("synchroneous"), false);
getPageSource = ParameterParserUtil.parseIntegerParam(request.getParameter("pageSource"), 1);
getSeleniumLog = ParameterParserUtil.parseIntegerParam(request.getParameter("seleniumLog"), 1);
manualExecution = ParameterParserUtil.parseStringParam(request.getParameter("manualExecution"), "N");
int numberOfRetries = ParameterParserUtil.parseIntegerParam(request.getParameter("retries"), 0);
screenSize = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("screenSize"), "");
robot = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("robot"), "");
ss_ip = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("ss_ip"), "");
ss_p = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("ss_p"), "");
browser = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Browser"), ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("browser"), ""));
version = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("version"), "");
platform = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("platform"), "");
// hidden parameters.
long idFromQueue = ParameterParserUtil.parseIntegerParam(request.getParameter("IdFromQueue"), 0);
String executor = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("executor"), ParameterParserUtil.parseStringParamAndSanitize(request.getRemoteUser(), null));
String helpMessage = "\nThis servlet is used to start the execution of a test case.\n" + "Parameter list :\n" + "- Test [mandatory] : Test to execute. [" + test + "]\n" + "- TestCase [mandatory] : Test Case reference to execute. [" + testCase + "]\n" + "- Country [mandatory] : Country where the test case will execute. [" + country + "]\n" + "- Environment : Environment where the test case will execute. This parameter is mandatory only if manualURL is not set to Y. [" + environment + "]\n" + "- robot : robot name on which the test will be executed. [" + robot + "]\n" + "- ss_ip : Host of the Robot where the test will be executed. (Can be overwriten if robot is defined) [" + ss_ip + "]\n" + "- ss_p : Port of the Robot. (Can be overwriten if robot is defined) [" + ss_p + "]\n" + "- browser : Browser to use for the execution. (Can be overwriten if robot is defined) [" + browser + "]\n" + "- version : Version to use for the execution. (Can be overwriten if robot is defined) [" + version + "]\n" + "- platform : Platform to use for the execution. (Can be overwriten if robot is defined) [" + platform + "]\n" + "- screenSize : Size of the screen to set for the execution. [" + screenSize + "]\n" + "- manualURL : Activate or not the Manual URL of the application to execute. If activated the 4 parameters after (myhost, mycontextroot, myloginrelativeurl, myenvdata) are necessary. [" + manualURL + "]\n" + "- myhost : Host of the application to test (only used when manualURL is feed). [" + myHost + "]\n" + "- mycontextroot : Context root of the application to test (only used when manualURL is feed). [" + myContextRoot + "]\n" + "- myloginrelativeurl : Relative login URL of the application (only used when manualURL is feed). [" + myLoginRelativeURL + "]\n" + "- myenvdata : Environment where to get the test data when a manualURL is defined. (only used when manualURL is feed) [" + myEnvData + "]\n" + "- Tag : Tag that will be stored on the execution. [" + tag + "]\n" + "- outputformat : Format of the output of the execution. [" + outputFormat + "]\n" + "- screenshot : Activate or not the screenshots. [" + screenshot + "]\n" + "- verbose : Verbose level of the execution. [" + verbose + "]\n" + "- timeout : Timeout used for the action. If empty, the default value will be the one configured in parameter table. [" + timeout + "]\n" + "- synchroneous : Synchroneous define if the servlet wait for the end of the execution to report its execution. [" + synchroneous + "\n" + "- pageSource : Record Page Source during the execution. [" + getPageSource + "]\n" + "- seleniumLog : Get the SeleniumLog at the end of the execution. [" + getSeleniumLog + "]\n" + "- manualExecution : Execute testcase in manual mode. [" + manualExecution + "]\n" + "- retries : Number of tries if the result is not OK. [" + numberOfRetries + "]\n";
boolean error = false;
String errorMessage = "";
// test, testcase and country parameters are mandatory
if (StringUtils.isBlank(test)) {
errorMessage += "Error - Parameter test is mandatory. ";
error = true;
}
if (StringUtils.isBlank(testCase)) {
errorMessage += "Error - Parameter testCase is mandatory. ";
error = true;
}
if (!StringUtils.isBlank(tag) && tag.length() > 255) {
errorMessage += "Error - Parameter tag value is too big. Tag cannot be larger than 255 Characters. Currently has : " + tag.length();
error = true;
}
if (StringUtils.isBlank(country)) {
errorMessage += "Error - Parameter country is mandatory. ";
error = true;
}
// environment is mandatory when manualURL is not activated.
if (StringUtils.isBlank(environment) && !manualURL) {
errorMessage += "Error - Parameter environment is mandatory (or use the manualURL parameter). ";
error = true;
}
// We check that execution is not desactivated by cerberus_automaticexecution_enable parameter.
IParameterService parameterService = appContext.getBean(IParameterService.class);
if (!(parameterService.getParameterBooleanByKey("cerberus_automaticexecution_enable", "", true))) {
errorMessage += "Error - Execution disable by configuration (cerberus_automaticexecution_enable <> Y). ";
error = true;
LOG.info("Execution request ignored by cerberus_automaticexecution_enable parameter. " + test + " / " + testCase);
}
// If Robot is feeded, we check it exist. If it exist, we overwrite the associated parameters.
if (!StringUtil.isNullOrEmpty(robot)) {
IRobotService robotService = appContext.getBean(IRobotService.class);
try {
Robot robObj = robotService.readByKey(robot);
// If Robot parameter is defined and we can find the robot, we overwrite the corresponding parameters.
ss_ip = ParameterParserUtil.parseStringParam(robObj.getHost(), ss_ip);
ss_ip_user = robObj.getHostUser();
ss_ip_pass = robObj.getHostPassword();
ss_p = ParameterParserUtil.parseStringParam(String.valueOf(robObj.getPort()), ss_p);
browser = ParameterParserUtil.parseStringParam(robObj.getBrowser(), browser);
robotDecli = ParameterParserUtil.parseStringParam(robObj.getRobotDecli(), "");
if (StringUtil.isNullOrEmpty(robotDecli)) {
robotDecli = robObj.getRobot();
}
version = ParameterParserUtil.parseStringParam(robObj.getVersion(), version);
platform = ParameterParserUtil.parseStringParam(robObj.getPlatform(), platform);
active = robObj.getActive();
userAgent = robObj.getUserAgent();
capabilities = robObj.getCapabilities();
screenSize = robObj.getScreenSize();
} catch (CerberusException ex) {
errorMessage += "Error - Robot [" + robot + "] does not exist. ";
error = true;
}
} else {
robotDecli = browser;
}
// We cannot execute a testcase on a desactivated Robot.
if (active.equals("N")) {
errorMessage += "Error - Robot is not Active. ";
error = true;
}
// verify the format of the ScreenSize. It must be 2 integer separated by a *. For example : 1024*768
if (!"".equals(screenSize)) {
if (!screenSize.contains("*")) {
errorMessage += "Error - ScreenSize format is not Correct. It must be 2 Integer separated by a *. ";
error = true;
} else {
try {
String screenWidth = screenSize.split("\\*")[0];
String screenLength = screenSize.split("\\*")[1];
Integer.parseInt(screenWidth);
Integer.parseInt(screenLength);
} catch (Exception e) {
errorMessage += "Error - ScreenSize format is not Correct. It must be 2 Integer separated by a *. ";
error = true;
}
}
}
// check if the test case is to be executed in the specific parameters
try {
ITestCaseCountryService tccService = appContext.getBean(ITestCaseCountryService.class);
TestCaseCountry tcc = tccService.findTestCaseCountryByKey(test, testCase, country);
if (tcc == null) {
error = true;
}
} catch (CerberusException ex) {
error = true;
errorMessage += "Error - Test Case is not selected for country. ";
}
// Create Tag when exist.
if (!StringUtil.isNullOrEmpty(tag)) {
// We create or update it.
ITagService tagService = appContext.getBean(ITagService.class);
tagService.createAuto(tag, "", executor);
}
if (!error) {
// TODO:FN debug messages to be removed
LOG.debug("STARTED: Test " + test + "-" + testCase);
IRunTestCaseService runTestCaseService = appContext.getBean(IRunTestCaseService.class);
IFactoryTestCase factoryTCase = appContext.getBean(IFactoryTestCase.class);
IFactoryTestCaseExecution factoryTCExecution = appContext.getBean(IFactoryTestCaseExecution.class);
IFactoryTestCaseExecutionQueue factoryTCExecutionQueue = appContext.getBean(IFactoryTestCaseExecutionQueue.class);
ITestCaseExecutionService tces = appContext.getBean(ITestCaseExecutionService.class);
ITestCaseService tcs = appContext.getBean(ITestCaseService.class);
TestCase tCase = factoryTCase.create(test, testCase);
// Building Execution Object.
TestCaseExecution tCExecution = factoryTCExecution.create(0, test, testCase, null, null, null, environment, country, browser, version, platform, "", 0, 0, "", "", "", null, ss_ip, null, ss_p, tag, verbose, screenshot, getPageSource, getSeleniumLog, synchroneous, timeout, outputFormat, null, Infos.getInstance().getProjectNameAndVersion(), tCase, null, null, manualURL, myHost, myContextRoot, myLoginRelativeURL, myEnvData, ss_ip, ss_p, null, new MessageGeneral(MessageGeneralEnum.EXECUTION_PE_TESTSTARTED), executor, numberOfRetries, screenSize, capabilities, "", "", "", "", "", manualExecution, userAgent, 0, "", robotDecli);
tCExecution.setSeleniumIPUser(ss_ip_user);
tCExecution.setSeleniumIPPassword(ss_ip_pass);
/**
* Set IdFromQueue
*/
try {
tCExecution.setQueueID(idFromQueue);
TestCaseExecutionQueue queueExecution = factoryTCExecutionQueue.create(idFromQueue, test, testCase, country, environment, robot, ss_ip, ss_p, browser, version, platform, screenSize, 0, myHost, myContextRoot, myLoginRelativeURL, myEnvData, tag, screenshot, verbose, timeout, getPageSource, getSeleniumLog, 0, numberOfRetries, manualExecution, executor, null, null, null);
tCExecution.setTestCaseExecutionQueue(queueExecution);
} catch (FactoryCreationException ex) {
LOG.error(ex);
}
/**
* Set UUID
*/
ExecutionUUID executionUUIDObject = appContext.getBean(ExecutionUUID.class);
UUID executionUUID = UUID.randomUUID();
executionUUIDObject.setExecutionUUID(executionUUID.toString(), tCExecution);
tCExecution.setExecutionUUID(executionUUID.toString());
LOG.info("Execution Requested : UUID=" + executionUUID);
/**
* Execution of the testcase.
*/
LOG.debug("Start execution " + tCExecution.getId());
tCExecution = runTestCaseService.runTestCase(tCExecution);
/**
* Clean memory in case testcase has not been launched(Remove all
* object put in memory)
*/
try {
if (tCExecution.getId() == 0) {
executionUUIDObject.removeExecutionUUID(tCExecution.getExecutionUUID());
LOG.debug("Clean ExecutionUUID");
}
} catch (Exception ex) {
LOG.error("Exception cleaning Memory: ", ex);
}
/**
* Execution is finished we report the result.
*/
long runID = tCExecution.getId();
if (outputFormat.equalsIgnoreCase("gui")) {
// HTML GUI output. either the detailed execution page or an error page when the execution is not created.
if (runID > 0) {
// Execution has been created.
response.sendRedirect("TestCaseExecution.jsp?executionId=" + runID);
} else {
// Execution was not even created.
response.setContentType("text/html");
out.println("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><title>Test Execution Result</title></head>");
out.println("<body>");
out.println("<table>");
out.println("<tr><td>RunID</td><td><span id='RunID'>" + runID + "</span></td></tr>");
out.println("<tr><td>IdFromQueue</td><td><b><span id='IdFromQueue'>" + tCExecution.getQueueID() + "</span></b></td></tr>");
out.println("<tr><td>Test</td><td><span id='Test'>" + test + "</span></td></tr>");
out.println("<tr><td>TestCase</td><td><span id='TestCase'>" + testCase + "</span></td></tr>");
out.println("<tr><td>Country</td><td><span id='Country'>" + country + "</span></td></tr>");
out.println("<tr><td>Environment</td><td><span id='Environment'>" + environment + "</span></td></tr>");
out.println("<tr><td>TimestampStart</td><td><span id='TimestampStart'>" + new Timestamp(tCExecution.getStart()) + "</span></td></tr>");
out.println("<tr><td>TimestampEnd</td><td><span id='TimestampEnd'>" + new Timestamp(tCExecution.getEnd()) + "</span></td></tr>");
out.println("<tr><td>OutputFormat</td><td><span id='OutputFormat'>" + outputFormat + "</span></td></tr>");
out.println("<tr><td>Verbose</td><td><span id='Verbose'>" + verbose + "</span></td></tr>");
out.println("<tr><td>Screenshot</td><td><span id='Screenshot'>" + screenshot + "</span></td></tr>");
out.println("<tr><td>PageSource</td><td><span id='PageSource'>" + getPageSource + "</span></td></tr>");
out.println("<tr><td>SeleniumLog</td><td><span id='SeleniumLog'>" + getSeleniumLog + "</span></td></tr>");
out.println("<tr><td>Robot</td><td><span id='Robot'>" + robot + "</span></td></tr>");
out.println("<tr><td>Selenium Server IP</td><td><span id='SeleniumIP'>" + ss_ip + "</span></td></tr>");
out.println("<tr><td>Selenium Server Port</td><td><span id='SeleniumPort'>" + ss_p + "</span></td></tr>");
out.println("<tr><td>Timeout</td><td><span id='Timeout'>" + timeout + "</span></td></tr>");
out.println("<tr><td>Synchroneous</td><td><span id='Synchroneous'>" + synchroneous + "</span></td></tr>");
out.println("<tr><td>Browser</td><td><span id='Browser'>" + browser + "</span></td></tr>");
out.println("<tr><td>Version</td><td><span id='Version'>" + version + "</span></td></tr>");
out.println("<tr><td>Platform</td><td><span id='Platform'>" + platform + "</span></td></tr>");
out.println("<tr><td>Screen Size</td><td><span id='screenSize'>" + screenSize + "</span></td></tr>");
out.println("<tr><td>Number of Retry</td><td><span id='nbretry'>" + numberOfRetries + "</span></td></tr>");
out.println("<tr><td>ManualURL</td><td><span id='ManualURL'>" + tCExecution.isManualURL() + "</span></td></tr>");
out.println("<tr><td>MyHost</td><td><span id='MyHost'>" + tCExecution.getMyHost() + "</span></td></tr>");
out.println("<tr><td>MyContextRoot</td><td><span id='MyContextRoot'>" + tCExecution.getMyContextRoot() + "</span></td></tr>");
out.println("<tr><td>MyLoginRelativeURL</td><td><span id='MyLoginRelativeURL'>" + tCExecution.getMyLoginRelativeURL() + "</span></td></tr>");
out.println("<tr><td>myEnvironmentData</td><td><span id='myEnvironmentData'>" + tCExecution.getEnvironmentData() + "</span></td></tr>");
out.println("<tr><td>ReturnCode</td><td><b><span id='ReturnCodeDescription'>" + tCExecution.getResultMessage().getCode() + "</span></b></td></tr>");
out.println("<tr><td>ReturnCodeDescription</td><td><b><span id='ReturnCodeDescription'>" + tCExecution.getResultMessage().getDescription() + "</span></b></td></tr>");
out.println("<tr><td>ControlStatus</td><td><b><span id='ReturnCodeMessage'>" + tCExecution.getResultMessage().getCodeString() + "</span></b></td></tr>");
out.println("<tr><td></td><td></td></tr>");
out.println("</table><br><br>");
out.println("<table border>");
out.println("<tr>" + "<td><input id=\"ButtonRetry\" type=\"button\" value=\"Retry\" onClick=\"window.location.reload()\"></td>" + "<td><input id=\"ButtonBack\" type=\"button\" value=\"Go Back\" onClick=\"window.history.back()\"></td>" + "<td><input id=\"ButtonOpenTC\" type=\"button\" value=\"Open Test Case\" onClick=\"window.open('TestCaseScript.jsp?test=" + test + "&testcase=" + testCase + "')\"></td>" + "</tr>");
out.println("</table>");
out.println("</body>");
out.println("</html>");
}
} else if (outputFormat.equalsIgnoreCase("redirectToReport")) {
// Redirect to the reporting page by tag.
response.sendRedirect("./ReportingExecutionByTag.jsp?Tag=" + StringUtil.encodeAsJavaScriptURIComponent(tag));
} else if (outputFormat.equalsIgnoreCase("verbose-txt")) {
// Text verbose output.
response.setContentType("text/plain");
String separator = " = ";
out.println("RunID" + separator + runID);
out.println("QueueID" + separator + idFromQueue);
out.println("Test" + separator + test);
out.println("TestCase" + separator + testCase);
out.println("Country" + separator + country);
out.println("Environment" + separator + environment);
out.println("Time Start" + separator + new Timestamp(tCExecution.getStart()));
out.println("Time End" + separator + new Timestamp(tCExecution.getEnd()));
out.println("OutputFormat" + separator + outputFormat);
out.println("Verbose" + separator + verbose);
out.println("Screenshot" + separator + screenshot);
out.println("PageSource" + separator + getPageSource);
out.println("SeleniumLog" + separator + getSeleniumLog);
out.println("Robot" + separator + robot);
out.println("Selenium Server IP" + separator + ss_ip);
out.println("Selenium Server Port" + separator + ss_p);
out.println("Timeout" + separator + timeout);
out.println("Synchroneous" + separator + synchroneous);
out.println("Browser" + separator + browser);
out.println("Version" + separator + version);
out.println("Platform" + separator + platform);
out.println("ScreenSize" + separator + screenSize);
out.println("Nb Of Retry" + separator + numberOfRetries);
out.println("ManualURL" + separator + tCExecution.isManualURL());
out.println("MyHost" + separator + tCExecution.getMyHost());
out.println("MyContextRoot" + separator + tCExecution.getMyContextRoot());
out.println("MyLoginRelativeURL" + separator + tCExecution.getMyLoginRelativeURL());
out.println("myEnvironmentData" + separator + tCExecution.getEnvironmentData());
out.println("ReturnCode" + separator + tCExecution.getResultMessage().getCode());
out.println("ReturnCodeDescription" + separator + tCExecution.getResultMessage().getDescription());
out.println("ControlStatus" + separator + tCExecution.getResultMessage().getCodeString());
} else if (outputFormat.equalsIgnoreCase("verbose-json")) {
// JSON verbose output.
response.setContentType("application/json");
TestCaseExecution t = (TestCaseExecution) tces.readByKeyWithDependency(tCExecution.getId()).getItem();
out.print(tCExecution.toJson(true).toString());
} else {
// Default behaviour when not outputformat is defined : compact mode.
response.setContentType("text/plain");
DateFormat df = new SimpleDateFormat(DateUtil.DATE_FORMAT_DISPLAY);
out.println(df.format(tCExecution.getStart()) + " - " + runID + " [" + test + "|" + testCase + "|" + country + "|" + environment + "] : '" + tCExecution.getResultMessage().getCodeString() + "' - " + tCExecution.getResultMessage().getCode() + " " + tCExecution.getResultMessage().getDescription());
}
} else {
// Error occured in the servlet.
if (outputFormat.equalsIgnoreCase("verbose-txt")) {
// Text verbose output.
response.setContentType("text/plain");
String separator = " = ";
out.println("RunID" + separator + 0);
out.println("QueueID" + separator + idFromQueue);
out.println("Test" + separator + test);
out.println("TestCase" + separator + testCase);
out.println("Country" + separator + country);
out.println("Environment" + separator + environment);
out.println("OutputFormat" + separator + outputFormat);
out.println("Verbose" + separator + verbose);
out.println("Screenshot" + separator + screenshot);
out.println("PageSource" + separator + getPageSource);
out.println("SeleniumLog" + separator + getSeleniumLog);
out.println("Robot" + separator + robot);
out.println("Selenium Server IP" + separator + ss_ip);
out.println("Selenium Server Port" + separator + ss_p);
out.println("Timeout" + separator + timeout);
out.println("Synchroneous" + separator + synchroneous);
out.println("Browser" + separator + browser);
out.println("Version" + separator + version);
out.println("Platform" + separator + platform);
out.println("ScreenSize" + separator + screenSize);
out.println("Nb Of Retry" + separator + numberOfRetries);
out.println("ManualURL" + separator + manualURL);
out.println("MyHost" + separator + myHost);
out.println("MyContextRoot" + separator + myContextRoot);
out.println("MyLoginRelativeURL" + separator + myLoginRelativeURL);
out.println("myEnvironmentData" + separator + myEnvData);
out.println("ReturnCode" + separator + MessageGeneralEnum.EXECUTION_FA_SERVLETVALIDATONS.getCode());
out.println("ReturnCodeDescription" + separator + MessageGeneralEnum.EXECUTION_FA_SERVLETVALIDATONS.getDescription() + " " + errorMessage);
out.println("ControlStatus" + separator + MessageGeneralEnum.EXECUTION_FA_SERVLETVALIDATONS.getCodeString());
} else {
// In case of errors, we display the help message.
response.setContentType("text/plain");
DateFormat df = new SimpleDateFormat(DateUtil.DATE_FORMAT_DISPLAY);
String errorMessageFinal = df.format(new Date()) + " - " + 0 + " [" + test + "|" + testCase + "|" + country + "|" + environment + "] : '" + MessageGeneralEnum.EXECUTION_FA_SERVLETVALIDATONS.getCodeString() + "' - " + MessageGeneralEnum.EXECUTION_FA_SERVLETVALIDATONS.getCode() + " " + MessageGeneralEnum.EXECUTION_FA_SERVLETVALIDATONS.getDescription() + " " + errorMessage;
out.println(errorMessageFinal);
}
}
}
use of org.cerberus.engine.entity.ExecutionUUID in project cerberus-source by cerberustesting.
the class ReadCerberusDetailInformation method processRequest.
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
JSONObject jsonResponse = new JSONObject();
ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
ExecutionUUID euuid = appContext.getBean(ExecutionUUID.class);
SessionCounter sc = appContext.getBean(SessionCounter.class);
Infos infos = new Infos();
try {
jsonResponse.put("simultaneous_execution", euuid.size());
JSONArray executionArray = new JSONArray();
for (Object ex : euuid.getExecutionUUIDList().values()) {
TestCaseExecution execution = (TestCaseExecution) ex;
JSONObject object = new JSONObject();
object.put("id", execution.getId());
object.put("test", execution.getTest());
object.put("testcase", execution.getTestCase());
object.put("system", execution.getApplicationObj().getSystem());
object.put("application", execution.getApplication());
object.put("environment", execution.getEnvironmentData());
object.put("country", execution.getCountry());
object.put("robotIP", execution.getSeleniumIP());
object.put("tag", execution.getTag());
object.put("start", new Timestamp(execution.getStart()));
executionArray.put(object);
}
jsonResponse.put("simultaneous_execution_list", executionArray);
jsonResponse.put("simultaneous_session", sc.getTotalActiveSession());
jsonResponse.put("active_users", sc.getActiveUsers());
cerberusDatabaseInformation = appContext.getBean(ICerberusInformationDAO.class);
AnswerItem ans = cerberusDatabaseInformation.getDatabaseInformation();
HashMap<String, String> cerberusInformation = (HashMap<String, String>) ans.getItem();
// Database Informations.
jsonResponse.put("DatabaseProductName", cerberusInformation.get("DatabaseProductName"));
jsonResponse.put("DatabaseProductVersion", cerberusInformation.get("DatabaseProductVersion"));
jsonResponse.put("DatabaseMajorVersion", cerberusInformation.get("DatabaseMajorVersion"));
jsonResponse.put("DatabaseMinorVersion", cerberusInformation.get("DatabaseMinorVersion"));
jsonResponse.put("DriverName", cerberusInformation.get("DriverName"));
jsonResponse.put("DriverVersion", cerberusInformation.get("DriverVersion"));
jsonResponse.put("DriverMajorVersion", cerberusInformation.get("DriverMajorVersion"));
jsonResponse.put("DriverMinorVersion", cerberusInformation.get("DriverMinorVersion"));
jsonResponse.put("JDBCMajorVersion", cerberusInformation.get("JDBCMajorVersion"));
jsonResponse.put("JDBCMinorVersion", cerberusInformation.get("JDBCMinorVersion"));
// Cerberus Informations.
jsonResponse.put("projectName", infos.getProjectName());
jsonResponse.put("projectVersion", infos.getProjectVersion());
jsonResponse.put("environment", System.getProperty("org.cerberus.environment"));
databaseVersionService = appContext.getBean(IDatabaseVersioningService.class);
jsonResponse.put("databaseCerberusTargetVersion", databaseVersionService.getSQLScript().size());
myVersionService = appContext.getBean(IMyVersionService.class);
if (myVersionService.findMyVersionByKey("database") != null) {
jsonResponse.put("databaseCerberusCurrentVersion", myVersionService.findMyVersionByKey("database").getValue());
} else {
jsonResponse.put("databaseCerberusCurrentVersion", "0");
}
// JAVA Informations.
jsonResponse.put("javaVersion", System.getProperty("java.version"));
Runtime instance = Runtime.getRuntime();
int mb = 1024 * 1024;
jsonResponse.put("javaFreeMemory", instance.freeMemory() / mb);
jsonResponse.put("javaTotalMemory", instance.totalMemory() / mb);
jsonResponse.put("javaUsedMemory", (instance.totalMemory() - instance.freeMemory()) / mb);
jsonResponse.put("javaMaxMemory", instance.maxMemory() / mb);
String str1 = getServletContext().getServerInfo();
jsonResponse.put("applicationServerInfo", str1);
} catch (JSONException ex) {
LOG.warn(ex);
}
response.setContentType("application/json");
response.getWriter().print(jsonResponse.toString());
}
use of org.cerberus.engine.entity.ExecutionUUID in project cerberus-source by cerberustesting.
the class CalculatePropertyForTestCase method doGet.
@Override
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.BLOCKS);
String type = policy.sanitize(httpServletRequest.getParameter("type"));
ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
String result = null;
String description = null;
String system = "";
String property = httpServletRequest.getParameter("property");
String testName = policy.sanitize(httpServletRequest.getParameter("test"));
String testCaseName = policy.sanitize(httpServletRequest.getParameter("testCase"));
String country = policy.sanitize(httpServletRequest.getParameter("country"));
String environment = policy.sanitize(httpServletRequest.getParameter("environment"));
try {
if (type.equals("executeSoapFromLib")) {
IAppServiceService appServiceService = appContext.getBean(AppServiceService.class);
ISoapService soapService = appContext.getBean(ISoapService.class);
IXmlUnitService xmlUnitService = appContext.getBean(IXmlUnitService.class);
AppService appService = appServiceService.findAppServiceByKey(property);
if (appService != null) {
ExecutionUUID executionUUIDObject = appContext.getBean(ExecutionUUID.class);
UUID executionUUID = UUID.randomUUID();
executionUUIDObject.setExecutionUUID(executionUUID.toString(), null);
soapService.callSOAP(appService.getServiceRequest(), appService.getServicePath(), appService.getOperation(), appService.getAttachementURL(), null, null, 60000, system);
result = xmlUnitService.getFromXml(executionUUID.toString(), appService.getAttachementURL());
description = appService.getDescription();
executionUUIDObject.removeExecutionUUID(executionUUID.toString());
LOG.debug("Clean ExecutionUUID");
}
} else {
try {
ITestCaseService testCaseService = appContext.getBean(TestCaseService.class);
IApplicationService applicationService = appContext.getBean(ApplicationService.class);
TestCase testCase = testCaseService.findTestCaseByKey(testName, testCaseName);
if (testCase != null) {
system = applicationService.convert(applicationService.readByKey(testCase.getApplication())).getSystem();
} else {
throw new CerberusException(new MessageGeneral(MessageGeneralEnum.NO_DATA_FOUND));
}
} catch (CerberusException ex) {
LOG.warn(ex);
}
if (system != null) {
String database = policy.sanitize(httpServletRequest.getParameter("database"));
ICountryEnvironmentDatabaseService countryEnvironmentDatabaseService = appContext.getBean(CountryEnvironmentDatabaseService.class);
CountryEnvironmentDatabase countryEnvironmentDatabase;
countryEnvironmentDatabase = countryEnvironmentDatabaseService.convert(countryEnvironmentDatabaseService.readByKey(system, country, environment, database));
String connectionName = countryEnvironmentDatabase.getConnectionPoolName();
if (type.equals("executeSqlFromLib")) {
ISqlLibraryService sqlLibraryService = appContext.getBean(SqlLibraryService.class);
SqlLibrary sl = sqlLibraryService.findSqlLibraryByKey(policy.sanitize(property));
property = sl.getScript();
if (!(StringUtil.isNullOrEmpty(connectionName)) && !(StringUtil.isNullOrEmpty(policy.sanitize(property)))) {
ISQLService sqlService = appContext.getBean(ISQLService.class);
IParameterService parameterService = appContext.getBean(IParameterService.class);
Integer sqlTimeout = parameterService.getParameterIntegerByKey("cerberus_propertyexternalsql_timeout", system, 60);
result = sqlService.queryDatabase(connectionName, policy.sanitize(property), 1, sqlTimeout).get(0);
description = sl.getDescription();
}
}
}
}
} catch (CerberusException ex) {
LOG.warn(ex);
result = ex.getMessageError().getDescription();
description = ex.getMessageError().getDescription();
} catch (CerberusEventException ex) {
LOG.warn(ex);
result = ex.getMessageError().getDescription();
description = ex.getMessageError().getDescription();
}
if (result != null) {
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("resultList", result);
jsonObject.put("description", description);
httpServletResponse.setContentType("application/json");
httpServletResponse.getWriter().print(jsonObject.toString());
} catch (JSONException exception) {
LOG.warn(exception.toString());
}
}
}
Aggregations