Best Cerberus-source code snippet using org.cerberus.engine.execution.impl.ExecutionRunService.stopExecutionRobotAndProxy
Source:ExecutionRunService.java
...848 public TestCaseExecution stopTestCase(TestCaseExecution execution) {849 // Stop Execution850 LOG.debug("{} - Stop the execution {} UUID: {}", execution.getId(), execution.getId(), execution.getExecutionUUID());851 try {852 this.stopExecutionRobotAndProxy(execution);853 } catch (Exception ex) {854 LOG.warn("Exception Stopping Execution {} Exception : {}", execution.getId(), ex.toString(), ex);855 }856 // Saving TestCaseExecution object.857 execution.setEnd(new Date().getTime());858 try {859 testCaseExecutionService.updateTCExecution(execution);860 } catch (CerberusException ex) {861 LOG.warn("Exception updating Execution : {} Exception: {}", execution.getId(), ex.toString());862 }863 // Websocket --> we refresh the corresponding Detail Execution pages attached to this execution.864 if (execution.isCerberus_featureflipping_activatewebsocketpush()) {865 TestCaseExecutionEndPoint.getInstance().send(execution, true);866 TestCaseExecutionEndPoint.getInstance().end(execution);867 }868 return execution;869 }870 private TestCaseStepExecution executeStep(TestCaseStepExecution stepExecution, TestCaseExecution execution) {871 long runID = stepExecution.getId();872 String logPrefix = runID + " - ";873 AnswerItem<String> answerDecode;874 // Initialise the Step Data List.875 List<TestCaseExecutionData> myStepDataList = new ArrayList<>();876 stepExecution.setTestCaseExecutionDataList(myStepDataList);877 // Initialise the Data List used to enter the action.878 // Iterate Actions879 List<TestCaseStepAction> testCaseStepActionList = stepExecution.getTestCaseStep().getActions();880 LOG.debug("{}Getting list of actions of the step. {} action(s) to perform.", logPrefix, testCaseStepActionList.size());881 for (TestCaseStepAction testCaseStepAction : testCaseStepActionList) {882 // Start Execution of TestCaseStepAction883 long startAction = new Date().getTime();884 DateFormat df = new SimpleDateFormat(DateUtil.DATE_FORMAT_TIMESTAMP);885 long startLongAction = Long.parseLong(df.format(startAction));886 // Create and Register TestCaseStepActionExecution.887 TestCaseStepActionExecution actionExecution = factoryTestCaseStepActionExecution.create(888 stepExecution.getId(), testCaseStepAction.getTest(), testCaseStepAction.getTestcase(),889 testCaseStepAction.getStepId(), stepExecution.getIndex(), testCaseStepAction.getActionId(), testCaseStepAction.getSort(), null, null,890 testCaseStepAction.getConditionOperator(), testCaseStepAction.getConditionValue1(), testCaseStepAction.getConditionValue2(), testCaseStepAction.getConditionValue3(),891 testCaseStepAction.getConditionValue1(), testCaseStepAction.getConditionValue2(), testCaseStepAction.getConditionValue3(),892 testCaseStepAction.getAction(), testCaseStepAction.getValue1(), testCaseStepAction.getValue2(), testCaseStepAction.getValue3(), testCaseStepAction.getValue1(),893 testCaseStepAction.getValue2(), testCaseStepAction.getValue3(),894 (testCaseStepAction.isFatal() ? "Y" : "N"), startAction, startAction, startLongAction, startLongAction, new MessageEvent(MessageEventEnum.ACTION_PENDING),895 testCaseStepAction.getDescription(), testCaseStepAction, stepExecution);896 actionExecution.setOptions(testCaseStepAction.getOptionsActive());897 actionExecution.setConditionOptions(testCaseStepAction.getConditionOptionsActive());898 this.testCaseStepActionExecutionService.insertTestCaseStepActionExecution(actionExecution, execution.getSecrets());899 // We populate the TestCase Action List900 stepExecution.addActionExecutionList(actionExecution);901 // If execution is not manual, evaluate the condition at the action level902 AnswerItem<Boolean> conditionAnswer;903 boolean conditionDecodeError = false;904 if (!execution.getManualExecution().equals("Y")) {905 try {906 answerDecode = variableService.decodeStringCompletly(actionExecution.getConditionVal1(), execution, null, false);907 actionExecution.setConditionVal1(answerDecode.getItem());908 if (!(answerDecode.isCodeStringEquals("OK"))) {909 // If anything wrong with the decode --> we stop here with decode message in the action result.910 actionExecution.setActionResultMessage(answerDecode.getResultMessage().resolveDescription("FIELD", "Action Condition Value1"));911 actionExecution.setExecutionResultMessage(new MessageGeneral(answerDecode.getResultMessage().getMessage()));912 actionExecution.setStopExecution(answerDecode.getResultMessage().isStopTest());913 actionExecution.setEnd(new Date().getTime());914 LOG.debug("{}Action interrupted due to decode 'Action Condition Value1' Error.", logPrefix);915 conditionDecodeError = true;916 }917 } catch (CerberusEventException cex) {918 LOG.warn(cex);919 }920 try {921 answerDecode = variableService.decodeStringCompletly(actionExecution.getConditionVal2(), execution, null, false);922 actionExecution.setConditionVal2(answerDecode.getItem());923 if (!(answerDecode.isCodeStringEquals("OK"))) {924 // If anything wrong with the decode --> we stop here with decode message in the action result.925 actionExecution.setActionResultMessage(answerDecode.getResultMessage().resolveDescription("FIELD", "Action Condition Value2"));926 actionExecution.setExecutionResultMessage(new MessageGeneral(answerDecode.getResultMessage().getMessage()));927 actionExecution.setStopExecution(answerDecode.getResultMessage().isStopTest());928 actionExecution.setEnd(new Date().getTime());929 LOG.debug("{}Action interrupted due to decode 'Action Condition Value2' Error.", logPrefix);930 conditionDecodeError = true;931 }932 } catch (CerberusEventException cex) {933 LOG.warn(cex);934 }935 try {936 answerDecode = variableService.decodeStringCompletly(actionExecution.getConditionVal3(), execution, null, false);937 actionExecution.setConditionVal3(answerDecode.getItem());938 if (!(answerDecode.isCodeStringEquals("OK"))) {939 // If anything wrong with the decode --> we stop here with decode message in the action result.940 actionExecution.setActionResultMessage(answerDecode.getResultMessage().resolveDescription("FIELD", "Action Condition Value3"));941 actionExecution.setExecutionResultMessage(new MessageGeneral(answerDecode.getResultMessage().getMessage()));942 actionExecution.setStopExecution(answerDecode.getResultMessage().isStopTest());943 actionExecution.setEnd(new Date().getTime());944 LOG.debug("{}Action interrupted due to decode 'Action Condition Value3' Error.", logPrefix);945 conditionDecodeError = true;946 }947 } catch (CerberusEventException cex) {948 LOG.warn(cex);949 }950 }951 if (!(conditionDecodeError)) {952 ConditionOperatorEnum actionConditionOperatorEnum = ConditionOperatorEnum.getConditionOperatorEnumFromString(actionExecution.getConditionOperator());953 conditionAnswer = this.conditionService.evaluateCondition(actionExecution.getConditionOperator(),954 actionExecution.getConditionVal1(), actionExecution.getConditionVal2(), actionExecution.getConditionVal3(),955 execution, actionExecution.getConditionOptions());956 boolean doExecuteAction = conditionAnswer.getItem();957 if (execution.getManualExecution().equals("Y") && actionConditionOperatorEnum.isOperatorEvaluationRequired()) {958 actionExecution.setDescription(actionExecution.getDescription() + " - " + conditionAnswer.getMessageDescription());959 }960 // If condition OK or if manual execution, then execute the action961 if (conditionAnswer.getResultMessage().getMessage().getCodeString().equals("PE")962 || execution.getManualExecution().equals("Y")) {963 // Execute or not the action here.964 if (doExecuteAction || execution.getManualExecution().equals("Y")) {965 LOG.debug("Executing action : {} with val1 : {} and val2 : {} and val3 : {}",966 actionExecution.getAction(),967 actionExecution.getValue1(),968 actionExecution.getValue2(),969 actionExecution.getValue3());970 // We execute the Action971 actionExecution = this.executeAction(actionExecution, execution);972 // If Action or property reported to stop the testcase, we stop it and update the step with the message.973 stepExecution.setStopExecution(actionExecution.isStopExecution());974 if ((!(actionExecution.getExecutionResultMessage().equals(new MessageGeneral(MessageGeneralEnum.EXECUTION_OK))))975 && (!(actionExecution.getExecutionResultMessage().equals(new MessageGeneral(MessageGeneralEnum.EXECUTION_PE_TESTEXECUTING))))) {976 stepExecution.setExecutionResultMessage(actionExecution.getExecutionResultMessage());977 stepExecution.setStepResultMessage(actionExecution.getActionResultMessage());978 }979 if (actionExecution.isStopExecution()) {980 break;981 }982 } else {983 // We don't execute the action and record a generic execution.984 // Record Screenshot, PageSource985 actionExecution.addFileList(recorderService.recordExecutionInformationAfterStepActionAndControl(actionExecution, null));986 LOG.debug("Registering Action : {}", actionExecution.getAction());987 // We change the Action message only if the action is not executed due to condition.988 MessageEvent actionMes = new MessageEvent(MessageEventEnum.CONDITION_TESTCASEACTION_NOTEXECUTED);989 actionExecution.setActionResultMessage(actionMes);990 actionExecution.setReturnMessage(actionExecution.getReturnMessage()991 .replace("%COND%", actionExecution.getConditionOperator())992 .replace("%MESSAGE%", conditionAnswer.getResultMessage().getDescription())993 );994 actionExecution.setEnd(new Date().getTime());995 this.testCaseStepActionExecutionService.updateTestCaseStepActionExecution(actionExecution, execution.getSecrets());996 LOG.debug("{}Registered Action", logPrefix);997 }998 } else {999 // Error when performing the condition evaluation. We force no execution (false)1000 MessageGeneral mes = new MessageGeneral(MessageGeneralEnum.EXECUTION_FA_CONDITION);1001 mes.setDescription(mes.getDescription()1002 .replace("%COND%", actionExecution.getConditionOperator())1003 .replace("%AREA%", "action ")1004 .replace("%MES%", conditionAnswer.getResultMessage().getDescription()));1005 actionExecution.setExecutionResultMessage(mes);1006 stepExecution.setExecutionResultMessage(actionExecution.getExecutionResultMessage());1007 actionExecution.setActionResultMessage(new MessageEvent(MessageEventEnum.CONDITION_TESTCASEACTION_FAILED)1008 .resolveDescription("AREA", "")1009 .resolveDescription("COND", actionExecution.getConditionOperator())1010 .resolveDescription("MESSAGE", conditionAnswer.getResultMessage().getDescription()));1011 stepExecution.setStepResultMessage(new MessageEvent(MessageEventEnum.CONDITION_TESTCASESTEP_FAILED)1012 .resolveDescription("AREA", "action ")1013 .resolveDescription("COND", actionExecution.getConditionOperator())1014 .resolveDescription("MESSAGE", conditionAnswer.getResultMessage().getDescription()));1015 if (actionExecution.isFatal().equals("N")) {1016 actionExecution.setStopExecution(false);1017 MessageEvent actionMes = actionExecution.getActionResultMessage();1018 actionMes.setDescription(actionExecution.getActionResultMessage().getDescription() + " -- Execution forced to continue.");1019 actionExecution.setActionResultMessage(actionMes);1020 } else {1021 actionExecution.setStopExecution(true);1022 }1023 stepExecution.setStopExecution(actionExecution.isStopExecution());1024 actionExecution.setEnd(new Date().getTime());1025 this.testCaseStepActionExecutionService.updateTestCaseStepActionExecution(actionExecution, execution.getSecrets());1026 LOG.debug("{}Action interrupted due to condition error.", logPrefix);1027 // We stop any further Action execution.1028 if (actionExecution.isStopExecution()) {1029 break;1030 }1031 }1032 } else {1033 actionExecution.setEnd(new Date().getTime());1034 stepExecution.setExecutionResultMessage(actionExecution.getExecutionResultMessage());1035 stepExecution.setStepResultMessage(actionExecution.getActionResultMessage());1036 stepExecution.setStopExecution(actionExecution.isStopExecution());1037 this.testCaseStepActionExecutionService.updateTestCaseStepActionExecution(actionExecution, execution.getSecrets());1038 LOG.debug("{}Registered Action", logPrefix);1039 if (actionExecution.isStopExecution()) {1040 break;1041 }1042 }1043 // Log TestCaseStepActionExecution1044 if ((execution.getVerbose() > 0) && parameterService.getParameterBooleanByKey("cerberus_executionlog_enable", execution.getSystem(), false)) {1045 LOG.info(actionExecution.toJson(false, true, execution.getSecrets()));1046 }1047 }1048 stepExecution.setEnd(new Date().getTime());1049 this.testCaseStepExecutionService.updateTestCaseStepExecution(stepExecution, execution.getSecrets());1050 updateExecutionWebSocketOnly(execution, false);1051 return stepExecution;1052 }1053 private TestCaseStepActionExecution executeAction(TestCaseStepActionExecution actionExecution, TestCaseExecution execution) {1054 LOG.debug("Starting execute Action : {}", actionExecution.getAction());1055 AnswerItem<String> answerDecode;1056 // If execution is not manual, do action and record files1057 if (!execution.getManualExecution().equals("Y")) {1058 actionExecution = this.actionService.doAction(actionExecution);1059 // Record Screenshot, PageSource1060 try {1061 actionExecution.addFileList(recorderService.recordExecutionInformationAfterStepActionAndControl(actionExecution, null));1062 } catch (Exception ex) {1063 LOG.warn("Unable to record Screenshot/PageSource : {}", ex.toString(), ex);1064 }1065 } else {1066 // If execution manual, set Action result message as notExecuted1067 actionExecution.setActionResultMessage(new MessageEvent(MessageEventEnum.ACTION_WAITINGFORMANUALEXECUTION));1068 actionExecution.setExecutionResultMessage(new MessageGeneral(MessageGeneralEnum.EXECUTION_WE));1069 actionExecution.setEnd(new Date().getTime());1070 }1071 // Register Action in database1072 LOG.debug("Registering Action : {}", actionExecution.getAction());1073 this.testCaseStepActionExecutionService.updateTestCaseStepActionExecution(actionExecution, execution.getSecrets());1074 LOG.debug("Registered Action");1075 if (actionExecution.isStopExecution()) {1076 return actionExecution;1077 }1078 // If Action setXXContent is not executed, we don't execute the corresponding controls.1079 if (actionExecution.getActionResultMessage().getCodeString().equals("NE")1080 && (actionExecution.getAction().equals(TestCaseStepAction.ACTION_SETNETWORKTRAFFICCONTENT)1081 || actionExecution.getAction().equals(TestCaseStepAction.ACTION_SETSERVICECALLCONTENT)1082 || actionExecution.getAction().equals(TestCaseStepAction.ACTION_SETCONSOLECONTENT)1083 || actionExecution.getAction().equals(TestCaseStepAction.ACTION_SETCONTENT))) {1084 return actionExecution;1085 }1086 //As controls are associated with an action, the current state for the action is stored in order to restore it1087 //if some property is not defined for the country1088 MessageEvent actionMessage = actionExecution.getActionResultMessage();1089 MessageGeneral executionResultMessage = actionExecution.getExecutionResultMessage();1090 // Iterate Control1091 List<TestCaseStepActionControl> tcsacList = actionExecution.getTestCaseStepAction().getControls();1092 for (TestCaseStepActionControl control : tcsacList) {1093 // Start Execution of TestCAseStepActionControl1094 long startControl = new Date().getTime();1095 DateFormat df = new SimpleDateFormat(DateUtil.DATE_FORMAT_TIMESTAMP);1096 long startLongControl = Long.parseLong(df.format(startControl));1097 // Create and Register TestCaseStepActionControlExecution1098 LOG.debug("Creating TestCaseStepActionControlExecution");1099 TestCaseStepActionControlExecution controlExecution1100 = factoryTestCaseStepActionControlExecution.create(actionExecution.getId(), control.getTest(), control.getTestcase(),1101 control.getStepId(), actionExecution.getIndex(), control.getActionId(), control.getControlId(), control.getSort(),1102 null, null,1103 control.getConditionOperator(), control.getConditionValue1(), control.getConditionValue2(), control.getConditionValue3(), control.getConditionValue1(), control.getConditionValue2(), control.getConditionValue3(),1104 control.getControl(), control.getValue1(), control.getValue2(), control.getValue3(), control.getValue1(), control.getValue2(),1105 control.getValue3(), (control.isFatal() ? "Y" : "N"), startControl, startControl, startLongControl, startLongControl,1106 control.getDescription(), actionExecution, new MessageEvent(MessageEventEnum.CONTROL_PENDING));1107 controlExecution.setConditionOptions(control.getConditionOptionsActive());1108 controlExecution.setOptions(control.getOptionsActive());1109 this.testCaseStepActionControlExecutionService.insertTestCaseStepActionControlExecution(controlExecution, execution.getSecrets());1110 LOG.debug("Executing control : {} type : {}", controlExecution.getControlId(), controlExecution.getControl());1111 // We populate the TestCase Control List1112 actionExecution.addTestCaseStepActionExecutionList(controlExecution);1113 // Evaluate the condition at the control level.1114 AnswerItem<Boolean> conditionAnswer;1115 boolean conditionDecodeError = false;1116 if (!execution.getManualExecution().equals("Y")) {1117 try {1118 answerDecode = variableService.decodeStringCompletly(controlExecution.getConditionVal1(), execution, null, false);1119 controlExecution.setConditionVal1(answerDecode.getItem());1120 if (!(answerDecode.isCodeStringEquals("OK"))) {1121 // If anything wrong with the decode --> we stop here with decode message in the action result.1122 controlExecution.setControlResultMessage(answerDecode.getResultMessage().resolveDescription("FIELD", "Control Condition Value1"));1123 controlExecution.setExecutionResultMessage(new MessageGeneral(answerDecode.getResultMessage().getMessage()));1124 controlExecution.setStopExecution(answerDecode.getResultMessage().isStopTest());1125 controlExecution.setEnd(new Date().getTime());1126 LOG.debug("Control interrupted due to decode 'Control Condition Value1' Error.");1127 conditionDecodeError = true;1128 }1129 } catch (CerberusEventException cex) {1130 LOG.warn(cex);1131 }1132 try {1133 answerDecode = variableService.decodeStringCompletly(controlExecution.getConditionVal2(), execution, null, false);1134 controlExecution.setConditionVal2(answerDecode.getItem());1135 if (!(answerDecode.isCodeStringEquals("OK"))) {1136 // If anything wrong with the decode --> we stop here with decode message in the action result.1137 controlExecution.setControlResultMessage(answerDecode.getResultMessage().resolveDescription("FIELD", "Control Condition Value2"));1138 controlExecution.setExecutionResultMessage(new MessageGeneral(answerDecode.getResultMessage().getMessage()));1139 controlExecution.setStopExecution(answerDecode.getResultMessage().isStopTest());1140 controlExecution.setEnd(new Date().getTime());1141 LOG.debug("Control interrupted due to decode 'Control Condition Value2' Error.");1142 conditionDecodeError = true;1143 }1144 } catch (CerberusEventException cex) {1145 LOG.warn(cex);1146 }1147 try {1148 answerDecode = variableService.decodeStringCompletly(controlExecution.getConditionVal3(), execution, null, false);1149 controlExecution.setConditionVal3(answerDecode.getItem());1150 if (!(answerDecode.isCodeStringEquals("OK"))) {1151 // If anything wrong with the decode --> we stop here with decode message in the action result.1152 controlExecution.setControlResultMessage(answerDecode.getResultMessage().resolveDescription("FIELD", "Control Condition Value3"));1153 controlExecution.setExecutionResultMessage(new MessageGeneral(answerDecode.getResultMessage().getMessage()));1154 controlExecution.setStopExecution(answerDecode.getResultMessage().isStopTest());1155 controlExecution.setEnd(new Date().getTime());1156 LOG.debug("Control interrupted due to decode 'Control Condition Value3' Error.");1157 conditionDecodeError = true;1158 }1159 } catch (CerberusEventException cex) {1160 LOG.warn(cex);1161 }1162 }1163 if (!(conditionDecodeError)) {1164 ConditionOperatorEnum controlConditionOperatorEnum = ConditionOperatorEnum.getConditionOperatorEnumFromString(controlExecution.getConditionOperator());1165 conditionAnswer = this.conditionService.evaluateCondition(controlExecution.getConditionOperator(),1166 controlExecution.getConditionVal1(), controlExecution.getConditionVal2(), controlExecution.getConditionVal3(),1167 execution, controlExecution.getConditionOptions());1168 boolean doExecuteControl = conditionAnswer.getItem();1169 if (execution.getManualExecution().equals("Y") && controlConditionOperatorEnum.isOperatorEvaluationRequired()) {1170 controlExecution.setDescription(controlExecution.getDescription() + " - " + conditionAnswer.getMessageDescription());1171 }1172 // If condition OK or if manual execution, then execute the control1173 if (conditionAnswer.getResultMessage().getMessage().getCodeString().equals("PE")1174 || execution.getManualExecution().equals("Y")) {1175 if (doExecuteControl || execution.getManualExecution().equals("Y")) {1176 // We execute the control1177 controlExecution = executeControl(controlExecution, execution);1178 /*1179 * We update the Action with the execution message and1180 * stop flag from the control. We update the status only1181 * if the control is not OK. This is to prevent moving1182 * the status to OK when it should stay KO when a1183 * control failed previously.1184 */1185 actionExecution.setStopExecution(controlExecution.isStopExecution());1186 if (!(controlExecution.getControlResultMessage().equals(new MessageEvent(MessageEventEnum.CONTROL_SUCCESS)))) {1187 //NA is a special case of not having success while calculating the property; the action shouldn't be stopped1188 if (controlExecution.getControlResultMessage().equals(new MessageEvent(MessageEventEnum.PROPERTY_FAILED_NO_PROPERTY_DEFINITION))) {1189 // restores the messages' information if the property is not defined for the country1190 actionExecution.setActionResultMessage(actionMessage);1191 actionExecution.setExecutionResultMessage(executionResultMessage);1192 } else {1193 actionExecution.setExecutionResultMessage(controlExecution.getExecutionResultMessage());1194 actionExecution.setActionResultMessage(controlExecution.getControlResultMessage());1195 }1196 }1197 //If Control report stopping the testcase, we stop it.1198 if (controlExecution.isStopExecution()) {1199 break;1200 }1201 } else { // We don't execute the control and record a generic execution.1202 //Record Screenshot, PageSource1203 controlExecution.addFileList(recorderService.recordExecutionInformationAfterStepActionAndControl(controlExecution.getTestCaseStepActionExecution(), controlExecution));1204 // Register Control in database1205 LOG.debug("Registering Control : {}", controlExecution.getControlId());1206 // We change the Action message only if the action is not executed due to condition.1207 MessageEvent controlMes = new MessageEvent(MessageEventEnum.CONDITION_TESTCASECONTROL_NOTEXECUTED);1208 controlExecution.setControlResultMessage(controlMes);1209 controlExecution.setReturnMessage(controlExecution.getReturnMessage()1210 .replace("%COND%", controlExecution.getConditionOperator())1211 .replace("%MESSAGE%", conditionAnswer.getResultMessage().getDescription())1212 );1213 controlExecution.setEnd(new Date().getTime());1214 this.testCaseStepActionControlExecutionService.updateTestCaseStepActionControlExecution(controlExecution, execution.getSecrets());1215 LOG.debug("Registered Control");1216 // Websocket --> we refresh the corresponding Detail Execution pages attached to this execution.1217 updateExecutionWebSocketOnly(execution, false);1218 }1219 } else {1220 // Error when performing the condition evaluation. We force no execution (false)1221 MessageGeneral mes = new MessageGeneral(MessageGeneralEnum.EXECUTION_FA_CONDITION);1222 mes.setDescription(mes.getDescription()1223 .replace("%COND%", controlExecution.getConditionOperator())1224 .replace("%AREA%", "control ")1225 .replace("%MES%", conditionAnswer.getResultMessage().getDescription()));1226 controlExecution.setExecutionResultMessage(mes);1227 actionExecution.setExecutionResultMessage(mes);1228 controlExecution.setControlResultMessage(new MessageEvent(MessageEventEnum.CONDITION_TESTCASECONTROL_FAILED)1229 .resolveDescription("AREA", "")1230 .resolveDescription("COND", controlExecution.getConditionOperator())1231 .resolveDescription("MESSAGE", conditionAnswer.getResultMessage().getDescription()));1232 actionExecution.setActionResultMessage(new MessageEvent(MessageEventEnum.CONDITION_TESTCASEACTION_FAILED)1233 .resolveDescription("AREA", "control ")1234 .resolveDescription("COND", controlExecution.getConditionOperator())1235 .resolveDescription("MESSAGE", conditionAnswer.getResultMessage().getDescription()));1236 controlExecution.setEnd(new Date().getTime());1237 this.testCaseStepActionControlExecutionService.updateTestCaseStepActionControlExecution(controlExecution, execution.getSecrets());1238 LOG.debug("Control interrupted due to condition error.");1239 // We stop any further Control execution.1240 break;1241 }1242 } else {1243 controlExecution.setEnd(new Date().getTime());1244 actionExecution.setExecutionResultMessage(controlExecution.getExecutionResultMessage());1245 actionExecution.setActionResultMessage(controlExecution.getControlResultMessage());1246 this.testCaseStepActionControlExecutionService.updateTestCaseStepActionControlExecution(controlExecution, execution.getSecrets());1247 LOG.debug("Registered Control");1248 // Websocket --> we refresh the corresponding Detail Execution pages attached to this execution.1249 updateExecutionWebSocketOnly(execution, false);1250 }1251 // log TestCaseStepActionControlExecution1252 if ((execution.getVerbose() > 0) && parameterService.getParameterBooleanByKey("cerberus_executionlog_enable", execution.getSystem(), false)) {1253 LOG.info(controlExecution.toJson(false, true, execution.getSecrets()));1254 }1255 }1256 /*1257 * All controls of the actions are done. We now put back the1258 * AppTypeEngine value to the one from the application. and also put1259 * back the last service called content and format.1260 */1261 execution.setAppTypeEngine(execution.getApplicationObj().getType());1262 if (execution.getLastServiceCalled() != null) {1263 execution.getLastServiceCalled().setResponseHTTPBody(execution.getOriginalLastServiceCalled());1264 execution.getLastServiceCalled().setResponseHTTPBodyContentType(execution.getOriginalLastServiceCalledContent());1265 execution.getLastServiceCalled().setRecordTraceFile(true);1266 }1267 // Websocket --> we refresh the corresponding Detail Execution pages attached to this execution.1268 updateExecutionWebSocketOnly(execution, false);1269 LOG.debug("Finished execute Action : {}", actionExecution.getAction());1270 return actionExecution;1271 }1272 private TestCaseStepActionControlExecution executeControl(TestCaseStepActionControlExecution controlExecution, TestCaseExecution execution) {1273 // If execution is not manual, do control and record files1274 if (!execution.getManualExecution().equals("Y")) {1275 controlExecution = this.controlService.doControl(controlExecution);1276 // Record Screenshot, PageSource1277 controlExecution.addFileList(recorderService.recordExecutionInformationAfterStepActionAndControl(controlExecution.getTestCaseStepActionExecution(), controlExecution));1278 } else {1279 // If execution manual, set Control result message as notExecuted1280 controlExecution.setControlResultMessage(new MessageEvent(MessageEventEnum.CONTROL_WAITINGEXECUTION));1281 controlExecution.setExecutionResultMessage(new MessageGeneral(MessageGeneralEnum.EXECUTION_WE));1282 controlExecution.setEnd(new Date().getTime());1283 }1284 // Register Control in database1285 LOG.debug("Registering Control : {}", controlExecution.getControlId());1286 this.testCaseStepActionControlExecutionService.updateTestCaseStepActionControlExecution(controlExecution, execution.getSecrets());1287 LOG.debug("Registered Control");1288 // Websocket --> we refresh the corresponding Detail Execution pages attached to this execution.1289 updateExecutionWebSocketOnly(execution, false);1290 return controlExecution;1291 }1292 private TestCaseExecution stopExecutionRobotAndProxy(TestCaseExecution execution) {1293 switch (execution.getApplicationObj().getType()) {1294 case Application.TYPE_GUI:1295 case Application.TYPE_APK:1296 case Application.TYPE_IPA:1297 try {1298 this.robotServerService.stopServer(execution);1299 LOG.debug("Stop server for execution {}", execution.getId());1300 } catch (WebDriverException exception) {1301 LOG.warn("Selenium/Appium didn't manage to close connection for execution {}", execution.getId(), exception);1302 }1303 break;1304 case Application.TYPE_FAT:1305 LOG.debug("Stop Sikuli server for execution {} closing application {}", execution.getId(), execution.getCountryEnvironmentParameters().getIp());1306 if (!StringUtil.isNullOrEmpty(execution.getCountryEnvironmentParameters().getIp())) {...
stopExecutionRobotAndProxy
Using AI Code Generation
1import org.cerberus.engine.execution.impl.ExecutionRunService;2ExecutionRunService stopExecutionRobotAndProxy = new ExecutionRunService();3stopExecutionRobotAndProxy.stopExecutionRobotAndProxy();4stopExecutionRobotAndProxy.stopExecutionRobotAndProxy();5stopExecutionRobotAndProxy.stopExecutionRobot();6stopExecutionRobotAndProxy.stopExecutionProxy();7stopExecutionRobotAndProxy.isRobotRunning();8stopExecutionRobotAndProxy.isProxyRunning();9stopExecutionRobotAndProxy.isRobotAndProxyRunning();10stopExecutionRobotAndProxy.isRobotAndProxyNotRunning();11stopExecutionRobotAndProxy.isRobotAndProxyRunning();12stopExecutionRobotAndProxy.isRobotAndProxyNotRunning();13stopExecutionRobotAndProxy.isRobotRunning();14stopExecutionRobotAndProxy.isProxyRunning();15stopExecutionRobotAndProxy.isRobotAndProxyRunning();16stopExecutionRobotAndProxy.isRobotAndProxyNotRunning();17stopExecutionRobotAndProxy.isRobotAndProxyRunning();18stopExecutionRobotAndProxy.isRobotAndProxyNotRunning();19stopExecutionRobotAndProxy.isRobotRunning();20stopExecutionRobotAndProxy.isProxyRunning();21stopExecutionRobotAndProxy.isRobotAndProxyRunning();22stopExecutionRobotAndProxy.isRobotAndProxyNotRunning();23stopExecutionRobotAndProxy.isRobotAndProxyRunning();24stopExecutionRobotAndProxy.isRobotAndProxyNotRunning();25stopExecutionRobotAndProxy.isRobotRunning();
stopExecutionRobotAndProxy
Using AI Code Generation
1import org.cerberus.engine.execution.impl.ExecutionRunService;2import org.cerberus.engine.execution.impl.ExecutionRunService;3import org.cerberus.engine.execution.impl.ExecutionRunService;4public class StopExecution {5 public void stopExecution() {6 ExecutionRunService executionRunService = new ExecutionRunService();7 executionRunService.stopExecutionRobotAndProxy();8 }9}10import org.cerberus.engine.execution.impl.ExecutionRunService;11import org.cerberus.engine.execution.impl.ExecutionRunService;12import org.cerberus.engine.execution.impl.ExecutionRunService;13public class EventListener implements ITestListener {14 public void onTestFailure(ITestResult result) {15 StopExecution stopExecution = new StopExecution();16 stopExecution.stopExecution();17 }18}19import org.cerberus.engine.execution.impl.ExecutionRunService;20import org.cerberus.engine.execution.impl.ExecutionRunService;21import org.cerberus.engine.execution.impl.ExecutionRunService;22public class EventListener implements ITestListener {23 public void onTestFailure(ITestResult result) {24 StopExecution stopExecution = new StopExecution();25 stopExecution.stopExecution();26 }27}28import org.cerberus.engine.execution.impl.ExecutionRunService;29import org.cerberus.engine.execution.impl.ExecutionRunService;30import org.cerberus.engine.execution.impl.ExecutionRunService;31public class EventListener implements ITestListener {32 public void onTestFailure(ITestResult result) {33 StopExecution stopExecution = new StopExecution();34 stopExecution.stopExecution();35 }36}37import org.cerberus.engine.execution.impl.ExecutionRunService;38import org.cerberus.engine.execution.impl.ExecutionRunService;39import org.cerberus.engine.execution.impl.ExecutionRunService;40public class EventListener implements ITestListener {41 public void onTestFailure(ITestResult result) {
stopExecutionRobotAndProxy
Using AI Code Generation
1import org.cerberus.engine.entity.MessageGeneral;2import org.cerberus.engine.execution.impl.ExecutionRunService;3import org.cerberus.engine.execution.impl.TestCasesService;4import org.cerberus.engine.execution.impl.TestCaseExecutionService;5import org.cerberus.engine.execution.impl.TestCaseStepActionExecutionService;6import org.cerberus.engine.execution.impl.TestCaseStepExecutionService;7import org.cerberus.engine.execution.impl.TestService;8import org.cerberus.engine.execution.impl.TestCaseExecutionHttpService;9import org.cerberus.engine.execution.impl.TestCaseExecutionInQueueService;10import org.cerberus.engine.execution.impl.TestCaseExecutionService;11import org.cerberus.engine.execution.impl.TestCaseStepActionExecutionService;12import org.cerberus.engine.execution.impl.TestCaseStepExecutionService;13import org.cerberus.engine.execution.impl.TestService;14import org.cerberus.engine.execution.impl.TestSuiteExecutionService;15import org.cerberus.engine.execution.impl.TestSuiteService;16import org.cerberus.engine.execution.impl.TestCaseExecutionHttpService;17import org.cerberus.engine.execution.impl.TestCaseExecutionInQueueService;18import org.cerberus.engine.execution.impl.TestCaseExecutionService;19import org.cerberus.engine.execution.impl.TestCaseStepActionExecutionService;20import org.cerberus.engine.execution.impl.TestCaseStepExecutionService;21import org.cerberus.engine.execution.impl.TestService;22import org.cerberus.engine.execution.impl.TestSuiteExecutionService;23import org.cerberus.engine.execution.impl.TestSuiteService;24import org.cerberus.engine.execution.impl.TestCaseExecutionHttpService;25import org.cerberus.engine.execution.impl.TestCaseExecutionInQueueService;26import org.cerberus.engine.execution.impl.TestCaseExecutionService;27import org.cerberus.engine.execution.impl.TestCaseStepActionExecutionService;28import org.cerberus.engine.execution.impl.TestCaseStepExecutionService;29import org.cerberus.engine.execution.impl.TestService;30import org.cerberus.engine.execution.impl.TestSuiteExecutionService;31import org.cerberus.engine.execution.impl.TestSuiteService;32import org.cerberus.engine.execution.impl.TestCaseExecutionHttpService;33import org.cerberus.engine.execution.impl.TestCaseExecutionInQueueService;34import org.cerberus.engine.execution.impl.TestCase
stopExecutionRobotAndProxy
Using AI Code Generation
1import org.cerberus.engine.execution.impl.ExecutionRunService;2import org.cerberus.engine.execution.impl.StopRobotAndProxyException;3try{4 ExecutionRunService stopExecutionRobotAndProxy = new ExecutionRunService();5 stopExecutionRobotAndProxy.stopExecutionRobotAndProxy();6}catch(StopRobotAndProxyException e){7}8import org.cerberus.engine.execution.impl.ExecutionRunService;9import org.cerberus.engine.execution.impl.StopRobotAndProxyException;10try{11 ExecutionRunService stopExecutionRobotAndProxy = new ExecutionRunService();12 stopExecutionRobotAndProxy.stopExecutionRobotAndProxy();13}catch(StopRobotAndProxyException e){14}15import org.cerberus.engine.execution.impl.ExecutionRunService;16import org.cerberus.engine.execution.impl.StopRobotAndProxyException;17try{18 ExecutionRunService stopExecutionRobotAndProxy = new ExecutionRunService();19 stopExecutionRobotAndProxy.stopExecutionRobotAndProxy();20}catch(StopRobotAndProxyException e){21}22import org.cerberus.engine.execution.impl.ExecutionRunService;23import org.cerberus.engine.execution.impl.StopRobotAndProxyException;24try{25 ExecutionRunService stopExecutionRobotAndProxy = new ExecutionRunService();
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!