-
Notifications
You must be signed in to change notification settings - Fork 6
Home
openelis-qaframework is the OpenELIS-Global2 behaviour driven development (BDD) quality assurance framework.
BDD brings technical(developers, QA) together with business(non-technical, Business analysts) people to foster collaboration and ease problem-solving.
The Framework uses cucumber for its BDD test case descriptions and Selenium for Functional Testing
-
-
Intall Java
-
Install Maven
-
Install git
-
Clone the openelis-qaframework and install the dependencies
git clone https://github.com/I-TECH-UW/openelis-qaframework.git mvn clean install -DskipTests=true
-
In order to test within a real desktop browser, you will need a webdriver to connect to your browser (either firefox or chrome).
To run with a remote Webdriver in a docker container ,set
webdriver.type=remote
, the default, in the peroperties file
rundocker-compose up
to start the selenium remote webdriver in docker before running the tests. Access the remote web browser athttp://localhost:7900
, click 'connect' and enter password 'secret' to view the tests executingTo run with a local Webdriver on the local machine ,set
webdriver.type=local
,in the peroperties fileDownload the webdriver version that matches your system and browser version.
Note: The framework comes with the version of ChromeDriver that only supports Chrome version 96 which is supported by the CI server . Incase your local machine runs with Chrome version 92 , you dont need to download another driver ,skip the next step below
-
Move your downloaded browser webdriver into the right locations as follows
Chrome: Linux : src/test/resources/chromedriver/linux/chromedriver Mac : src/test/resources/chromedriver/mac/chromedriver Windows : src/test/resources/chromedriver/windows/chromedriver.exe Firefox: Linux : src/test/resources/firefoxdriver/linux/geckodriver Mac : src/test/resources/firefoxdriver/mac/geckodriver Windows : src/test/resources/firefoxdriver/windows/geckodriver.exe
-
Edit src/test/resources/test.properties
Set webdriver=chrome or webdriver=firefox Set headless=false to allow the web browser UI to appear during the test
-
Properties explanation:
webapp.url=https://testing.openelisci.org:8443/OpenELIS-Global [OpenELIS instance URL] login.username=itect [Above OpenELIS instance username] login.password=adminADMIN! [Above OpenELIS instance password] webdriver.type=remote [Type of WenDRiver to execute the tests ; remote/local ] webdriver=chrome [Browser instance; chrome/firefox] headless=true [Launch browser in the background without UI; true/false]
-
Running the Tests
The tests are organised in different Features and can be ran all at once or run individual Feature
To run all testsmvn test
To run a specific test Feature, you need to filter it by the feature Filter tag ie
mvn test -Dcucumber.filter.tags='<@tag>'
see all the test Features with their corresponding filter tags
-
-
Collaboratively, business analysts translate requirements into test cases and define from them features, scenarios, steps written in a Behavior Driven Development (BDD) approach through a human readable language, Gherkin.
-
The feature files are added to the Automation framework and an automation layer (with step descriptions) is written by a test engineer using Selenium automation framework .
-
Running the QA framework locally or in GitHub Actions CI ,runs the automated test suite;
- This reads the test.properties and launch RunTest.java(junit with cucumber runner) with the loaded configurations which reads all feature files and locates each respective step description from mapped automation package,
- The Automation steps launch the Selenium automation framework by scenario and each scenarios by step order, steps loads the pages and return results to the build through its web driver
- The build posts test results to reports.cucumber.io
- The build aslo posts results into Cucumber studio and a result green/red label (build status) is displayed on qaframework basing on CI build result.