{"id":21169707,"url":"https://github.com/sadabnepal/web-mobile-api-test-framework","last_synced_at":"2025-07-20T15:03:48.396Z","repository":{"id":40315887,"uuid":"368210810","full_name":"sadabnepal/web-mobile-api-test-framework","owner":"sadabnepal","description":"Boilerplate project for Web, Mobile and API using WebdriverIO, Appium, SuperTest and TypeScript","archived":false,"fork":false,"pushed_at":"2024-05-01T11:05:43.000Z","size":6528,"stargazers_count":31,"open_issues_count":1,"forks_count":17,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-09T20:51:30.784Z","etag":null,"topics":["appium","cucumber","cucumber-html-report","docker","mocha","mochawesome","supertest-mocha-chai","typescript","wdio-async","wdio-cucumber-steps","webdriverio","webdriverio-appium","webdriverio-boilerplate-framework","webdriverio-framework","webdriverio-typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sadabnepal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-05-17T14:14:29.000Z","updated_at":"2024-12-02T12:46:02.000Z","dependencies_parsed_at":"2024-05-01T12:42:29.216Z","dependency_job_id":"59730fbf-71ff-408b-a59c-cbd19307c8d0","html_url":"https://github.com/sadabnepal/web-mobile-api-test-framework","commit_stats":null,"previous_names":["sadabnepal/webdriveriosupertestappiumtestframework","sadabnepal/webdriveriotypescripte2e"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sadabnepal/web-mobile-api-test-framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sadabnepal%2Fweb-mobile-api-test-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sadabnepal%2Fweb-mobile-api-test-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sadabnepal%2Fweb-mobile-api-test-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sadabnepal%2Fweb-mobile-api-test-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sadabnepal","download_url":"https://codeload.github.com/sadabnepal/web-mobile-api-test-framework/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sadabnepal%2Fweb-mobile-api-test-framework/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266143941,"owners_count":23883069,"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":["appium","cucumber","cucumber-html-report","docker","mocha","mochawesome","supertest-mocha-chai","typescript","wdio-async","wdio-cucumber-steps","webdriverio","webdriverio-appium","webdriverio-boilerplate-framework","webdriverio-framework","webdriverio-typescript"],"created_at":"2024-11-20T15:53:21.221Z","updated_at":"2025-07-20T15:03:48.373Z","avatar_url":"https://github.com/sadabnepal.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003e Web, API and Mobile Test Automation Framework \u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://webdriver.io/\"\u003e\n        \u003cimg alt=\"WebdriverIO\" src=\"./images/wdio-logo.svg\" width=\"146\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003ch4 align=\"center\"\u003e\n\n[![Web CI](https://github.com/sadabnepal/WebdriverIOTypeScriptE2E/actions/workflows/web.yml/badge.svg)](https://github.com/sadabnepal/WebdriverIOTypeScriptE2E/actions/workflows/web.yml)\n[![API CI](https://github.com/sadabnepal/WebdriverIOTypeScriptE2E/actions/workflows/api.yml/badge.svg)](https://github.com/sadabnepal/WebdriverIOTypeScriptE2E/actions/workflows/api.yml)\n\n\u003c/h4\u003e\n\n\u003c!-- for badges and icons refer to https://simpleicons.org/ --\u003e\n\n#### Pre-requisite\n[![NodeJs](https://img.shields.io/badge/-NodeJS-grey?logo=node.js)](https://nodejs.org/en/download/)\n[![Docker](https://img.shields.io/badge/-Docker-0db7ed?logo=docker\u0026logoColor=white)](https://docs.docker.com/engine/install/)\n[![VSCode](https://img.shields.io/badge/-Visual%20Studio%20Code-%233178C6?logo=visual-studio-code)](https://code.visualstudio.com/download)\n[![Appium-Inspector](https://img.shields.io/badge/-Appium%20Inspector-662d91?logo=appium\u0026logoColor=black)](https://github.com/appium/appium-inspector/releases)\n[![AndroidStudio](https://img.shields.io/badge/-Android%20Studio-3DDC84?logo=android-studio\u0026logoColor=white)](https://developer.android.com/studio)\n[![JDK](https://img.shields.io/badge/-JDK-white?logo=openjdk\u0026logoColor=black\u0026)](https://www.azul.com/downloads/#zulu)\n\n\n#### Clone Repository\n```bash\ngit clone https://github.com/sadabnepal/web-mobile-api-test-framework.git\ncd web-mobile-api-test-framework\n```\n-----\n\n### Interactive CLI to run test:\n\u003e Make sure mobile setup has been completed if selecting mobile as CLI option. See [Mobile Test](./mobile/README.md) for setup instructions. Before running actual test, presence of node_modules folder will be validated and if not not found installation will take place before proceeding any further.\n```bash\nnpm start\n```\nIt start wizard with test module options, based on user selection either of the below module will start \u003cb\u003elocally\u003c/b\u003e or inside \u003cb\u003edocker container\u003c/b\u003e. Code to control wizard and user selection is available in 'start.js' which is built using [enquirer](https://www.npmjs.com/package/enquirer) node package.\u003cbr\u003e\n\u003cb\u003eTest Module Options : \u003c/b\u003e | UI | API | Mobile | \u003cbr\u003e\n![cli_demo](./images/setup.gif)\n\n\n-----\n\n### Web Test\nInstall dependencies:\n\u003e Navigate to \"web\" folder and then run below command\n```bash\nnpm install\n```\n\nSetup .env file:\u003cbr\u003e\ncreate `.env` file inside web folder and update content with reference to `.env.example`\n\nRun test in local:\n\u003e By default test will run in HEADLESS mode.\n\u003e Update MODE=LOCAL in .env file to see test running in browser.\n```bash\nnpm test             [ Mocha tests ]\nnpm run test:e2e     [ Cucumber BDD tests ]\n```\n\nRun test in Docker:\n```bash\nnpm run test:docker       [ Mocha tests]\nnpm run test:e2e:docker   [ Cucumber BDD tests ]\n```\n\u003e Pre and Post script will handle start and stop of docker containers automatically.\n\u003e If containers does not stop automatically run \"docker-compose down\" command.\n\nGenerate Report:\n```bash\nnpm run report:mocha\nnpm run report:cucumber\n```\n\nReport Paths:\n```bash\nmocha: web/mochawesome-report/mochawesome-report.html\ncucumber: web/reports/cucumber/cucumber-report.html\n```\n\nSend Report:\n\u003e Update .env file details with reference of .env.example file\n```bash\nnpm run mailCucumberReport\nnpm run mailMochaResult\n```\n-----\n\n### API Test\nInstall dependencies:\n\u003e Navigate to \"api\" folder and then run below command\n```bash\nnpm install\n```\n\nRun test:\n```bash\nnpm test\n```\n\nReport Paths:\n```bash\napi/reports/mochawesome.html\n```\n\n-----\n\n### Mobile Test\n\nAppium setup: [Click here to open Appium SetUp README](/mobile/README.md)\n\nInstall dependencies:\n\u003e Navigate to \"mobile\" folder and then run below command\n```bash\nnpm install\n```\n\nRun in local:\n\u003e Make sure android virtual device is up and running before starting mobile test.\n```bash\nnpm run test  [ Mobile tests ]\n```\n\nGenerate Report:\n```bash\nnpm run report\n```\n\nReport Paths:\n```bash\nmobile: mobile/reports/mobile.html\n```\n\n-----\n\n#### Features:\n    - Web, Mobile and API Testing\n    - Mocha and Cucumber BDD framework\n    - Page Object Design pattern\n    - Docker with VNC integration\n    - Parallel execution\n    - Cross browser testing\n    - Retry failed test\n    - Screenshot in report for failed tests\n    - Github actions\n    - Send test report to list of Gmail\n    - Use of types for method params optimization\n    - Improved import statement using tsconfig path\n\n#### Tech stacks:\n[![WebdriverIO](https://img.shields.io/badge/-WebdriverI/O-EA5906?logo=WebdriverIO\u0026logoColor=white)](https://webdriver.io/)\n[![TypeScript](https://img.shields.io/badge/-TypeScript-%233178C6?logo=Typescript\u0026logoColor=black)](https://www.typescriptlang.org/)\n[![Mocha](https://img.shields.io/badge/-Mocha-%238D6748?logo=Mocha\u0026logoColor=white)](https://mochajs.org/)\n[![CucumberIO](https://img.shields.io/badge/-Cucumber.io-brightgreen?logo=cucumber\u0026logoColor=white)](https://cucumber.io/)\n[![ChaiJS](https://img.shields.io/badge/-ChaiJS-FEDABD?logo=Chai\u0026logoColor=black)](https://www.chaijs.com/)\n[![SuperTest](https://img.shields.io/badge/-SuperTest-07BA82?logoColor=white)](https://github.com/visionmedia/supertest)\n[![Enquirer](https://img.shields.io/badge/-Enquirer-f0db4f?logoColor=white)](https://github.com/enquirer/enquirer)\n[![Docker](https://img.shields.io/badge/-Docker-0db7ed?logo=docker\u0026logoColor=white)](https://www.docker.com/)\n[![Appium](https://img.shields.io/badge/-Appium-662d91?logo=appium\u0026logoColor=black)](https://github.com/appium/appium)\n[![dotenv](https://img.shields.io/badge/-dotenv-grey?logo=.env\u0026logoColor=#ECD53F)](https://github.com/appium/appium)\n[![Node-Mailer](https://img.shields.io/badge/-Node%20Mailer-grey?logo=gmail\u0026logoColor=blue)](https://github.com/nodemailer/nodemailer)\n\n#### Folder Structure:\n![e2e_framework_folders](https://user-images.githubusercontent.com/65847528/168474570-5eca8112-25b7-45ca-b411-355d0ce39079.png)\n\n#### Sample Email Report:\n![email_report](https://user-images.githubusercontent.com/65847528/168474717-26236fd6-4f30-4cc0-bcb9-cf9ae0deadce.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsadabnepal%2Fweb-mobile-api-test-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsadabnepal%2Fweb-mobile-api-test-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsadabnepal%2Fweb-mobile-api-test-framework/lists"}