Teswiz
End-2-End framework for Native & Web Automation using Cucumber-jvm, Appium, Selenium WebDriver, Applitools & ReportPortal
Install / Use
/learn @znsio/TeswizREADME
Latest release status:
Latest successful build id:
🚨 Breaking Changes
From Version 1.0.13 onward
As part of package restructuring, context-related classes have moved to a new package.
❗ Required Update in Imports
Replace:
import com.context.SessionContext;
import com.context.TestExecutionContext;
With:
import com.znsio.teswiz.context.SessionContext;
import com.znsio.teswiz.context.TestExecutionContext;
NOTE
Use JDK v17 or higher
To Build
./gradlew clean build
What is this repository about?
This repository implements automated tests for Android & iOS apps, specified using cucumber-jvm and intelligently run them against
- Android
- iOS
- Windows Apps
- Web
- Electron
Applitools (https://applitools.com/) Visual AI, and Applitools Ultrafast Grid (https://applitools.com/product-ultrafast-test-cloud/) is integrated with this framework, to provide Visual AI testing as part of functional automation.
Reports will be uploaded to reportportal.io, that you would need to setup separately, and provide the server details in
src/test/resources/reportportal.properties file or provide the path to the file using this environment
variable: REPORT_PORTAL_FILE
Test can run on local browsers / devices, or against any cloud provider, such as TestMu AI (formerly LambdaTest), HeadSpin, BrowserStack, SauceLabs, pCloudy.
CI Batch Name Suffix for Applitools
To append a CI-specific suffix to the Applitools batch name, set APPLITOOLS_BATCH_NAME_SUFFIX.
Example for GitHub Actions:
additional-env: "APPLITOOLS_BATCH_NAME_SUFFIX=' - #${{ github.run_number }}'"
Cloud provider notes
TestMu AI (formerly LambdaTest)
- Supported config/capability samples in this repo:
configs/theapp/theapp_lambdatest_web_config.propertiesconfigs/theapp/theapp_lambdatest_android_config.propertiesconfigs/theapp/theapp_lambdatest_ios_config.propertiescaps/theapp/theapp_lambdatest_web_capabilities.jsoncaps/theapp/theapp_lambdatest_android_capabilities.jsoncaps/theapp/theapp_lambdatest_ios_capabilities.json
- Web runs use W3C-safe capabilities, with LambdaTest-specific keys inside
LT:Options. - Mobile runs use LambdaTest-specific keys inside
lt:options. networkandappProfilingare read from capability files (not hardcoded by framework).- Native app uploads:
- If
CLOUD_UPLOAD_APP=true, teswiz uploads the app to LambdaTest and uses the returnedlt://...app id automatically. - If
CLOUD_UPLOAD_APP=false, you must provideAPP_PATH=lt://...as an environment variable, system property, or in the config file. - Do not use a local file path such as
temp/sampleApps/TheApp.ipawhenCLOUD_UPLOAD_APP=false.
- If
BrowserStack
- Web runs use
bstack:options/browserstackOptionsmapping for BrowserStack-specific options. - Native app uploads:
- For iOS uploads (
.ipaand.zip), upload command includesios_keychain_support=true. - For non-iOS uploads (for example
.apk), that flag is not added.
- For iOS uploads (
Tech stack used
- JDK 17
- cucumber-jvm (https://cucumber.io)
- Appium 2.x (https://appium.io)
- https://javadoc.io/doc/io.appium/java-client/8.0.0-beta/deprecated-list.html
- Selenium WebDriver 4.x (https://selenium.dev)
- https://www.selenium.dev/selenium/docs/api/java/deprecated-list.html
- reportportal.io (https://reportportal.io)
- Applitools (https://applitools.com)
- Build tool: gradle v8
- cucumber-reporting (https://github.com/damianszczepanik/cucumber-reporting)
Prerequisites
Getting started using teswiz
Configuring the test execution
Running the sample tests
Writing the first test
Setting up the Hard Gate
Additional configurations
Running Visual Tests using Applitools Visual AI
Functional/Feature Coverage
Configuration parameters
Add Auto Logging Using AspectJ
Setting up docker containers
Logging to ReportPortal
BREAKING CHANGES from v0.0.81
Troubleshooting / FAQs
Trouble downloading teswiz from jitpack.io?
Contact Anand Bagmar for help or if you face issues using teswiz
Related Skills
node-connect
354.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
