{"id":15174163,"url":"https://github.com/prashantsinght99/appium-webdriverio-cucumber","last_synced_at":"2026-03-01T11:01:29.260Z","repository":{"id":245463190,"uuid":"818248255","full_name":"PrashantSinghT99/appium-webdriverio-cucumber","owner":"PrashantSinghT99","description":"POM framework for automating mobile application using webdriver io, appium, javascript","archived":false,"fork":false,"pushed_at":"2024-06-24T10:22:21.000Z","size":49741,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-12T11:03:49.071Z","etag":null,"topics":["appium","cucumber","javascript","logging","pom","reporting","webdriverio"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PrashantSinghT99.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":"2024-06-21T12:23:05.000Z","updated_at":"2024-07-01T10:25:33.000Z","dependencies_parsed_at":"2025-02-11T11:42:45.618Z","dependency_job_id":null,"html_url":"https://github.com/PrashantSinghT99/appium-webdriverio-cucumber","commit_stats":null,"previous_names":["prashantsinght99/appium-webdriverio-cucumber"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PrashantSinghT99/appium-webdriverio-cucumber","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrashantSinghT99%2Fappium-webdriverio-cucumber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrashantSinghT99%2Fappium-webdriverio-cucumber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrashantSinghT99%2Fappium-webdriverio-cucumber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrashantSinghT99%2Fappium-webdriverio-cucumber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PrashantSinghT99","download_url":"https://codeload.github.com/PrashantSinghT99/appium-webdriverio-cucumber/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrashantSinghT99%2Fappium-webdriverio-cucumber/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29967931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T10:55:55.490Z","status":"ssl_error","status_checked_at":"2026-03-01T10:55:55.175Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","javascript","logging","pom","reporting","webdriverio"],"created_at":"2024-09-27T11:40:19.282Z","updated_at":"2026-03-01T11:01:29.242Z","avatar_url":"https://github.com/PrashantSinghT99.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"**FOLDER STRUCTURE HIERARCHY**\n\n```\n.\n└── appium-webdriverio-cucumber/\n    ├── allure-reports(contains report after test execution)/\n    │   └── index.html(open with browser)\n    ├── app/\n    │   └── andriod/\n    │       └── application.apk(android apk used)\n    ├── features/\n    │   ├── pageObjects(Page specific pom classes)\n    │   ├── stepDefinitions(Step definitions of feature file to page Objects)\n    │   └── login.feature(Gherkin BDD cucumber)\n    ├── testdata/\n    │   └── testdata.js(Separated dynamic testdata logic)\n    ├── .gitignore\n    ├── LICENSE\n    ├── README.md\n    ├── package-lock.json\n    └── package.json\n\n\n```\n\n\n**TECH STACK USED(latest versions)**\n\nAPPIUM 2.10.3  \\\nWEBDRIVER IO 8.39.0  \\\nNODE 20.10.0  \\\nJAVASCRIPT  \\\nCUCUMBER 8.39.0  \\\nANDRIOD STUDIO 2023  \\\nAPPIUM INSPECTOR 2023 \\\nDEVICE: PIXEL XL GOOGLE  \\\nVERSION: ANDRIOD 13 TIRAMISU  \\\nAPPLICATION: Android.SauceLabs.Mobile.Sample.app.2.7.1.apk \n\n\n\n**PREREQUISITES**\n\nNode.js and npm                                 \nJava Development Kit (JDK)     \\\nAndroid SDK (for Android automation)  \\\nAppium  \\\nWebdriverIO CLI  \\\nDrivers (e.g., UI Automator 2)  \\\nGit   \\\nAn IDE (e.g., Visual Studio Code)\n\n\n**COMMAND TO RUN**\n\n```\nnpm install\n```\n\n**Run all testcases**\n\n```\nnpx wdio wdio.conf.js\n```\n**Run individually**\n\n```\nnpx wdio --spec .\\features\\login.feature\n```\n\n**Run from tags directly from CLI**\n\n```\nnpx wdio wdio.conf.js --cucumberOpts.tagExpression='@yourTag'\n```\n\nNote:  \n\n1)Device/Emulator running  \n\n2)Port 4723 is not occupied by any other process or service \n\nCommand to check which process running on port and stop it. \n\n```\nnetstat -ano | findstr :4723 \ntaskkill /PID \u003cPID\u003e /F\n```\n\n\n**RUN VIA TAGS**\n\nBy setting cucumberOpts as tagExpression: '@validUser' in file wdio.config.js\n\n```\n\ntagExpression: '@validUser',\n\n```\n\n**SPECS in wdio.config.js**\n\n```\nspecs: [\n'./features/**/*.feature'\n],\n```\n\n**CAPABILITIES**\n\n```\ncapabilities: [{\n// capabilities for local Appium web tests on an Android Emulator\nplatformName: 'Android',\n'appium:deviceName': 'Demo',\n'appium:platformVersion': '13.0',\n'appium:automationName': 'UiAutomator2',\n'appium:app': path.join(process.cwd(), './app/andriod/Android.SauceLabs.Mobile.Sample.app.2.7.1.apk'),\n\"appium:appActivity\": \"com.swaglabsmobileapp.MainActivity\",\n\"appium:appPackage\": \"com.swaglabsmobileapp\",\n'appium:noReset': false,\n'appium:newCommandTimeout': 7200,\n'appium:fullReset': true,\n}],\n```\n\n**SERVICES AND LOGGING**\n\n```\nservices: [\n['appium', {\nargs: {\naddress: '127.0.0.1',\nport: 4723\n},\ncommand: 'appium',\nlogPath: './'\n}]\n],\n```\n\n**STEP DEFINITION**\n\nwdio.conf.js in cucumberOpts add below:\n\n```\nrequire: ['./features/step-definitions/*.js'],\n\n```\n\n**REPORTER: ALLURE**\n\ndocs:https://webdriver.io/docs/allure-reporter/\n\nnpm install @wdio/allure-reporter --save-dev\n\nnpm i allure-commandline\n\nAdd below configurations:\n\n\n```\nreporters: ['spec', ['allure', {\noutputDir: 'allure-results',\ndisableWebdriverStepsReporting: true,\ndisableWebdriverScreenshotsReporting: true,\n}]],\n\nonComplete: function () {\nconst reportError = new Error('Could not generate Allure report')\nconst generation = allure(['generate', 'allure-results', '--clean'])\nreturn new Promise((resolve, reject) =\u003e {\nconst generationTimeout = setTimeout(\n() =\u003e reject(reportError), 5000)\n\n            generation.on('exit', function (exitCode) {\n                clearTimeout(generationTimeout)\n\n                if (exitCode !== 0) {\n                    return reject(reportError)\n                }\n\n                console.log('Allure report successfully generated')\n                resolve()\n            })\n        })\n    }\n```\n\n**EXECUTION**\n\nhttps://github.com/PrashantSinghT99/appium-webdriverio-cucumber/assets/52065013/8970cdef-7ce0-49fc-a5d9-f311da55ef81\n\n**TAGS EXECUTION**\n\nhttps://github.com/PrashantSinghT99/appium-webdriverio-cucumber/assets/52065013/afd22b93-474b-49c5-a265-409e983a7bb4\n\n**REPORTS**\n\nhttps://github.com/PrashantSinghT99/appium-webdriverio-cucumber/assets/52065013/d2ee6df5-36b5-4a2f-a296-714172d414b9\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprashantsinght99%2Fappium-webdriverio-cucumber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprashantsinght99%2Fappium-webdriverio-cucumber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprashantsinght99%2Fappium-webdriverio-cucumber/lists"}