Skip to content

animeshkumar29/nilgiriDemo

Repository files navigation

Nilgiri Logo

Nilgiri Automation Framework

Welcome to Nilgiri, An innovative hybrid testing framework combining Cucumber's BDD elegance with Playwright's browser automation for streamlined, behavior-driven web application testing..

Playwright Framework Cucumber BDD license: MIT

Framework Flow

Nilgiri Framework


Folder Structure

nilgiri/
├── spec/
│   ├── apiSpec/
│   │   ├── api.spec.ts
|   ├── uiSpec/
|       ├── ui.spec.ts
├── endtoend/
│   ├── features/
│   │   ├── home.feature
|   ├── steps/
|   |   ├── homeStepDef.ts
|   ├── hook.ts
│   
├── common/
|   ├── apiBase.ts
│   ├── uiBase.ts
|   
├── elementFactory/
│   ├── pageOne.ts
│   ├── pageTwo.ts
|
├── utils/
│   ├── uiCommonMethodModule.ts
│   ├── uiElementFactoryModule.ts
│   
├── resource/
│   ├── apiTestData
|   |   ├── apiTestData.json
|   |
│   ├── uiTestData
|       ├── uiTestData.json
|
├── report/
|   ├── teams-webhook.js
|
├── node_modules/
├── package.json
├── package-lock.json
├── .gitignore
├── README.md
├── cucumber.json
├── generateReport.ts
├── tsConfig.json
  • node_modules: Contains all the npm packages required by the project.
  • elementFactory: This directory holds the page element object models, facilitating easy maintenance and readability.
  • common: Shared utilities and functions that can be reused across different tests are located here.
  • resource: Contains subdirectories for different types of test data and other resources:
    • apiTestData: JSON files or other data formats for API testing.
    • uiTestData: Data files specific to UI testing.
  • spec: Test specifications are divided into two categories:
    • apiSpec: Contains specification files for API tests.
    • uiSpec: Contains specification files for UI tests.
  • endtoend: Test specifications are divided into two categories:
    • features: Contains feature files for the End to End and business use cases.
    • steps: Contains steps Defination for the Feature Files.
  • test-results: Stores the output from test executions, such as reports and logs.
  • utils: Helper methods and utility functions to support various testing operations.
  • .gitignore: Specifies intentionally untracked files to ignore.
  • package.json & package-lock.json: Define project metadata and lock down the versions of npm packages.
  • playwright.config.ts: Configuration file for Playwright test runner.
  • README.md: Documentation for the project.

Installation

Before you begin, ensure you have Node.js installed on your system.

  1. Clone the repository:
    git clone https://your-repository-url
  2. Navigate to the project directory:
    cd nigiri

Record Your Test

Record your test with Playwright CodeGen

Playwright CodeGen Demo

Running Tests

Execute the following command to run all tests:

npm run automation

For running specific tests, you can use:

npx playwright test --grep "test name pattern"

For running specific tests to GitHub Action from Curl Command:

curl --location 'https://github.com/repos/{repoOwnerName}/{RepoName}/actions/workflows/automation.yml/dispatches' \
--header 'Accept: application/vnd.github+json' \
--header 'X-GitHub-Api-Version: 2022-11-28' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <Your Git Hub Personal Token>' \
--data '{
    "ref": "main",
    "inputs": {
        "custom_feature_file": "endtoend/features/home.feature"
    }
}'

Adding New Tests

To add a new UI test:

  1. Create a new .ts file in the spec/uiSpec directory.
  2. Write your test using the Playwright API and the page objects from elementFactory.

For API tests, follow a similar process in the spec/apiSpec directory.

Contributing

We welcome contributions to the Nilgiri framework. Please read through our contributing guidelines before making a pull request.

Support

If you encounter any issues or have questions, please file an issue on the GitHub repository issue tracker.Nilgiri GitHub repository.

License

Nilgiri is open-source software licensed under the licensed under the MIT license.

Thank you for choosing Nilgiri Framework for your automation needs!

Copyright (c) 2023 Tricon Infotech

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published