Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge Overview

Welcome to the Performance Automation Framework - Scripted Flow Challenge

Your task in this challenge is to implement one Java CLI tool - scripted flow execution script.

 

Project Information

We are building several tools in this project to test application performance by loading the target application in various browsers and reporting various metrics (lighthouse and web vitals). We will be developing three java tools:

  1. Control script

  2. Simple flow utility

  3. Scripted flow utility

Control script will be a CLI tool that takes an xls file as input and calls the simple or scripted flow tools for each row in the spreadsheet (already done).

Simple flow tool will take another excel as input with list of sites that need to be loaded and will report the load performance data (already done).

Scripted flow tool will also take an xls input file and load target sites (same as simple flow), but will also have options to do various operations on the site (using selenium), like entering data in forms, click on elements, wait for operations to complete etc, and finally report the performance data.

 

Control script will be executed either locally, or from a Jenkins job (defining the Jenkins job template is in scope of the project).

Technology stack

  • Java

  • Selenium

 

Assets

Controller script excel and simple&scripted flow excel files are posted in the forums.

 

Task Details

You have two tasks in this challenge:

  1. Build the scripted flow tool

  2. Update existing tools to send debug info into Elasticsearch instead of Kafka

 

See the previous challenge for details on how the controller script and simple flow script works.

 

Scripted flow utility will take an xls file as a parameter and it will have four sheets:

  1. Scenario - contains a list of sites to load (columns: Steps, Description, Transaction, Action, Selection Type, Element, Data, Output,InCaseOfFailure, Timeout)

  2. Data - contains the data for each of the scenarios - same as simple flow

  3. Actions - list of actions supported on the loaded page (click, wait, enter text, etc)

  4. Element - list of elements to look for in the loaded page

 

Selection type field can have the following values:

  • Single: Should pick the first row of data from the data spreadsheet

  • Random: Randomly pick data from the list

  • Sequential: For every iteration pick data sequentially

Data field specifies which column to read the data for the scenario from the Data spreadsheet.

 

Actions sheet specifies the actions supported by the tool - this is a fixed list and will not change.

 

Scripted flow utility should for every step do the following:

  • Execute the script in the Action column (execute each step)

  • Depending on InCaseOfFailure field value, next step should either continue or abort if the current step action fails

  • For each step, capture the elapsed time between ‘start’ and ‘end’ action

  • If any action is before start or after end, it should not be considered for elapsed time

Capture below fields data to excel mapped to transaction name:

  • Transaction name

  • Load Time (Elapsed time)

  • Status: Pass or fail, depending on whether all actions passed or any action failed.

 

Submission

Submit the full source code, readme documentation file with details on how to run the tool, sample outputs.



Final Submission Guidelines

See above

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30150096