{"id":14969345,"url":"https://github.com/znsio/teswiz","last_synced_at":"2026-05-18T07:14:20.853Z","repository":{"id":37101810,"uuid":"344716219","full_name":"znsio/teswiz","owner":"znsio","description":"End-2-End framework for Native \u0026 Web Automation using Cucumber-jvm, Appium, Selenium WebDriver, Applitools \u0026 ReportPortal","archived":false,"fork":false,"pushed_at":"2026-05-11T18:46:25.000Z","size":54012,"stargazers_count":99,"open_issues_count":28,"forks_count":62,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-05-11T20:35:59.207Z","etag":null,"topics":["android","api-rest","appium","applitools","cucumber","gradle","ios","reportportal","selenium","selenium-webdriver","webdriver"],"latest_commit_sha":null,"homepage":"","language":"Java","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/znsio.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.MD","contributing":null,"funding":null,"license":"License.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-05T06:27:56.000Z","updated_at":"2026-04-17T11:25:02.000Z","dependencies_parsed_at":"2025-12-12T02:00:10.166Z","dependency_job_id":null,"html_url":"https://github.com/znsio/teswiz","commit_stats":{"total_commits":1329,"total_committers":40,"mean_commits":33.225,"dds":"0.33559066967644846","last_synced_commit":"683a7da660f8dfa9e66e02c881ce66f03f4e4949"},"previous_names":[],"tags_count":66,"template":false,"template_full_name":null,"purl":"pkg:github/znsio/teswiz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsio%2Fteswiz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsio%2Fteswiz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsio%2Fteswiz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsio%2Fteswiz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/znsio","download_url":"https://codeload.github.com/znsio/teswiz/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znsio%2Fteswiz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33168910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T05:43:36.989Z","status":"ssl_error","status_checked_at":"2026-05-18T05:43:19.133Z","response_time":71,"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":["android","api-rest","appium","applitools","cucumber","gradle","ios","reportportal","selenium","selenium-webdriver","webdriver"],"created_at":"2024-09-24T13:41:43.590Z","updated_at":"2026-05-18T07:14:20.847Z","avatar_url":"https://github.com/znsio.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![](https://badges.frapsoft.com/os/v3/open-source.svg)](https://github.com/znsio/teswiz)\n[![GitHub stars](https://img.shields.io/github/stars/znsio/teswiz.svg?style=flat)](https://github.com/znsio/teswiz/stargazers)\n[ ![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen.svg?style=flat )](https://github.com/znsio/teswiz/pulls)\n[![GitHub forks](https://img.shields.io/github/forks/znsio/teswiz.svg?style=social\u0026label=Fork)](https://github.com/znsio/teswiz/network)\n\n## Latest release status:\n[![0.0.86](https://jitpack.io/v/znsio/teswiz.svg)](https://jitpack.io/#znsio/teswiz)\n[![CI](https://github.com/znsio/teswiz/actions/workflows/Build_And_Run_Unit_Tests_CI.yml/badge.svg)](https://github.com/znsio/teswiz/actions/workflows/Build_And_Run_Unit_Tests_CI.yml)\n[![CodeQL](https://github.com/znsio/teswiz/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/znsio/teswiz/actions/workflows/codeql-analysis.yml)\n\n## Latest successful build id:\n[![Latest Commit](https://img.shields.io/badge/commit-f9aa68b-blue.svg)](https://jitpack.io/#znsio/teswiz)\n\n## 🚨 Breaking Changes\n\n### From Version `1.0.13` onward\n\nAs part of package restructuring, context-related classes have moved to a new package.\n\n#### ❗ Required Update in Imports\n\nReplace:\n\n```java\nimport com.context.SessionContext;\nimport com.context.TestExecutionContext;\n```\n\nWith:\n\n```java\nimport com.znsio.teswiz.context.SessionContext;\nimport com.znsio.teswiz.context.TestExecutionContext;\n```\n\n# NOTE\n\n    Use JDK v17 or higher\n\n# To Build\n`./gradlew clean build`\n\n# What is this repository about?\n\nThis repository implements automated tests for Android \u0026 iOS apps, specified using cucumber-jvm and intelligently run\nthem against\n\n* Android\n* iOS\n* Windows Apps\n* Web \n* Electron\n\nApplitools (https://applitools.com/) Visual AI, and Applitools Ultrafast Grid (https://applitools.com/product-ultrafast-test-cloud/) is integrated with this framework, to provide\nVisual AI testing as part of functional automation.\n\nteswiz also supports:\n* Applitools Native Mobile Layout through `useNML`\n* Verifying application with Figma designs using the explicit step\n  `I have my Figma design with app name \"...\", test name \"...\" and baseline name \"...\" available in Applitools`\n\nReports will be uploaded to reportportal.io, that you would need to setup separately, and provide the server details in\nsrc/test/resources/reportportal.properties file or provide the path to the file using this environment\nvariable: `REPORT_PORTAL_FILE`\n\nTest can run on local browsers / devices, or against any cloud provider, such as TestMu AI (formerly LambdaTest), HeadSpin, BrowserStack, SauceLabs, pCloudy.\n\n## CI Batch Name Suffix for Applitools\n\nTo append a CI-specific suffix to the Applitools batch name, set `APPLITOOLS_BATCH_NAME_SUFFIX`.\n\nExample for GitHub Actions:\n\n`additional-env: \"APPLITOOLS_BATCH_NAME_SUFFIX=' - #${{ github.run_number }}'\"`\n\n## Cloud provider notes\n\n### TestMu AI (formerly LambdaTest)\n\n* Supported config/capability samples in this repo:\n  * `configs/theapp/theapp_lambdatest_web_config.properties`\n  * `configs/theapp/theapp_lambdatest_android_config.properties`\n  * `configs/theapp/theapp_lambdatest_ios_config.properties`\n  * `caps/theapp/theapp_lambdatest_web_capabilities.json`\n  * `caps/theapp/theapp_lambdatest_android_capabilities.json`\n  * `caps/theapp/theapp_lambdatest_ios_capabilities.json`\n* Web runs use W3C-safe capabilities, with LambdaTest-specific keys inside `LT:Options`.\n* Mobile runs use LambdaTest-specific keys inside `lt:options`.\n* `network` and `appProfiling` are read from capability files (not hardcoded by framework).\n* Native app uploads:\n  * If `CLOUD_UPLOAD_APP=true`, teswiz uploads the app to LambdaTest and uses the returned `lt://...` app id automatically.\n  * If `CLOUD_UPLOAD_APP=false`, you must provide `APP_PATH=lt://...` as an environment variable, system property, or in the config file.\n  * Do not use a local file path such as `temp/sampleApps/TheApp.ipa` when `CLOUD_UPLOAD_APP=false`.\n\n### BrowserStack\n\n* Web runs use `bstack:options` / `browserstackOptions` mapping for BrowserStack-specific options.\n* Native app uploads:\n  * For iOS uploads (`.ipa` and `.zip`), upload command includes `ios_keychain_support=true`.\n  * For non-iOS uploads (for example `.apk`), that flag is not added.\n\n## Tech stack used\n\n* **JDK 17**\n* cucumber-jvm (https://cucumber.io)\n* Appium 2.x (https://appium.io) \n  * https://javadoc.io/doc/io.appium/java-client/8.0.0-beta/deprecated-list.html\n* Selenium WebDriver 4.x (https://selenium.dev)\n  * https://www.selenium.dev/selenium/docs/api/java/deprecated-list.html \n* reportportal.io (https://reportportal.io)\n* Applitools (https://applitools.com)\n* Build tool: gradle v8\n* cucumber-reporting (https://github.com/damianszczepanik/cucumber-reporting)\n\n## [Prerequisites](docs/Prerequisites-README.md)\n\n## [Getting started using teswiz](docs/GettingStartedUsingTeswiz-README.md)\n\n## [Configuring the test execution](docs/ConfiguringTestExecution-README.md)\n\n## [Running the sample tests](docs/SampleTests-README.md)\n\n## [Writing the first test](docs/WritingFirstTest-README.md)\n\n## [Setting up the Hard Gate](./docs/HardGate.md)\n\n## Additional configurations\n\n### [Running Visual Tests using Applitools Visual AI](docs/RunningVisualTests-README.md)\n\n### [Functional/Feature Coverage](docs/FeatureCoverage-README.md)\n\n### [Configuration parameters](docs/ConfigurationParameters-README.md)\n\n### [Add Auto Logging Using AspectJ](docs/AspectJLogging-README.md)\n\n### [Setting up docker containers](docs/DockerSetup-README.md)\n\n### [Logging to ReportPortal](docs/ReportPortal-README.md)\n\n## [BREAKING CHANGES from v0.0.81](docs/BreakingChanges-README.md)\n\n## [Troubleshooting / FAQs](docs/FAQs-README.md)\n\n## [Trouble downloading teswiz from jitpack.io?](docs/teswizDownloadIssue.md)\n\n### Contact [Anand Bagmar](https://twitter.com/BagmarAnand) for help or if you face issues using teswiz\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznsio%2Fteswiz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fznsio%2Fteswiz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznsio%2Fteswiz/lists"}