Challenge Overview

Context

Project Context

Our client currently has the automation of scripts which are built with "Selenium grid & node".
As the test suite becomes bigger, time taken to execute the automation scripts correspondingly increases. It also leads to higher cost & scalability challenges.
The client needs a solution using technologies like serverless cloud services, to execute parallel threads with higher performance and lower effective cost.
The project is to build a Serverless Architecture, to improve the speed of execution and reduce overall cost for Automation Scripts.

Challenge Context

In this challenge, we will create one PoC which will be explained in detail below.

Expected Outcome

  • PoC

Challenge Details

Technology Stack

Individual Requirements

Previous PoC codebase (from challenge www.topcoder.com/challenges/30130655/) and new test codebase are shared in the forum.

In previous PoC codebase, there are two folders: lambda-selenium-test and lambda-selenium-wrapper.
lambda-selenium-test creates jar file, which calls chromedrive, run the tests and is called in aws lambda. It is similar to the test codebase provided in this challenge.
lambda-selenium-wrapper creates labmda function and it calls the Jar file.

In the new test codebase, you will find one test suite, which includes three test cases.
In order to run the codebase, we need to be build a jar (including all necessary libraries) and run java -jar x.jar ETRSuite1.xml
The xml defines which test cases will run. There is one POC.jar in the root but it only works in Windows.

In this challenge, lambda-selenium-test is not needed.

We need to:

First, make the test codebase runable in Linux.

Second, update the test codebase, find a way to detect all test suites and test cases. When providing an argument: number of lambdas, it generates several XML files mentioned above so that all test cases will run evenly.
This could be done by extending existing main method so that we could call jar file with argument, or by adding maven command.

Third, create one script with bash, python or Java. The script should be able to accepts the location of the test codebase, the location of the wrapper codebase and number of lambda will use.
It will
  • build jar from the test codebase
  • call the test codebase (or jar file) with argument to generate all xml files
  • upload all xml files and jar file to s3
  • create/update lambda with wrapper codebase
  • call the lambda with different inputs (xml files)

Note:

  • Current test code runs in windows only, you need to make sure it's workable in Linux.
  • There would be more than one test files.

 



Final Submission Guidelines

PoC codebase, with README including detail requirements, how to run and verification guide.

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30134039