https://github.com/thompsonjonm/cypress-demoqa
A Testing repository using Cypress.io, Faker, and Fishery to test the Demo QA website.
https://github.com/thompsonjonm/cypress-demoqa
automation cypress cypress-io testing testing-framework
Last synced: about 1 year ago
JSON representation
A Testing repository using Cypress.io, Faker, and Fishery to test the Demo QA website.
- Host: GitHub
- URL: https://github.com/thompsonjonm/cypress-demoqa
- Owner: ThompsonJonM
- Created: 2021-01-17T20:17:32.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-06-30T13:33:44.000Z (about 5 years ago)
- Last Synced: 2025-02-14T17:19:28.007Z (over 1 year ago)
- Topics: automation, cypress, cypress-io, testing, testing-framework
- Language: JavaScript
- Homepage:
- Size: 146 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cypress DemoQA Project
A testing repository using Cypress to automate the Demo QA website and its suite of applications.
1. [Tools Used](#tools-used)
2. [Installation](#installation)
3. [Running Tests](#running-tests)
4. [Test Plan](#test-plan)
### Tools Used
- Cypress.io
- Prettier
- Eslint
- Fishery (Planned)
- Faker (Planned)
### Installation
Simply input the following once cloned:
`npm install`
### Running Tests
This repository requires the creation of a `cypress.env.json` populated with a user for the Bookstore application. The JSON should resemble the following:
```
{
"bookstoreUser": {
"username": { bookstoreUsername },
"password": { bookstorePassword }
}
}
```
Run commands:
- GUI: `npm run open`
- CLI: `npm run test`
- API: `CYPRESS_TEST_TAGS=api npm run {test_or_open}`
- UI: `CYPRESS_TEST_TAGS=ui npm run {test_or_open}`
- Module API (Elements only): `node .\run-elements-tests.js`
### Test Plan
- Navigation
- Iterate through each menu selection and verify correct page load
- Elements
- Forms
- Alerts
- Windows cannot be automated
- Frames can be automated using cypress-iframe
- Nested Frames may be able to automate using above
- Widgets
- Interactions
- Drag and drop doable with Cypress recipe
- Resize and Sortable should follow same principle
- Book store app
- Login
- Successfully login, logout
- Create command for API login
- User Register not automatable due to CAPTCHA
- Consider API
- POST https://www.demoqa.com/Account/v1/User
- Request:
- { userName: {USERNAME}, password: {PASSWORD} }
- Response:
- { "userID":{ID},"username":{USERNAME},"books":[] }
- Add a book
- UI and API
- Delete a book
- UI and API
- Delete all books
- UI and API
- Delete account
- UI and API