How to use TestCaseExecutionQueueToTreat class of org.cerberus.engine.queuemanagement.entity package

Best Cerberus-source code snippet using org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat

Source:ExecutionThreadPoolService.java Github

copy

Full Screen

...31import org.cerberus.crud.entity.RobotExecutor;32import org.cerberus.crud.factory.IFactoryRobotExecutor;33import org.cerberus.crud.service.IInvariantService;34import org.cerberus.engine.execution.IRetriesService;35import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;36import org.cerberus.crud.service.IMyVersionService;37import org.cerberus.crud.service.IParameterService;38import org.cerberus.crud.service.IRobotExecutorService;39import org.cerberus.crud.service.IRobotService;40import org.cerberus.crud.service.ITestCaseExecutionQueueDepService;41import org.cerberus.crud.service.ITestCaseExecutionQueueService;42import org.cerberus.engine.queuemanagement.IExecutionThreadPoolService;43import org.cerberus.exception.CerberusException;44import org.cerberus.util.ParameterParserUtil;45import org.cerberus.util.StringUtil;46import org.cerberus.util.answer.AnswerList;47import org.springframework.beans.factory.annotation.Autowired;48import org.springframework.scheduling.annotation.Async;49import org.springframework.stereotype.Service;50/**51 * {@link IExecutionThreadPoolService} default implementation52 *53 * @author bcivel54 * @author abourdon55 */56@Service57public class ExecutionThreadPoolService implements IExecutionThreadPoolService {58 private static final Logger LOG = LogManager.getLogger(ExecutionThreadPoolService.class);59 private static final String CONST_SEPARATOR = "////";60 private boolean instanceActive = true;61 @Autowired62 private ITestCaseExecutionQueueService tceiqService;63 @Autowired64 private IParameterService parameterService;65 @Autowired66 private IInvariantService invariantService;67 @Autowired68 private IMyVersionService myVersionService;69 @Autowired70 ExecutionQueueThreadPool threadQueuePool;71 @Autowired72 private ITestCaseExecutionQueueService queueService;73 @Autowired74 private ITestCaseExecutionQueueDepService queueDepService;75 @Autowired76 private IRetriesService retriesService;77 @Autowired78 private IRobotExecutorService robotExecutorService;79 @Autowired80 private IRobotService robotService;81 @Autowired82 private IFactoryRobotExecutor factoryRobotExecutor;83 @Override84 public boolean isInstanceActive() {85 return instanceActive;86 }87 @Override88 public void setInstanceActive(boolean instanceActive) {89 this.instanceActive = instanceActive;90 }91 @Override92 public HashMap<String, Integer> getCurrentlyRunning() throws CerberusException {93 AnswerList<TestCaseExecutionQueueToTreat> answer = new AnswerList<>();94 HashMap<String, Integer> constrains_current = new HashMap<>();95 // Getting all executions already running in the queue.96 answer = tceiqService.readQueueRunning();97 List<TestCaseExecutionQueueToTreat> executionsRunning = answer.getDataList();98 // Calculate constrain values.99 for (TestCaseExecutionQueueToTreat exe : executionsRunning) {100 String const01_key = TestCaseExecutionQueueToTreat.CONSTRAIN1_GLOBAL;101 String const02_key = TestCaseExecutionQueueToTreat.CONSTRAIN2_APPLIENV + CONST_SEPARATOR + exe.getSystem() + CONST_SEPARATOR + exe.getEnvironment() + CONST_SEPARATOR + exe.getCountry() + CONST_SEPARATOR + exe.getApplication();102 String const03_key = TestCaseExecutionQueueToTreat.CONSTRAIN3_APPLICATION + CONST_SEPARATOR + exe.getApplication();103 String const04_key = TestCaseExecutionQueueToTreat.CONSTRAIN4_ROBOT + CONST_SEPARATOR + exe.getSelectedRobotHost();104 if (constrains_current.containsKey(const01_key)) {105 constrains_current.put(const01_key, constrains_current.get(const01_key) + 1);106 } else {107 constrains_current.put(const01_key, 1);108 }109 if (constrains_current.containsKey(const02_key)) {110 constrains_current.put(const02_key, constrains_current.get(const02_key) + 1);111 } else {112 constrains_current.put(const02_key, 1);113 }114 if (constrains_current.containsKey(const03_key)) {115 constrains_current.put(const03_key, constrains_current.get(const03_key) + 1);116 } else {117 constrains_current.put(const03_key, 1);118 }119 if (constrains_current.containsKey(const04_key)) {120 constrains_current.put(const04_key, constrains_current.get(const04_key) + 1);121 } else {122 constrains_current.put(const04_key, 1);123 }124 }125 return constrains_current;126 }127 @Override128 public HashMap<String, Integer> getCurrentlyPoolSizes() throws CerberusException {129 AnswerList<TestCaseExecutionQueueToTreat> answer = new AnswerList<>();130 HashMap<String, Integer> constrains_current = new HashMap<>();131 String const01_key = TestCaseExecutionQueueToTreat.CONSTRAIN1_GLOBAL;132 int poolSizeGeneral = parameterService.getParameterIntegerByKey("cerberus_queueexecution_global_threadpoolsize", "", 12);133 int poolSizeRobot = parameterService.getParameterIntegerByKey("cerberus_queueexecution_defaultrobothost_threadpoolsize", "", 10);134 constrains_current.put(const01_key, poolSizeGeneral);135 // Getting RobotHost PoolSize136 HashMap<String, Integer> robot_poolsize = new HashMap<String, Integer>();137 robot_poolsize = invariantService.readToHashMapGp1IntegerByIdname("ROBOTHOST", poolSizeRobot);138 // Getting all executions to be treated.139 answer = tceiqService.readQueueToTreatOrRunning();140 List<TestCaseExecutionQueueToTreat> executionsToTreat = answer.getDataList();141 // Calculate constrain values.142 for (TestCaseExecutionQueueToTreat exe : executionsToTreat) {143 String const02_key = TestCaseExecutionQueueToTreat.CONSTRAIN2_APPLIENV + CONST_SEPARATOR + exe.getSystem() + CONST_SEPARATOR + exe.getEnvironment() + CONST_SEPARATOR + exe.getCountry() + CONST_SEPARATOR + exe.getApplication();144 String const03_key = TestCaseExecutionQueueToTreat.CONSTRAIN3_APPLICATION + CONST_SEPARATOR + exe.getApplication();145 String const04_key = TestCaseExecutionQueueToTreat.CONSTRAIN4_ROBOT + CONST_SEPARATOR + exe.getSelectedRobotHost();146 constrains_current.put(const02_key, exe.getPoolSizeAppEnvironment());147 constrains_current.put(const03_key, exe.getPoolSizeApplication());148 // Getting Robot Host PoolSize from invariant hashmap.149 int robot_poolsize_final = 0;150 if (!StringUtil.isNullOrEmpty(exe.getSelectedRobotHost())) {151 if (robot_poolsize.containsKey(exe.getSelectedRobotHost())) {152 robot_poolsize_final = ParameterParserUtil.parseIntegerParam(robot_poolsize.get(exe.getSelectedRobotHost()), poolSizeRobot);153 } else {154 robot_poolsize_final = poolSizeRobot;155 }156 }157 constrains_current.put(const04_key, robot_poolsize_final);158 }159 return constrains_current;160 }161 @Override162 public HashMap<String, Integer> getCurrentlyToTreat() throws CerberusException {163 AnswerList<TestCaseExecutionQueueToTreat> answer = new AnswerList<>();164 HashMap<String, Integer> constrains_current = new HashMap<String, Integer>();165 // Getting all executions to be treated.166 answer = tceiqService.readQueueToTreat();167 List<TestCaseExecutionQueueToTreat> executionsToTreat = answer.getDataList();168 // Calculate constrain values.169 for (TestCaseExecutionQueueToTreat exe : executionsToTreat) {170 String const01_key = TestCaseExecutionQueueToTreat.CONSTRAIN1_GLOBAL;171 String const02_key = TestCaseExecutionQueueToTreat.CONSTRAIN2_APPLIENV + CONST_SEPARATOR + exe.getSystem() + CONST_SEPARATOR + exe.getEnvironment() + CONST_SEPARATOR + exe.getCountry() + CONST_SEPARATOR + exe.getApplication();172 String const03_key = TestCaseExecutionQueueToTreat.CONSTRAIN3_APPLICATION + CONST_SEPARATOR + exe.getApplication();173 String const04_key = TestCaseExecutionQueueToTreat.CONSTRAIN4_ROBOT + CONST_SEPARATOR + exe.getQueueRobotHost();174 if (constrains_current.containsKey(const01_key)) {175 constrains_current.put(const01_key, constrains_current.get(const01_key) + 1);176 } else {177 constrains_current.put(const01_key, 1);178 }179 if (constrains_current.containsKey(const02_key)) {180 constrains_current.put(const02_key, constrains_current.get(const02_key) + 1);181 } else {182 constrains_current.put(const02_key, 1);183 }184 if (constrains_current.containsKey(const03_key)) {185 constrains_current.put(const03_key, constrains_current.get(const03_key) + 1);186 } else {187 constrains_current.put(const03_key, 1);188 }189 if (constrains_current.containsKey(const04_key)) {190 constrains_current.put(const04_key, constrains_current.get(const04_key) + 1);191 } else {192 constrains_current.put(const04_key, 1);193 }194 }195 return constrains_current;196 }197 /**198 * {@inheritDoc}199 */200 @Override201 public void executeNextInQueue(boolean forceExecution) throws CerberusException {202 if (!instanceActive) {203 LOG.warn("Queue execution disable on that JVM instance.");204 return;205 }206 // Job can be desactivated by parameter.207 if (!(parameterService.getParameterBooleanByKey("cerberus_queueexecution_enable", "", true))) {208 LOG.debug("Queue_Processing_Job disabled by parameter : 'cerberus_queueexecution_enable'.");209 return;210 }211 // We first check that another thread of Cerberus already trigger the job. Only 1 instance of the job is necessary.212 if (!(myVersionService.getMyVersionStringByKey("queueprocessingjobrunning", "N").equals("Y"))213 || forceExecution) {214 // Flag in database that job is already running.215 if (myVersionService.flagMyVersionString("queueprocessingjobrunning") || forceExecution) {216 // Saving the timestamps when the job start in database.217 myVersionService.updateMyVersionString("queueprocessingjobstart", String.valueOf(new Date()));218 if (forceExecution) {219 LOG.debug("Forcing Start of Queue_Processing_Job.");220 }221 int nbqueuedexe = 0;222 // We try to submit new jobs until the job does not trigger any new execution.223 // In Other Words : As long as the job trigger new execution, we execute it.224 do {225 if (!(parameterService.getParameterBooleanByKey("cerberus_queueexecution_enable", "", true))) {226 LOG.debug("Queue_Processing_Job disabled by parameter : 'cerberus_queueexecution_enable'.");227 return;228 }229 nbqueuedexe = 0;230 // Job is not already running, we can trigger it.231 LOG.debug("Starting Queue_Processing_Job.");232 // Getting all executions to be treated.233 AnswerList<TestCaseExecutionQueueToTreat> answer = new AnswerList<>();234 answer = tceiqService.readQueueToTreat();235 List<TestCaseExecutionQueueToTreat> executionsInQueue = answer.getDataList();236 int poolSizeGeneral = 12;237 int poolSizeRobot = 10;238 int queueTimeout = 600000;239 // Init constrain counter (from list of already running execution.).240 int const01_current = 0;241 int const02_current = 0;242 int const03_current = 0;243 int const04_current = 0;244 HashMap<String, Integer> constrains_current = new HashMap<>();245 HashMap<String, Integer> robothost_poolsize = new HashMap<>();246 HashMap<String, List<RobotExecutor>> robot_executor = new HashMap<>();247 HashMap<String, Robot> robot_header = new HashMap<>();248 if (!executionsInQueue.isEmpty()) {249 poolSizeGeneral = parameterService.getParameterIntegerByKey("cerberus_queueexecution_global_threadpoolsize", "", 12);250 poolSizeRobot = parameterService.getParameterIntegerByKey("cerberus_queueexecution_defaultrobothost_threadpoolsize", "", 10);251 queueTimeout = parameterService.getParameterIntegerByKey("cerberus_queueexecution_timeout", "", 600000);252 // Init constrain counter (from list of already running execution.).253 const01_current = 0;254 const02_current = 0;255 const03_current = 0;256 const04_current = 0;257 constrains_current = getCurrentlyRunning();258 LOG.debug("Current Constrains : " + constrains_current);259 // Getting RobotHost PoolSize260 robothost_poolsize = invariantService.readToHashMapGp1IntegerByIdname("ROBOTHOST", poolSizeRobot);261 // Getting the list of robot in scope of the queue entries. This is to avoid getting all robots from database.262 LOG.debug("Getting List of Robot Executor.");263 for (TestCaseExecutionQueueToTreat exe : executionsInQueue) {264 if (!StringUtil.isNullOrEmpty(exe.getQueueRobot())) {265 robot_executor.put(exe.getQueueRobot(), new ArrayList<>());266 }267 }268 LOG.debug("List of Robot from Queue entries : " + robot_executor);269 robot_executor = robotExecutorService.getExecutorListFromRobotHash(robot_executor);270 LOG.debug("Robot Executor List : " + robot_executor);271 LOG.debug("Getting List of Robot (Header).");272 List<String> listRobotS = new ArrayList<>();273 for (Map.Entry<String, List<RobotExecutor>> entry : robot_executor.entrySet()) {274 String key = entry.getKey();275 listRobotS.add(key);276 }277 robot_header = robotService.readToHashMapByRobotList(listRobotS);278 LOG.debug("Robot Header List : " + robot_header);279 }280 String robot = "";281 String robotExecutor = "";282 String robotHost = "";283 String robotPort = "";284 String appType = "";285 List<RobotExecutor> tmpExelist = new ArrayList<>();286 List<RobotExecutor> newTmpExelist = new ArrayList<>();287 // Analysing each execution in the database queue.288 for (TestCaseExecutionQueueToTreat exe : executionsInQueue) {289 LOG.debug("Starting analysing : " + exe.getId());290 String notTriggeredExeMessage = "";291 boolean triggerExe = false;292 robot = exe.getQueueRobot();293 // Getting here the list of possible executor sorted by prio.294 List<RobotExecutor> exelist = new ArrayList<>();295 appType = exe.getAppType();296 if ((appType.equals(Application.TYPE_APK)) || (appType.equals(Application.TYPE_GUI)) || (appType.equals(Application.TYPE_FAT)) || (appType.equals(Application.TYPE_IPA))) {297 // Application require a robot so we can get the list of executors.298 if (StringUtil.isNullOrEmpty(robot)) {299 exelist = new ArrayList<>();300 exelist.add(factoryRobotExecutor.create(0, "", "", "Y", 1, exe.getQueueRobotHost(), exe.getQueueRobotPort(), "", "", "", "", null, "", 0, "", 0, "", "", "", null, "", null));301 } else {302 exelist = robot_executor.get(robot);303 if (exelist == null || exelist.size() < 1) {304 exelist = new ArrayList<>();305 exelist.add(factoryRobotExecutor.create(0, "", "", "Y", 1, "", "", "", "", "", "", null, "", 0, "", 0, "", "", "", null, "", null));306 }307 }308 } else {309 // Application does not require a robot so we create a fake one with empty data.310 exelist = new ArrayList<>();311 exelist.add(factoryRobotExecutor.create(0, "", "", "Y", 1, "", "", "", "", "", "", null, "", 0, "", 0, "", "", "", null, "", null));312 }313 // Looping other every potential executor on the corresponding robot.314 for (RobotExecutor robotExecutor1 : exelist) {315 robotHost = robotExecutor1.getHost();316 robotPort = robotExecutor1.getPort();317 robotExecutor = robotExecutor1.getExecutor();318 LOG.debug("Trying with : " + robotHost + " Port : " + robotPort + " From Robot/Executor : " + robotExecutor1.getRobot() + "/" + robotExecutor1.getExecutor());319 // RobotHost PoolSize if retreived from invariant hashmap.320 int robothost_poolsize_final = 0;321 if (!StringUtil.isNullOrEmpty(robotHost)) {322 if (robothost_poolsize.containsKey(robotHost)) {323 robothost_poolsize_final = ParameterParserUtil.parseIntegerParam(robothost_poolsize.get(robotHost), poolSizeRobot);324 } else {325 robothost_poolsize_final = poolSizeRobot;326 }327 }328 LOG.debug("Pool Values : poolGen " + poolSizeGeneral + " poolApp " + exe.getPoolSizeAppEnvironment() + " poolRobotHost " + robothost_poolsize_final);329 String const01_key = TestCaseExecutionQueueToTreat.CONSTRAIN1_GLOBAL;330 String const02_key = TestCaseExecutionQueueToTreat.CONSTRAIN2_APPLIENV + CONST_SEPARATOR + exe.getSystem() + CONST_SEPARATOR + exe.getEnvironment() + CONST_SEPARATOR + exe.getCountry() + CONST_SEPARATOR + exe.getApplication();331 String const03_key = TestCaseExecutionQueueToTreat.CONSTRAIN3_APPLICATION + CONST_SEPARATOR + exe.getApplication();332 String const04_key = TestCaseExecutionQueueToTreat.CONSTRAIN4_ROBOT + CONST_SEPARATOR + robotHost;333 // Eval Constrain 1334 if (constrains_current.containsKey(const01_key)) {335 const01_current = constrains_current.get(const01_key);336 } else {337 const01_current = 0;338 }339 // Eval Constrain 1340 boolean constMatch01;341 if (poolSizeGeneral == 0) {342 // if poolsize == 0, this means no constrain specified.343 constMatch01 = false;344 } else {345 constMatch01 = (const01_current >= poolSizeGeneral);346 }...

Full Screen

Full Screen

TestCaseExecutionQueueToTreat

Using AI Code Generation

copy

Full Screen

1import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;2import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;3import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;4import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;5import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;6import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;7import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;8import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;9import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;10import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;11import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;12import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;13import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;14import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;15import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;16import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;17import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;18import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;19import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;20import org.cerberus.engine.queuemanagement.entity.TestCase

Full Screen

Full Screen

TestCaseExecutionQueueToTreat

Using AI Code Generation

copy

Full Screen

1package org.cerberus.engine.queuemanagement.service.impl;2import java.util.List;3import org.cerberus.engine.queuemanagement.dao.ITestCaseExecutionQueueToTreatDAO;4import org.cerberus.engine.queuemanagement.entity.TestCaseExecutionQueueToTreat;5import org.cerberus.engine.queuemanagement.service.ITestCaseExecutionQueueToTreatService;6import org.springframework.beans.factory.annotation.Autowired;7import org.springframework.stereotype.Service;8public class TestCaseExecutionQueueToTreatService implements ITestCaseExecutionQueueToTreatService {9 private ITestCaseExecutionQueueToTreatDAO testCaseExecutionQueueToTreatDAO;10 public TestCaseExecutionQueueToTreat findTestCaseExecutionQueueToTreatByKey(long id) {11 return testCaseExecutionQueueToTreatDAO.findTestCaseExecutionQueueToTreatByKey(id);12 }13 public List<TestCaseExecutionQueueToTreat> findAllTestCaseExecutionQueueToTreat() {14 return testCaseExecutionQueueToTreatDAO.findAllTestCaseExecutionQueueToTreat();15 }16 public void insertTestCaseExecutionQueueToTreat(TestCaseExecutionQueueToTreat testCaseExecutionQueueToTreat) {17 testCaseExecutionQueueToTreatDAO.insertTestCaseExecutionQueueToTreat(testCaseExecutionQueueToTreat);18 }19 public void updateTestCaseExecutionQueueToTreat(TestCaseExecutionQueueToTreat testCaseExecutionQueueToTreat) {20 testCaseExecutionQueueToTreatDAO.updateTestCaseExecutionQueueToTreat(testCaseExecutionQueueToTreat);21 }22 public void deleteTestCaseExecutionQueueToTreat(TestCaseExecutionQueueToTreat testCaseExecutionQueueToTreat) {

Full Screen

Full Screen

TestCaseExecutionQueueToTreat

Using AI Code Generation

copy

Full Screen

1public class TestCaseExecutionQueueToTreat {2 private long id;3 private long testCaseExecutionId;4 private String country;5 private String environment;6 private String robot;7 private String robotExecutor;8 private String robotDecli;9 private String robotHost;10 private String robotPort;11 private String robotPlatform;12 private String robotBrowser;13 private String robotVersion;14 private String robotDevice;15 private String robotBrowserSize;16 private String robotScreenSize;17 private String robotCapabilities;18 private String robotProxyHost;19 private String robotProxyPort;20 private String robotProxyUser;21 private String robotProxyPassword;22 private String robotTimeout;23 private String robotUrl;24 private String robotUrlLoginRelative;25 private String robotUrlLogin;26 private String robotUrlIndex;27 private String robotUrlLogout;28 private String robotUrlService;29 private String robotUrlServiceV001;30 private String robotUrlGetJsonFromWebElement;31 private String robotUrlGetPngFromWebElement;32 private String robotUrlGetSource;33 private String robotUrlGetPageSource;34 private String robotUrlGetLog;35 private String robotUrlDoSikuliAction;36 private String robotUrlDoSikuliElement;37 private String robotUrlDoSikuliElementExists;38 private String robotUrlDoSikuliElementNotExists;39 private String robotUrlDoSikuliText;40 private String robotUrlDoSikuliTextExists;41 private String robotUrlDoSikuliTextNotExists;42 private String robotUrlDoSikuliElementRegion;43 private String robotUrlDoSikuliElementRegionExists;44 private String robotUrlDoSikuliElementRegionNotExists;45 private String robotUrlDoSikuliTextRegion;46 private String robotUrlDoSikuliTextRegionExists;47 private String robotUrlDoSikuliTextRegionNotExists;48 private String robotUrlDoSikuliPattern;49 private String robotUrlDoSikuliPatternExists;50 private String robotUrlDoSikuliPatternNotExists;51 private String robotUrlDoSikuliPatternRegion;52 private String robotUrlDoSikuliPatternRegionExists;53 private String robotUrlDoSikuliPatternRegionNotExists;54 private String robotUrlDoSikuliElementRegionClick;55 private String robotUrlDoSikuliElementRegionDoubleClick;

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful