The main objective of this assignment is to assess test engineering skills.
Navigate to https://www.almosafer.com/en and automate the integration tests for following APIs from the Stays funnel using Rest Assured and Java framework.
These APIs appear in the Network tab during the flow of searching a location and selecting a hotel — they are integrated and should be called in sequence (e.g. autocomplete → search → search poll → packages → packages poll).
GET /autocompletePOST /search/asyncGET /search/poll/{{sId}}POST /v2/packagesGET /v2/packages/poll/{{pId}}
Note: The list above contains only the resource paths. You must inspect the Network tab to obtain the full Base URI and necessary headers. The token in the request header is mandatory for all of these APIs to function properly.
- Dates and other input data should be dynamic
- Reporting should be in place
- Request JSON bodies (especially for POST requests) should be generated dynamically
- Include both positive and negative test scenarios
Perform necessary validations on API responses such as:
- Status codes
- Response body structure
- Key/value assertions
- Use Java with Rest Assured framework
- Use Maven as the build tool
- Integrate tests with JUnit
A codebase we can trust! Clean practices, meaningful validations, and modular implementation.
This is testing code — a passed execution doesn't always mean the system works; it might mean the test itself needs review.
If you have any questions regarding this challenge, please feel free to reach out to us.
The challenge should be submitted via a link to a public Git repository (GitHub or Bitbucket preferred).
- Usage is clearly mentioned in the README file
- All listed APIs are automated
- Dynamic payloads and query parameters are used
- Token/header is handled correctly
- Reporting is integrated
Implementations focusing on quality over feature completeness will be highly appreciated. Don’t feel compelled to implement everything — even if the challenge is incomplete, please submit it anyway.