A sample testing framework that supports both UI and API automated tests.
- Framework supports both UI and API testing
- Highly extensible with minimal maintenance required
- CI/CD ready, just run the gradle task
- Auto downloads chrome/firefox driver binary files
Pre-requisites:
- Operating System: Windows 10 (other OS' should also work)
- JDK 1.8
- Selenium java 3.141.59
- Chromedriver 2.44
- Selenium-chrome-driver 3.141.59
- Selenium-firefox-driver 3.141.59
- Chrome Version 76.0.3809
- TestNG
- RESTAssured 3.0.6
- Gradle 5.5.1
└───src ├───main │ ├───java │ │ ├───clients │ │ │ BaseClient.java │ │ │ CredifyClient.java │ │ │ │ │ ├───Constants │ │ │ LoanPurpose.java │ │ │ ValidStates.java │ │ │ │ │ ├───entities │ │ │ BaseResponse.java │ │ │ │ │ ├───properties │ │ │ CredifyProperties.java │ │ │ Properties.java │ │ │ PropertiesReader.java │ │ │ │ │ ├───ServiceEndpoints │ │ │ │ INSTRUCTIONS.md │ │ │ │ │ │ │ ├───core │ │ │ │ ├───entity │ │ │ │ │ Param.java │ │ │ │ │ RequestBody.java │ │ │ │ │ │ │ │ │ ├───template │ │ │ │ │ HttpMethod.java │ │ │ │ │ IServiceEndpoint.java │ │ │ │ │ UserType.java │ │ │ │ │ │ │ │ │ └───utility │ │ │ │ CurlBuilder.java │ │ │ │ Header.java │ │ │ │ RequestHandler.java │ │ │ │ │ │ │ └───serviceEndpoints │ │ │ │ dummy │ │ │ │ │ │ │ └───status │ │ │ GetStatusEndpoint.java │ │ │ GetStatusResponse.java // POJO response class │ │ │ │ │ └───utils │ │ Commons.java │ │ CredfyCategories.java │ │ │ └───resources │ integration.properties │ └───test ├───java │ ├───pages // POM classes │ │ BasePage.java │ │ OffersPage.java │ │ PersonalInformationPage.java │ │ RateCheckPage.java │ │ SignInPage.java │ │ │ ├───testBases │ │ UIBaseTest.java │ │ │ └───tests │ ├───api // API tests │ │ VoucherSmokeTests.java │ │ │ └───ui // UI tests │ CheckRateTests.java │ └───resources
To run all UI tests in chrome: gradlew clean build runTests -Dtag=UI -Dbrowser=chrome
.
Replace browser to firefox
to use firefox.
To run all API tests: gradlew clean build runTests -Dtag=API
.
After the run you can view the HTML report at build/<tag>
.