{"id":14969300,"url":"https://github.com/rupamdas-ts/flightreservationautomation","last_synced_at":"2026-01-05T08:47:56.783Z","repository":{"id":229556394,"uuid":"776534715","full_name":"RupamDas-ts/FlightReservationAutomation","owner":"RupamDas-ts","description":"Web Automation Framework using Selenium, Java, REST Assured","archived":false,"fork":false,"pushed_at":"2024-08-02T11:31:59.000Z","size":83,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T03:09:43.752Z","etag":null,"topics":["cucumber","docker","extentreports","groovy-script","java","jenkins","restassured","selenium","testng"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RupamDas-ts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-23T19:18:37.000Z","updated_at":"2024-08-02T11:33:32.000Z","dependencies_parsed_at":"2024-03-25T05:36:16.944Z","dependency_job_id":"fbdbbac0-cf7f-4765-a49c-67fd2911f93f","html_url":"https://github.com/RupamDas-ts/FlightReservationAutomation","commit_stats":{"total_commits":25,"total_committers":3,"mean_commits":8.333333333333334,"dds":0.28,"last_synced_commit":"18b2b7297af171f9b67b6023cc6d028d4bb35d2a"},"previous_names":["rupamdas-ts/e-commerceautomation"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RupamDas-ts%2FFlightReservationAutomation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RupamDas-ts%2FFlightReservationAutomation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RupamDas-ts%2FFlightReservationAutomation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RupamDas-ts%2FFlightReservationAutomation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RupamDas-ts","download_url":"https://codeload.github.com/RupamDas-ts/FlightReservationAutomation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245579675,"owners_count":20638679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cucumber","docker","extentreports","groovy-script","java","jenkins","restassured","selenium","testng"],"created_at":"2024-09-24T13:41:33.316Z","updated_at":"2026-01-05T08:47:56.743Z","avatar_url":"https://github.com/RupamDas-ts.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿Flight Booking Automation\r\n=========================\r\n\r\nOverview\r\n--------\r\n\r\nThis project automates the flight booking process on a travel website using Selenium, Java, Rest Assured, and Cucumber\r\nframework. It allows users to specify various test combinations such as browser name, version, and platform to run the\r\ntests. The automation includes creating a new account using a temporary email address generated via the One Sec Mail\r\nAPI, fetching OTP for account creation, and booking flights from a specified origin to a destination on a given date.\r\n\r\n## Demo Video\r\n\r\nhttps://github.com/RupamDas-ts/FlightReservationAutomation/assets/123362738/4b8e7ae3-9118-4f44-a217-79c822c3a6f2\r\n\r\n\r\nFeatures\r\n--------\r\n\r\n* Automated flight booking process on a travel website.\r\n* User-defined test combinations for browser name, version, and platform.\r\n* Creating a new account using a temporary email address.\r\n* Fetching OTP for account creation.\r\n* Booking flights from a specified origin to a destination on a given date.\r\n\r\nTechnologies Used\r\n-----------------\r\n\r\n* Selenium WebDriver: For interacting with the web browser.\r\n* Java: Programming language for test automation.\r\n* Rest Assured: For interacting with the One Sec Mail API.\r\n* Cucumber: BDD framework for test scenario organization and execution.\r\n\r\nGetting Started\r\n---------------\r\n\r\nTo run the tests and use the automation framework, follow these steps:\r\n\r\n1. Clone the repository:\r\n\r\n   bashCopy code\r\n\r\n   `git clone https://github.com/RupamDas-ts/FlightReservationAutomation.git`\r\n\r\n2. Navigate to the project directory:\r\n\r\n   bashCopy code\r\n\r\n   `cd FlightReservationAutomation`\r\n\r\n3. Set up your environment:\r\n    * Ensure you have Java installed. You can download it\r\n      from [here](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html).\r\n    * Install necessary dependencies using Maven:\r\n\r\n      bashCopy code\r\n\r\n      `mvn clean install`\r\n\r\n4. Create `Cucumber.yaml` file with your own credentials the same structure as `Cucumber.sample.yml` and keep that in\r\n   the `TestConfigs` directory\r\n\r\n5. Run the tests:\r\n\r\n   bashCopy code for Linux or Mac\r\n\r\n   ```CUCUMBER_FILTER_TAGS=\"@flightBooking\" mvn test -DENV_NAME=LambdaTest -DsuiteXmlFile=testng.xml -DPARALLEL=2```\r\n\r\n   For Windows\r\n\r\n   ```set CUCUMBER_FILTER_TAGS=\"@flightBooking\"```\r\n\r\n   ```mvn test -DENV_NAME=\"LambdaTest\" -DsuiteXmlFile=\"testng.xml\" -DPARALLEL=2```\r\n\r\n6. To re-run failed tests:\r\n\r\n   ```mvn test -DENV_NAME=LambdaTest -DsuiteXmlFile=testng-rerun.xml -DPARALLEL=2```\r\n7. To run the same tests multiple times, set the `RUN_N_TIMES` environment variable:\r\n   \r\n   ```CUCUMBER_FILTER_TAGS=\"@flightBooking\" mvn test -DENV_NAME=LambdaTest -DsuiteXmlFile=testng.xml -DPARALLEL=2 -DRUN_N_TIMES=3```\r\n\r\nConfiguration\r\n-------------\r\n\r\n* Modify the `Cucumber.yaml` file to configure credentials to run tests on remote platforms or use `local` as `ENV_NAME`\r\n  to run tests on your local.\r\n* Tests can be run parallelly or serially by providing correct `PARALLEL` value as per requirements like, `-DPARALLEL=1`\r\n  for serial execution `-DPARALLEL=2` for parallel execution of two tests.\r\n* To run tests multiple times, set the `RUN_N_TIMES` environment variable to the desired number of iterations.\r\n* Use `testng.xml` for regular test execution.\r\n* Use `testng-rerun.xml` for re-running failed tests.\r\n\r\nRunning the Project as a Docker Container\r\n-------------\r\n\r\n### Prerequisites\r\n- Ensure Docker is installed on your system. You can download it from [here](https://www.docker.com/products/docker-desktop).\r\n\r\n### Building the Docker Container\r\nThe Docker file is present in the project, which uses a parent image with JDK 22. You can build the Docker container from the given Docker file using the following command:\r\n\r\n```sh docker build -t \u003cCONTAINER_NAME\u003e .```\r\n\r\nReplace `\u003cCONTAINER_NAME\u003e` with the desired name for your Docker container.\r\n\r\n### Running the Docker Container\r\nWhen running the container, you need to pass an environment variable named `CUCUMBER_RUN_SCRIPT`, which accepts the Cucumber command you want to run. For example:\r\n\r\n```docker run --rm -e CUCUMBER_RUN_SCRIPT=\"CUCUMBER_FILTER_TAGS='@flightBooking' mvn test -DENV_NAME=LambdaTest -DsuiteXmlFile=testng.xml -DPARALLEL=2\" \u003cCONTAINER_NAME\u003e```\r\n\r\nReplace \u003cCUCUMBER_COMMAND\u003e with your specific Cucumber command and \u003cCONTAINER_NAME\u003e with the name of your Docker container.\r\n\r\nThis will execute the specified Cucumber command within the Docker container\r\n\r\n\r\nContributing\r\n------------\r\n\r\nContributions are welcome! If you'd like to contribute to this project, feel free to fork the repository and submit a\r\npull request.\r\n\r\nLicense\r\n-------\r\n\r\nThis project is licensed under the MIT License. See the LICENSE file for details.\r\n\r\nContact\r\n-------\r\n\r\nFor any inquiries or issues regarding the project, please feel free to contact me at dasrupam740@example.com.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupamdas-ts%2Fflightreservationautomation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frupamdas-ts%2Fflightreservationautomation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupamdas-ts%2Fflightreservationautomation/lists"}