This guide explains how to set up and run the automation testing suite using TestNG + Java + SHAFT Engine for [NDC_INTEGRATION_AUTOMATION]. The project currently covers the following functionalities:
Please review the following important notes before running the automation scripts:
This automation script should not be solely relied upon for full supplier migration testing. It only covers the specific test cases documented in this guide. Any additional edge cases, negative flows, or scenarios outside the listed coverage must be tested manually or through extended automation.
Before running any portal-related automation scripts, ensure that a Rule Engine is created for the portal that includes the supplier you want to test.
⚠️ If the rule engine is missing, the search and booking functions will fail or behave unexpectedly.
The script does not differentiate between staging and production credentials. If used with a supplier configured with production credentials, it will proceed to book real flights without any warning.
✅ Always verify that you are using staging or test credentials before running the script.
Ensure that only the supplier intended for testing is added to the branch and portal configurations.
⚠️ Adding multiple suppliers may lead to conflicts during rule application, incorrect bookings, or test failures.
Ensure you have the following tools installed:
NDC_Automated
│
├── .idea/ # IntelliJ config files
├── allure-report/ # Allure test reports
├── allure-results/ # Allure raw result files
├── Screenshots/ # Screenshots captured during test failures
│
├── src/
│ ├── main/
│ └── test/
│ └── java/
│ └── TestPackage/
│ ├── BasePage/
│ ├── Login/
│ │ └── LoginPageTC.java
│ ├── MileStoneOne/
│ │ ├── Branch/
│ │ ├── Supplier/
│ │ ├── End2EndScnario.java
│ │ └── SearchAboutOneWayTripsTC.java
│ ├── MileStoneTwo/
│ │ └── DashBoardModulePageTC.java
│ ├── E2E/
│ └── Utilities/
│
├── resources/
│ └── Reqartion.xml # TestNG suite configuration filegit clone https://github.com/muhamedsolliman/NDC.gitmvn clean installModify testng.xml to include/exclude desired test cases.
AddSupplierPageTCCreateSupplierCredentialFieldTCNewFlightTC (supplier credentials)AddNewBranchTCCreateAGN_TCAddingDiscountTCAddingServiceChargeTCSearchBookingBranchTCUse the class: E2EAdmin
SearchBookingAgencyTcOneWayNewSearchBookingAgencyRoundTripTCSearchBookingAgencyMultiCitiesTripTCEach test case retrieves its test data from a corresponding JSON file stored separately for clarity and reusability.
| Test Class | Data File |
|---|---|
AddSupplierPageTC | SupplierData.json |
CreateSupplierCredentialFieldTC | SupplierCredentialField.json |
NewFlightTC | FlightDate.json |
AddNewBranchTC | NewBranchData.json |
CreateAGN | AddAgencyData.json |
addingDiscountTC | DiscountData.json |
addingServiceChargeTC | ServiceChargeData.json |
SearchBookingBranchTC | searchBookingBrData.json |
| Test Class | Data File |
|---|---|
SearchBookingAgencyTcOneWayNew | SearchBooking.json |
SearchBookingAgencyRoundTripTC | SearchBooking.json |
SearchBookingAgencyMultiCitiesTripTC | SearchBooking.json |
🔹 Note: The JSON files are typically located under the
src/test/resources/testDatadirectory, and are loaded dynamically during test execution.
Below is the list of scenarios automated in this project.
| # | Test Case Title | Expected Result |
|---|---|---|
| 1 | Verify that the data displayed on the body of the ticket matches the flight details (Airline, Flight number, Cabin Class, Departure Time, Source, Duration, Arrival Time, Destination, Layover) | All displayed ticket data matches the original flight details |
| 2 | Verify that the discount and service charges were applied and calculated correctly | Discount and service charges are applied and calculated accurately in the total fare |
| 3 | Verify that the final price on the ticket body equals the final price in the fare details | Final price on the ticket matches the final fare shown in the fare details |
| 4 | Verify that the prices on the fare details are calculated correctly (Base fare, Taxes, Fees, etc.) | All fare components are calculated correctly and sum to the expected total |
| 5 | Verify that flight details on the search page match the flight details in the fare confirmation (Airline, Flight number, Cabin Class, Departure Time, Departure Date, Source, Duration, Arrival Time, Destination, Arrival Airport) | Flight details in both locations are identical |
| 6 | Verify that fare details on the search page match the fare details in the fare confirmation | Fare breakdown and totals are the same in both search and confirmation |
| 7 | Verify that the fare breakup on the "Add Passenger Details" page is calculated successfully | Fare breakup is displayed and calculated correctly |
| 8 | Verify that the total amount on the fare breakup page equals the total amount on the ticket | Total fare shown in fare breakup matches the final ticket total |
| 9 | Verify that the flight details on the ticket are the same as the flight details in the fare confirmation | Ticket flight details match the fare confirmation exactly |
| 10 | Verify that the fare breakup on the ticket is calculated correctly | Fare components on the ticket are correct and total is accurate |
| 11 | Verify that a PNR is retrieved and the booking is successful | Valid PNR is generated and the booking status is marked as successful |
| Role | Name | Contact |
|---|---|---|
| Maintainer | Mohamed M. Soliman | mohamed.soliman@tildetech.ae |
| Reviewer | Ahmed el Tokhi | ahmed.eltokhi@tildetech.ae |