Welcome!
This page contains articles about the implemntation for the Automation Test Program as well as how to add your own modules to it.
Testing Data
This is how you get what test set/case/step to run.
Automation Framework
This is the skeleton of how the program runs. Basicaly acting as the controler/link for the Testing Data to Test Automation Driver.
Test Automation Driver
This is where the testing actualy happens. It takes commands from the testing data and excecutes them.
Running the program.
You need to pass in arguments when running this through command line. Below are arguments that you can use.
Mandatory
- --setType
- The type of data to use. ie "XML" or "txt"
- --setArgs
- The arguments to be passed in. Often the location of the file.
Optional
- --b or --browser
- --e or --environment
- --u or --url
- --respectRepeatFor
- --respectRunAODAFlag
- --timeOutThreshold
- --warningThreshold
- --dataFile
- --csvSaveFileLocation
- --logSaveLocation
- Defaults to the csvSaveFileLocation
- --reportSaveLocation
- Defaults to the csvSaveFileLocation
- --screenShotSaveLocation
- Defaults to the csvSaveFileLocation
- --automationProgram
- The type of testing program to use. ie "selenium"
- --caseType
- Defaults to setType
- --stepType
- Defaults to caseType
- --caseArgs
- Defaults to setArgs
- --stepArgs
- Defaults to caseArgs
- --kvSecrets
- Defaults to no key vault secret to be read
- --maxFailures
- Defaults to 3
- --maxFailures
- Defaults to 3
- --notifyList
- Defaults to nobody notified
- --RunParameters
- Defaults to no parameters
- --planName
- Defaults to devops name with test set, environment, build number
- --projectName
- Defaults to AutomationAndAccessibility
- --azurePAT
- Defaults to PAT defined in App.Config
- --excecutionURL
- Defaults to none
- --appConfig
- Defaults to none
- --testPlanStructure
- Defaults to none
- --testerContact
- Defaults to none
- --testerName
- Defaults to none
- --releaseEnvUri
- Defaults to none
Environment Variables
Most of these variables are the parameters passed in as well as some additional parameters from test sets.
- browser
- environment
- url
- respectRepeatFor
- resepctRunAODAFlag
- timeOutThreshold
- warinigThreshold
- dataFile
- csvSaveFileLocation
- logSaveFileLocation
- reportSaveFileLocation
- screenshotSaveLocation
- testAutomationDriver
- testSetDataType
- testCaseDataType
- testStepDataType
- testSetDataArgs
- testCaseDataArgs
- testStepDataArgs
- loadingSpinner
- errorContainer
Information Object
There is a static class called InformationObject. It contains static variables that any class can access. They are as follows:
bool RespectReapetFor;
bool RespectRunAODAFlag;
string LogSaveFileLocation;
string ScreenshotSaveLocation;
CSVLogger CsvLogger;
ITestSetData TestSetData;
ITestCaseData TestCaseData;
ITestStepData TestStepData;
ITestAutomationDriver TestAutomationDriver;
Reporter Reporter;
Test Flow
The order of execution is as follow. Note that Some methods appear both in AutomationFrameWork and TestData. Automation Framework is the skeleton of how the program is ran. So For example, GetNextTestCase()
Will first be ran in the automation Framework's TestSet class which will then call the TestSetData from the information object to run it's own GetNextTestCase()
. The only exception is SetUp()
. The automation framework's SetUp()
is ran when that instance is created.
- START
- Parse Command Line Arguments. The test Set type and args must be provided.
- Parse test set parameters.
- Gets the
TestGeneralData
that corresponds to the TestSetType and runsVerify()
andParseParameters
- Gets the
- If parsing the parameters was successful, run the following
- Set up the Information Object and set its variables to the correct value.
- SetUp the Testing Datas
- Create a new
TestSetData
based off of thesetType
parameter and pass in thesetArgs
.- Run
SetUp()
for test set.
- Run
- Run
SetUpTestSet()
- Create a new
TestCaseData
based off of thecaseType
parameter and pass in thecaseArgs
.- Run
SetUp()
for test case.
- Run
- Create a new
TestStepData
based off of thestepType
parameter and pass in thestepArgs
.- Run
SetUp()
for test step.
- Run
- Create a new
- Setup and create the automationDriver based off of the
automationProgram
parameter - Run The test Set
- Run
ExistNextTestCase()
- If
True
RunGetNextTestCase()
GetNextTestCase()
will callSetUpTestCase()
(This is based off how you should implement it but it can change)- Run the Test Case
- Run `ExistNextTestStep()
- If
True
RunGetNextTestStep()
GetNextTestStep()
will callSetUpTestStep()
(This is based off how you should implement it but it can change)- Run
ShouldExcecute()
- If
True
RunExecute()
- Also Run from TestAutomationDriver,
RunAODA
if enabled.
- Report the Test Step to the Reporter
- Report the Test Case to the Reporter
- Report the Test Step to the Reporter
- Run
- END
DevOps Configuration
As of December 2023, the Automation Testing Program is now configured to integrate directly with Azure DevOps' Test Plan, Test Case, Test Suite, and Test Run.
The program allows a user to launch from Excel format and then produce results directly to Azure .
The program allows a user to launch from Excel format and then produce results directly to Azure .