{"id":20560122,"url":"https://github.com/LambdaTest/wdio-lambdatest-service","last_synced_at":"2025-05-09T17:33:01.813Z","repository":{"id":40799650,"uuid":"243283215","full_name":"LambdaTest/wdio-lambdatest-service","owner":"LambdaTest","description":"WebdriverIO LambdaTest Service","archived":false,"fork":false,"pushed_at":"2025-01-02T11:37:42.000Z","size":1052,"stargazers_count":8,"open_issues_count":7,"forks_count":15,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-04T09:31:17.911Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"https://webdriver.io/docs/wdio-lambdatest-service/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LambdaTest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-02-26T14:31:15.000Z","updated_at":"2025-01-02T11:34:45.000Z","dependencies_parsed_at":"2023-11-22T11:28:41.232Z","dependency_job_id":"f69136ef-01d6-4985-9b82-29cf0988c987","html_url":"https://github.com/LambdaTest/wdio-lambdatest-service","commit_stats":{"total_commits":56,"total_committers":9,"mean_commits":6.222222222222222,"dds":0.7857142857142857,"last_synced_commit":"c67315179bb5142f66919b6278b7a8f38b9e279e"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LambdaTest%2Fwdio-lambdatest-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LambdaTest%2Fwdio-lambdatest-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LambdaTest%2Fwdio-lambdatest-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LambdaTest%2Fwdio-lambdatest-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LambdaTest","download_url":"https://codeload.github.com/LambdaTest/wdio-lambdatest-service/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253102630,"owners_count":21854502,"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":["hacktoberfest"],"created_at":"2024-11-16T03:53:13.514Z","updated_at":"2025-05-09T17:33:01.805Z","avatar_url":"https://github.com/LambdaTest.png","language":"TypeScript","funding_links":[],"categories":["Plugins"],"sub_categories":["Services"],"readme":"WebdriverIO LambdaTest Service\n========================\n\n[![WDIO health check](https://github.com/LambdaTest/wdio-lambdatest-service/actions/workflows/healthcheck.yml/badge.svg?branch=master)](https://github.com/LambdaTest/wdio-lambdatest-service/actions/workflows/healthcheck.yml)\n\n\u003e A WebdriverIO service that manages tunnel and job metadata for LambdaTest users.\n\n## Installation\n\n```bash\nnpm i wdio-lambdatest-service --save-dev\n```\n\nInstructions on how to install `WebdriverIO` can be found [here.](https://webdriver.io/docs/gettingstarted.html)\n\n\n## Configuration\n\nWebdriverIO has LambdaTest support out of the box. You should simply set `user` and `key` in your `wdio.conf.js` file. To enable the feature for app automation, set `product: 'appAutomation'` in your `wdio.conf.js` file. This service plugin provides supports for [LambdaTest Tunnel](https://www.lambdatest.com/support/docs/troubleshooting-lambda-tunnel/). Set `tunnel: true` also to activate this feature.\n\n```js\n// wdio.conf.js\nexports.config = {\n    // ...\n    user: process.env.LT_USERNAME,\n    key: process.env.LT_ACCESS_KEY,\n    logFile : './logDir/api.log',\n    product : 'appAutomation',\n    services: [\n        ['lambdatest', {\n            tunnel: true\n        }]\n    ],\n    // ...\n};\n```\n\n### To get test error remarks on automation dashboard\nTo get test error remarks on automation dashboard, simply add `ltErrorRemark: true` in your `wdio.conf.js`.\n\n\n### To upload app from local or url\nUpload `android` or `ios` apps from local or hosted app url by adding this required configuration in your `wdio.conf.js`. To use the uploaded app for testing along in the same run set `enableCapability = true` , this will set the app url value in the capabilities.\n\n```js\n// wdio.conf.js\nservices: [\n    [\n        \"lambdatest\",\n        {\n        tunnel: true,\n        app_upload: true, \n        app:{\n            app_name : \"xyz\", //provide your desired app name\n            app_path : \"/path/to/your/app/file\", //provide the local app location\n            // or\n            app_url : \"https://example.test_android.apk\", //provide the url where your app is horsted or stored\n            custom_id : \"12345\", //provide your desired custom id\n            enableCapability : true\n        }\n    }\n    ]\n]\n```\n\n## Options\n\nIn order to authorize to the LambdaTest service your config needs to contain a [`user`](https://webdriver.io/docs/options.html#user) and [`key`](https://webdriver.io/docs/options.html#key) option.\n\n### tunnel\nSet this to true to enable routing connections from LambdaTest cloud through your computer. You will also need to set `tunnel` to true in browser capabilities.\n\nType: `Boolean`\u003cbr\u003e\nDefault: `false`\n\n### lambdatestOpts\nSpecified optional will be passed down to LambdaTest Tunnel.\n\nType: `Object`\u003cbr\u003e\nDefault: `{}`\n\nGiven below is an comprehensive list of all options available:\n\n#### tunnelName\nSpecifies the custom LambdaTest Tunnel name to be used.\n\n**Example:**\n```json\n{\"tunnelName\": \"my_custom_tunnel\"}\n```\n\n#### port\nPort for LambdaTest Tunnel to activate.\n\n**Example:**\n```json\n{\"port\": 33000}\n```\n#### user\nLambdaTest username.\n\n**Example:**\n```json\n{\"user\": \"your_username\"}\n```\n\n#### key\nLambdaTest accessKey.\n\n**Example:**\n```json\n{\"key\": \"your_access_key\"}\n```\n\n#### verbose\nShould every proxy request be logged to stdout.\n\n**Example:**\n```json\n{\"verbose\": true}\n```\n\n#### logFile\nLocation of the LambdaTest Tunnel log file.\n\n**Example:**\n```json\n{\"logFile\": \"/path/to/log/file\"}\n```\n\n#### config\n\nPath of the config file to use.\n**Example:**\n```json\n{\"config\": \"/path/to/config/file\"}\n```\n\n#### dir\nSpecify the local directory that will be served by a file server on Tunnel port.\n\n**Example:**\n```json\n{\"dir\": \"/path/to/local/directory\"}\n```\n\n\n#### proxyHost\nSpecifies the Tunnel proxy port hostname.\n\n**Example:**\n```json\n{\"proxyHost\": \"proxy.example.com\"}\n```\n#### proxyUser\nSpecifies the Tunnel proxy port username.\n\n**Example:**\n```json\n{\"proxyUser\": \"your_proxy_username\"}\n```\n\n#### proxyPass\nSpecifies the Tunnel proxy port password.\n\n**Example:**\n```json\n{\"proxyPass\": \"your_proxy_password\"}\n```\n\n#### proxyPort\nSpecifies the port number where Tunnel proxy will activate.\n\n**Example:**\n```json\n{\"proxyPort\": 8080}\n```\n\n#### egressOnly\nUses proxy settings only for outbound requests.\n\n**Example:**\n```json\n{\"egressOnly\": true}\n```\n\n\n#### ingressOnly\nRoutes only incoming traffic via the proxy specified.\n\n**Example:**\n```json\n{\"ingressOnly\": true}\n```\n\n\n#### pacfile\nTo use PAC (Proxy Auto-Configuration) in local testing, provide\npath of a PAC file.\n\n**Example:**\n```json\n{\"pacfile\": \"/path/to/pacfile\"}\n```\n\n#### loadBalanced\nActivates [Load Balancing](https://www.lambdatest.com/support/docs/load-balancing-in-lambda-tunnel/) for LambdaTest Tunnel.\n\n**Example:**\n```json\n{\"loadBalanced\": true}\n```\n\n#### mode\nSpecifies in which mode tunnel should run \"ssh\" or \"ws\". (default \"ssh\").\n\n**Example:**\n```json\n{\"mode\": \"ssh\"}\n```\n\n#### sshConnType\nSpecify type of ssh connection (over_22, over_443, over_ws). To use –sshConnType, specify ––mode ssh flag first.\n\n**Example:**\n```json\n{\"sshConnType\": \"over_22\"}\n```\n\n#### maxSSHConnections\nIncrease the SSH connection from Tunnel Client to Tunnel Server. Maximum allowed value is 30.\n\n**Example:**\n```json\n{\"maxSSHConnections\": 2}\n```\n\n#### sharedTunnel\nSharing Tunnel among team members.\n\n**Example:**\n```json\n{\"sharedTunnel\": true}\n```\n\n#### env\nThe environment on which the LambdaTest Tunnel will run.\n\n**Example:**\n```json\n{\"env\": \"production\"}\n```\n\n\n#### infoAPIPort\nExposes [Tunnel Info API](https://www.lambdatest.com/support/docs/advanced-tunnel-features/#tunnelinfoapis) at the specified port.\n\n**Example:**\n```json\n{\"infoAPIPort\": 8080}\n```\n\n#### callbackURL\nCallback URL for tunnel status.\n\n**Example:**\n```json\n{\"callbackURL\": \"https://example.com/callback\"}\n```\n\n\n#### allowHosts\nComma separated list of hosts to route via tunnel. Everything else will be routed via Internet.\n\n**Example:**\n```json\n{\"allowHosts\": \"example.com,anotherexample.com\"}\n```\n\n#### bypassHosts\nComma separated list of hosts to bypass from tunnel. These will be routed via internet.\n\n**Example:**\n```json\n{\"bypassHosts\": \"example.com,anotherexample.com\"}\n```\n\n\n\n#### clientCert\nmTLS Client Certificate filepath.\n\n**Example:**\n```json\n{\"clientCert\": \"/path/to/client_certificate\"}\n```\n\n#### clientKey\nmTLS Client Key filepath.\n\n**Example:**\n```json\n{\"clientKey\": \"/path/to/client_key\"}\n```\n\n#### mTLSHosts\nComma separated list of mTLS hosts.\n\n**Example:**\n```json\n{\"mTLSHosts\": \"example.com,anotherexample.com\"}\n```\n\n\n#### dns\nComma separated list of DNS Servers.\n\n**Example:**\n```json\n{\"dns\": \"8.8.8.8,8.8.4.4\"}\n```\n\n\n#### mitm\nEnable the [MITM (Man-in-the-middle)](https://www.lambdatest.com/support/docs/advanced-tunnel-features/#mitmlocaltesting) mode for LambdaTest Tunnel.\n\n**Example:**\n```json\n{\"mitm\": true}\n```\n\n#### ntlm\nTo use Microsoft NTLM (Windows NT LAN Manager) authentication for communication or transport purposes.\n\n**Example:**\n```json\n{\"ntlm\": true}\n```\n\n#### pidfile\nPath of pidfile, where process Id will be written.\n\n**Example:**\n```json\n{\"pidfile\": \"/path/to/pidfile\"}\n```\n\n\n#### usePrivateIp\nSets remote address to an internal IP of client machine.\n\n**Example:**\n```json\n{\"usePrivateIp\": true}\n```\n\nYou can find more about these options [here](https://www.lambdatest.com/support/docs/lambda-tunnel-modifiers/).\n\n### preferScenarioName\nCucumber only. Set the session name to the Scenario name if only a single Scenario ran.\nUseful when running in parallel with [wdio-cucumber-parallel-execution](https://github.com/SimitTomar/wdio-cucumber-parallel-execution).\n\nType: `Boolean`\u003cbr /\u003e\nDefault: `false`\n\n### sessionNameFormat\nCustomize the session name format.\n\nType: `Function`\u003cbr /\u003e\nDefault (Cucumber/Jasmine): `(config, capabilities, suiteTitle) =\u003e suiteTitle`\u003cbr /\u003e\nDefault (Mocha): `(config, capabilities, suiteTitle, testTitle) =\u003e suiteTitle + ' - ' + testTitle`\n\n### sessionNameOmitTestTitle\nMocha only. Do not append the test title to the session name.\n\nType: `Boolean`\u003cbr /\u003e\nDefault: `false`\n\n### sessionNamePrependTopLevelSuiteTitle\nMocha only. Prepend the top level suite title to the session name.\n\nType: `Boolean`\u003cbr /\u003e\nDefault: `false`\n\n### setSessionName\nAutomatically set the session name.\n\nType: `Boolean`\u003cbr /\u003e\nDefault: `true`\n\n### setSessionStatus\nAutomatically set the session status (passed/failed).\n\nType: `Boolean`\u003cbr /\u003e\nDefault: `true`\n\n\n### ignoreTestCountInName\nIgnore the count of retries of a test in the name\n\nType: `Boolean`\u003cbr /\u003e\nDefault: `false`\n\n\n### useScenarioName\nTo get test names as scenario names for cucumber specific tests, simply add `useScenarioName: true` in your `wdio.conf.js`.\n\n## Steps to compile and publish\n1. git clone this repository.\n2. run \"npm install\"\n3. run \"npm run build\"\n4. Steps to Publish: run \"npm login\"\n5. run \"npm publish --access public\"\n\n----\n\nFor more information on WebdriverIO see the [homepage](https://webdriver.io).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLambdaTest%2Fwdio-lambdatest-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLambdaTest%2Fwdio-lambdatest-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLambdaTest%2Fwdio-lambdatest-service/lists"}