Properties List
You can use these tab groups to navigate and get information about how to manage your desired properties in all the different ways possible.
- Code-based
- CLI-based
- File-based
- Default Values
You can read/write any property programmatically to provide more flexibility and control during runtime.
You can set some properties via the CLI command that you use to execute your tests.
The traditional way of configuring SHAFT properties, using this approach you can simply create your own
custom.properties
file.The default/preset values built into SHAFT, with a description of what each one does and the possible values.
Platform
- These set of properties control the basic target execution platform settings, like execution location and target operating system.
- Code-based
- CLI-based
- File-based
- Default Values
import com.shaft.driver.SHAFT;
import org.openqa.selenium.Platform;
/** get **/
String crossBrowserMode = SHAFT.Properties.platform.crossBrowserMode();
String executionAddress = SHAFT.Properties.platform.executionAddress();
String targetPlatform = SHAFT.Properties.platform.targetPlatform();
String proxy = SHAFT.Properties.platform.proxy();
Boolean driverProxy = SHAFT.Properties.platform.driverProxySettings();
Boolean jvmProxy = SHAFT.Properties.platform.jvmProxySettings();
Boolean enableBiDi = SHAFT.Properties.platform.enableBiDi();
/** set **/
SHAFT.Properties.platform.set().crossBrowserMode("off");
SHAFT.Properties.platform.set().executionAddress("local");
SHAFT.Properties.platform.set().targetPlatform(Platform.LINUX.name());
SHAFT.Properties.platform.set().proxySettings("");
SHAFT.Properties.platform.set().driverProxySettings(true);
SHAFT.Properties.platform.set().jvmProxySettings(true);
SHAFT.Properties.platform.set().enableBiDi(true);
mvn -e test "-DexecutionAddress=localhost:4444" "-DtargetOperatingSystem=LINUX"
src/main/resources/properties/custom.properties
SHAFT.CrossBrowserMode=off
executionAddress=local
targetOperatingSystem=LINUX
com.SHAFT.proxySettings=
driverProxySettings=true
jvmProxySettings=true
enableBiDi=true
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
SHAFT.CrossBrowserMode | off | off , sequential , parallelized | • Cross Browser Mode allows SHAFT to run your test class against Chrome, Firefox, and Safari! • You need to have 'Docker Desktop' installed on your machine, and configured to use Linux images. • Off → Your tests will run normally and respect your configuration. • Sequential → Your tests will run on Chrome, Firefox, and Safari in sequence. • Parallelized → Your tests will run on Chrome, Firefox and Safari in parallel. And for each browser they will run in sequence. |
executionAddress | local | local , dockerized , browserstack , host:port , http://host:port/wd/hub | • For Appium, set the below settings and move to the Mobile tab to continue. • For BrowserStack, set the "Target Operating System" below, and the "Automation Name" in the Mobile tab, then configure the "browserStack.properties" file in your project directory. |
targetOperatingSystem | LINUX | LINUX , WINDOWS , MAC , ANDROID , IOS | |
com.SHAFT.proxySettings | | host:port | • Used to configure testing behind a proxy. e.g. corporate proxy. |
driverProxySettings | true | true , false | • To enable or disable the driver proxy. |
jvmProxySettings | true | true , false | • To enable or disable the JVM proxy. |
enableBiDi | true | true , false | • To enable or disable the WebDriver BiDi protocol. |
Web
- These set of properties control web GUI test automation settings, like target browser, headless execution, and mobile emulation.
- Code-based
- CLI-based
- File-based
- Default Values
import com.shaft.driver.SHAFT;
import org.openqa.selenium.remote.Browser;
/** get **/
var targetBrowserName = SHAFT.Properties.web.targetBrowserName();
String targetBrowserName = SHAFT.Properties.web.targetBrowserName();
boolean headlessExecution = SHAFT.Properties.web.headlessExecution();
boolean forceBrowserDownload = SHAFT.Properties.web.forceBrowserDownload();
boolean isMobileEmulation = SHAFT.Properties.web.isMobileEmulation();
boolean mobileEmulationIsCustomDevice = SHAFT.Properties.web.mobileEmulationIsCustomDevice();
String mobileEmulationDeviceName = SHAFT.Properties.web.mobileEmulationDeviceName();
int mobileEmulationWidth = SHAFT.Properties.web.mobileEmulationWidth();
int mobileEmulationHeight = SHAFT.Properties.web.mobileEmulationHeight();
double mobileEmulationPixelRatio = SHAFT.Properties.web.mobileEmulationPixelRatio();
String mobileEmulationUserAgent = SHAFT.Properties.web.mobileEmulationUserAgent();
String baseURL = SHAFT.Properties.web.baseURL();
int browserWindowWidth = SHAFT.Properties.web.browserWindowWidth();
int browserWindowHeight = SHAFT.Properties.web.browserWindowHeight();
/** set **/
SHAFT.Properties.web.set().targetBrowserName(Browser.CHROME.browserName())
.headlessExecution(false)
.forceBrowserDownload(false)
.isMobileEmulation(false)
.mobileEmulationIsCustomDevice(false)
.mobileEmulationDeviceName("")
.mobileEmulationWidth("")
.mobileEmulationHeight("")
.mobileEmulationPixelRatio("")
.mobileEmulationUserAgent("")
.baseURL("")
.browserWindowWidth(1920)
.browserWindowHeight(1080);
mvn -e test "-DtargetBrowserName=FIREFOX" "-DheadlessExecution=true" "-DforceBrowserDownload=true"
src/main/resources/properties/custom.properties
targetBrowserName=CHROME
forceBrowserDownload=false
headlessExecution=false
isMobileEmulation=false
mobileEmulation.isCustomDevice=false
mobileEmulation.deviceName=
mobileEmulation.width=
mobileEmulation.height=
mobileEmulation.pixelRatio=
mobileEmulation.userAgent=
baseURL=
browserWindowWidth=1920
browserWindowHeight=1080
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
targetBrowserName | CHROME | CHROME , FIREFOX , SAFARI , EDGE | |
forceBrowserDownload | false | true , false | • This only works for Chrome and Firefox. • Allows you to use Selenium Manager to download the latest version from CfT which promises better performance and reliability. |
headlessExecution | false | true , false | • This only works for Chrome, Firefox and Edge. |
isMobileEmulation | false | true , false | • This only works for Chrome and Edge. |
mobileEmulation.isCustomDevice | false | true , false | • This only works for Chrome and Edge. |
mobileEmulation.deviceName | | blackberryZ30 , BlackberryPlayBook , galaxyNote3 , galaxyNoteII , galaxySIII , galaxyS5 , galaxyS8 , samsungGalaxyS8+ , galaxyS9+ , galaxyTabS4 , galaxyFold , samsungGalaxyS20Ultra , samsungGalaxyA51/71 , kindleFireHDX , lgOptimusL70 , microsoftLumia550 , microsoftLumia950 , motoG4 , nexus10 , nexus4 , nexus5 , nexus5X , nexus6 , nexus6P , nexus7 , nokiaLumia520 , nokiaN9 , nestHub , nestHubMax , pixel2 , pixel2XL , pixel3 , pixel3XL , pixel4 , pixel5 , jioPhone2 , iPhone4 , iPhone5/SE , iPhone6/7/8 , iPhone6/7/8Plus , iPhoneSE , iPhoneX , iPhoneXR , iPhone12Pro , iPad , iPadPro , iPadAir , iPadMini , surfacePro7 , surfaceDuo | • This only works for Chrome and Edge. |
mobileEmulation.width | | example: 360 | • This only works for Chrome and Edge. |
mobileEmulation.height | | example: 600 | • This only works for Chrome and Edge. |
mobileEmulation.pixelRatio | | example: 2.0 | • This only works for Chrome and Edge. |
mobileEmulation.userAgent | | example: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0 | • This only works for Chrome and Edge. |
baseURL | | example: https://github.com/ShaftHQ/SHAFT_ENGINE | |
browserWindowWidth | 1920 | • Won't work if autoMaximizeBrowserWindow is enabled | |
browserWindowHeight | 1080 | • Won't work if autoMaximizeBrowserWindow is enabled |
Mobile
- These set of properties control web and/or native mobile GUI test automation settings, like target platform version, path to the app under test, and the activity name that you want to start testing.
- Code-based
- CLI-based
- File-based
- Default Values
import com.shaft.driver.SHAFT;
import org.openqa.selenium.Platform;
import io.appium.java_client.remote.AutomationName;
/** get **/
String platformName = SHAFT.Properties.mobile.platformName();
String platformVersion = SHAFT.Properties.mobile.platformVersion();
String deviceName = SHAFT.Properties.mobile.deviceName();
String automationName = SHAFT.Properties.mobile.automationName();
String udid = SHAFT.Properties.mobile.udid();
String browserName = SHAFT.Properties.mobile.browserName();
String browserVersion = SHAFT.Properties.mobile.browserVersion();
String app = SHAFT.Properties.mobile.app();
String appPackage = SHAFT.Properties.mobile.appPackage();
String appActivity = SHAFT.Properties.mobile.appActivity();
/** set **/
SHAFT.Properties.platform.set().targetPlatform(Platform.ANDROID.name());
SHAFT.Properties.mobile.set().platformVersion("13.0")
.deviceName("Google Pixel 7")
.automationName(AutomationName.ANDROID_UIAUTOMATOR2)
.udid("")
.browserName("")
.browserVersion("")
.app("src/test/resources/testDataFiles/apps/ApiDemos-debug.apk")
.appPackage("")
.appActivity("");
mvn -e test "-Dmobile_platformVersion=13.0" "-Dmobile_deviceName=Google Pixel 7"
src/main/resources/properties/custom.properties
targetOperatingSystem=ANDROID
mobile_platformVersion=13.0
mobile_deviceName=Google Pixel 7
mobile_automationName=UIAutomator2
mobile_udid=
mobile_browserName=
MobileBrowserVersion=
mobile_app=src/test/resources/testDataFiles/apps/ApiDemos-debug.apk
mobile_appPackage=
mobile_appActivity=
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
mobile_platformVersion | | example: 11.0, 13.0 | • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
mobile_deviceName | | example: ANDROID_EMULATOR | • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
mobile_automationName | UIAutomator2 | UiAutomator2 , Espresso , XCUITest | • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
mobile_udid | | example: RQ3005TAQP | • Unique device identifier of the connected physical device (leave empty if not applicable). • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
mobile_browserName | | chrome , Chromium , Browser , Safari , samsung | • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
MobileBrowserVersion | | example: 83.0.4103.39 | • The latest version of the WebDriver executable that is compatible with the target browser. You can get it from here. • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
mobile_app | | relativePath/to/myApp.apk , absolutePath/to/myApp.apk , http://myapp.com/app.ipa | • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
mobile_appPackage | | example: com.example.android.myApp | • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
mobile_appActivity | | example: .MainActivity | • You can add any property from the List of Appium Capabilities directly to your .property files or via CLI arguments, just make sure to add mobile_ as a prefix. |
Flags
- These set of properties control generic platform flags, like the number of test retry attemps, atomaximization of web browser window, and any other built-in checks or workarounds that aim to stabelize your test execution.
- Code-based
- CLI-based
- File-based
- Default Values
import com.shaft.driver.SHAFT;
/** get **/
var clickUsingJavascriptWhenWebDriverClickFails = SHAFT.Properties.flags.clickUsingJavascriptWhenWebDriverClickFails();
/** set **/
SHAFT.Properties.flags.set().clickUsingJavascriptWhenWebDriverClickFails(true);
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
retryMaximumNumberOfAttempts | 0 | example: 0 , 1 , 2 , 3 , 4 , ...etc | |
autoMaximizeBrowserWindow | true | true , false | |
forceCheckForElementVisibility | true | true , false | |
forceCheckElementLocatorIsUnique | true | true , false | |
attemptToClickBeforeTyping | false | true , false | |
attemptClearBeforeTypingUsingBackspace | false | true , false | |
forceCheckTextWasTypedCorrectly | true | true , false | |
forceCheckNavigationWasSuccessful | true | true , false | |
respectBuiltInWaitsInNativeMode | true | true , false | |
forceCheckStatusOfRemoteServer | false | true , false | |
clickUsingJavascriptWhenWebDriverClickFails | false | true , false | |
autoCloseDriverInstance | true | true , false | |
automaticallyAssertResponseStatusCode | true | true , false | |
maximumPerformanceMode | 0 | 0 , 1 , 2 | • 0 -> Disabled, 1 -> Without Headless Execution, 2 -> With Headless Execution • Enabling maximumPerformanceMode will disable all complementary features to ensure the fastest execution possible with a 400% calculated performance boost. |
skipTestsWithLinkedIssues | false | true , false | • It is recommended to leave this feature disabled unless you explicitly want to skip any tests that have the @Issue or @Issues annotation. |
disableCache | false | true , false | • To disable the cache in a browser session. |
enableTrueNativeMode | false | true , false |
Reporting
- These set of properties control the engine's built-in reporting capabilities, like whether or not to capture the element name in the report to make it more readible, capturing webdriver logs for more debugging, and the behavior of our different reports before and after test execution.
- Code-based
- CLI-based
- File-based
- Default Values
import com.shaft.driver.SHAFT;
/** get **/
var captureElementName = SHAFT.Properties.reporting.captureElementName();
/** set **/
SHAFT.Properties.reporting.set().captureElementName(false);
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
captureElementName | true | true , false | |
captureWebDriverLogs | false | true , false | |
alwaysLogDiscreetly | false | true , false | |
debugMode | false | true , false | |
openLighthouseReportWhileExecution | true | true , false | |
openExecutionSummaryReportAfterExecution | true | true , false |
Since version 8.3.20240827 Existing Allure Reporting Properties Have Changed to The Following And New Properties Added
Old Property Name | new Property Name | Default Value | Possible Values | Description |
---|---|---|---|---|
cleanAllureResultsDirectoryBeforeExecution | allure.accumulateHistory | false | true , false | when false old results are deleted before the new run |
generateAllureReportArchive | allure.generateArchive | false | true , false | generate Archive File .Zip for generated Allure report |
openAllureReportAfterExecution | allure.automaticallyOpen | true | true , false | open allure report after execution |
NEW | allure.accumulateReports | 'true' | true , false | by default keeps old html allure reports and if false it will keep only last run report |
NEW | allure.customLogo | path of SHAFT Logo | path of your Customized logo on local machine or url if your logo is hosted online | for changing SHAFT logo To your customized logo on the report |
NEW | allure.customTitle | "Test run report" | any String value | for changing Report Title from default value to any report title you want |
Timeouts
- These set of properties control the engine's built-in synchronization capabilities, such as waiting for lazy loading, element identification timeout, API connection timeout, database query timeout, and shell session timeout.
- Code-based
- CLI-based
- File-based
- Default Values
import com.shaft.driver.SHAFT;
/** get **/
var elementIdentificationTimeout = SHAFT.Properties.timeouts.defaultElementIdentificationTimeout();
/** set **/
SHAFT.Properties.timeouts.set().defaultElementIdentificationTimeout(5);
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
waitForLazyLoading | true | true , false | Especially useful for modern/responsive web apps using React, Vue, Angular, ...etc |
lazyLoadingTimeout | 30 | ||
browserNavigationTimeout | 60 | ||
pageLoadTimeout | 60 | ||
scriptExecutionTimeout | 30 | ||
defaultElementIdentificationTimeout | 60 | ||
apiSocketTimeout | 30 | ||
apiConnectionTimeout | 30 | ||
apiConnectionManagerTimeout | 30 | ||
shellSessionTimeout | 30 | ||
dockerCommandTimeout | 30 | ||
databaseLoginTimeout | 30 | ||
databaseNetworkTimeout | 30 | ||
databaseQueryTimeout | 30 | ||
waitForRemoteServerToBeUp | false | true , false | |
timeoutForRemoteServerToBeUp | 1 | ||
remoteServerInstanceCreationTimeout | 1 |
Visuals
- These set of properties control the engine's built-in visual validation and AI capabilities, such as the visual matching threshhold for AI powered element identification, when to take screenshots, screenshot types, videos, animated GIFs, and complete page snapshots.
- Code-based
- CLI-based
- File-based
- Default Values
import com.shaft.driver.SHAFT;
/** get **/
var visualMatchingThreshold = SHAFT.Properties.visuals.visualMatchingThreshold();
/** set **/
SHAFT.Properties.visuals.set().visualMatchingThreshold(0.7);
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
visualMatchingThreshold | 0.90 | any decimal value between 0.00 and 1.00 | |
screenshotParams_scalingFactor | 1 | ||
screenshotParams_whenToTakeAScreenshot | ValidationPointsOnly | Always, ValidationPointsOnly, FailuresOnly | |
screenshotParams_screenshotType | FullPage | FullPage , Regular , Element | |
screenshotParams_highlightElements | true | true , false | |
screenshotParams_highlightMethod | AI | ||
screenshotParams_skippedElementsFromScreenshot | `` | ||
screenshotParams_watermark | true | true , false | |
screenshotParams_watermarkOpacity | 0.2 | ||
createAnimatedGif | false | true , false | |
animatedGif_frameDelay | 500 | ||
videoParams_recordVideo | false | true , false | |
videoParams_scope | DriverSession | ||
whenToTakePageSourceSnapshot | Never |
Jira
- These set of properties control the engine's built-in Jira and Xray integrations for test management and defect reporting.
- Code-based
- CLI-based
- File-based
- Default Values
import com.shaft.driver.SHAFT;
/** get **/
var reportBugs = SHAFT.Properties.jira.reportBugs();
/** set **/
SHAFT.Properties.jira.set().reportBugs(true);
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
jiraInteraction | false | true , false | |
jiraUrl | https:// | ||
projectKey | `` | ||
authorization | : | ||
reportTestCasesExecution | false | true , false | |
reportPath | target/surefire-reports/testng-results.xml | ||
ExecutionName | `` | ||
ExecutionDescription | `` | ||
ReportBugs | false | true , false | |
assignee | `` | ||
allure.link.tms.pattern | https:///{} | ||
allure.link.custom.pattern | {} |
Cucumber
- These set of properties control your cucumber settings, such as the path to your feature files, the package names for your step definition classes, and any plugins you want to enable.
- You can only configure these properties by editing your
src/main/resources/properties/cucumber.properties
file.
- Code-based
- CLI-based
- File-based
- Default Values
(N/A)
(Work In Progress)
src/main/resources/properties/cucumber.properties
#############
# https://cucumber.io/docs/cucumber/api/#list-configuration-options
##############
cucumber.ansi-colors.disabled=false
#true or false. default: false
cucumber.execution.dry-run=false
#true or false. default: false
cucumber.execution.limit=
#number of scenarios to execute (CLI only).
cucumber.execution.order=lexical
#lexical, reverse, random or random:[seed] (CLI only). default: lexical
cucumber.execution.strict=true
#true or false. default: true.
cucumber.execution.wip=false
#true or false. default: false.
cucumber.features=src/test/resources
#comma separated paths to feature files. example: path/to/example.feature, path/to/other.feature
cucumber.filter.name=
#regex. example: .*Hello.*
cucumber.filter.tags=
#tag expression. example: @smoke and not @slow
cucumber.glue=customCucumberSteps, com.shaft.cucumber
# comma separated package names. example: com.example.glue
cucumber.plugin=pretty, json:allure-results/cucumber.json, html:allure-results/cucumberReport.html, com.shaft.listeners.CucumberTestRunnerListener
# comma separated plugin strings. example: pretty, json:path/to/report.json
cucumber.object-factory=
#object factory class name. example: com.example.MyObjectFactory
cucumber.snippet-type=underscore
#underscore or camelcase. default: underscore
cucumber.publish.quiet=true
CUCUMBER_PUBLISH_ENABLED=false
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
cucumber.features | src/test/resources | ||
cucumber.filter.name | `` | ||
cucumber.filter.tags | `` | ||
cucumber.glue | customCucumberSteps, com.shaft.cucumber | ||
cucumber.plugin | pretty, json:allure-results/cucumber.json, html:allure-results/cucumberReport.html, com.shaft.listeners.CucumberTestRunnerListener |
Healenium
- Code-based
- CLI-based
- File-based
- Default Values
(Work In Progress)
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
recovery-tries | 1 | ||
score-cap | 0.5 | ||
heal-enabled | false | ||
serverHost | localhost | ||
serverPort | 7878 | ||
imitatePort | 8000 |
Paths
- Code-based
- CLI-based
- File-based
- Default Values
(Work In Progress)
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
propertiesFolderPath | src/main/resources/properties/ | ||
defaultPropertiesFolderPath | src/main/resources/properties/default | ||
dynamicObjectRepositoryPath | src/main/resources/dynamicObjectRepository/ | ||
testDataFolderPath | src/test/resources/testDataFiles/ | ||
downloadsFolderPath | target/downloadedFiles/ | ||
allureResultsFolderPath | allure-results/ | ||
extentReportsFolderPath | extent-reports/ | ||
executionSummaryReportFolderPath | execution-summary/ | ||
video.folder | allure-results/videos | ||
servicesFolderPath | src/test/resources/META-INF/services/ | ||
applitoolsApiKey | `` |
Pattern
- Code-based
- CLI-based
- File-based
- Default Values
(Work In Progress)
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
testDataColumnNamePrefix | Data | ||
allure.link.issue.pattern | `` |
Tinkey
- Code-based
- CLI-based
- File-based
- Default Values
(Work In Progress)
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
tinkey.keysetFilename | `` | ||
tinkey.kms.serverType | `` | ||
tinkey.kms.credentialPath | `` | ||
tinkey.kms.masterKeyUri | `` |
BrowserStack
- These set of properties control SHAFT's built-in integration with BrowserStack.
- You can find all supported Web-based (Desktop or Mobile) execution properties & values in BrowserStack's Web Capability Generator
- You can find all supported Native Mobile App execution properties & values in BrowserStack's Appium Capability Generator
- Code-based
- CLI-based
- File-based
- Default Values
(Work In Progress)
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
browserStack.username | `` | ||
browserStack.accessKey | `` | ||
browserStack.platformVersion | `` | ||
browserStack.deviceName | `` | ||
browserStack.appUrl | `` | Use appUrl to test a previously uploaded app file | |
browserStack.customID | `` | Use customID to test the latest uploaded version as the above url expires regularly | |
browserStack.appName | `` | ||
browserStack.appRelativeFilePath | `` | ||
browserStack.osVersion | `` | In case of Desktop web testing you must also set the targetOperatingSystem , and targetBrowserName | |
browserStack.browserVersion | `` | optional, uses random by default | |
browserStack.local | false | true , false | |
browserStack.debug | false | true , false | |
browserStack.enableBiometric | false | true , false |
LambdaTest
- Code-based
- CLI-based
- File-based
- Default Values
(Work In Progress)
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
LambdaTest.username | `` | ||
LambdaTest.accessKey | `` | ||
LambdaTest.platformVersion | `` | ||
LambdaTest.deviceName | `` | ||
LambdaTest.appUrl | `` | ||
LambdaTest.appProfiling | false | true , false | |
LambdaTest.osVersion | `` | ||
LambdaTest.visual | false | true , false | |
LambdaTest.video | false | true , false | |
LambdaTest.appName | `` | Use appName and appRelativeFilePath to upload a new app file and test it | |
LambdaTest.appRelativeFilePath | `` | Use appName and appRelativeFilePath to upload a new app file and test it | |
LambdaTest.resolution | `` | ||
LambdaTest.headless | false | true , false | |
LambdaTest.timezone | `` | ||
LambdaTest.project | SHAFT_Engine | ||
LambdaTest.build | Build Name | ||
LambdaTest.selenium_version | `` | ||
LambdaTest.driver_version | `` | ||
LambdaTest.w3c | true | true , false | |
LambdaTest.browserVersion | `` | optional, uses random by default | |
LambdaTest.geoLocation | EG | Optional extra settings | |
LambdaTest.debug | false | true , false | Optional extra settings |
LambdaTest.acceptInsecureCerts | true | true , false | Optional extra settings |
LambdaTest.networkLogs | false | true , false | Optional extra settings |
LambdaTest.appiumVersion | 2.0.0 | Optional extra settings | |
LambdaTest.autoGrantPermissions | true | true , false | |
LambdaTest.autoAcceptAlerts | true | true , false | |
LambdaTest.isRealMobile | true | true , false | |
LambdaTest.console | false | true , false | |
LambdaTest.customID | `` |
Performance
- Code-based
- CLI-based
- File-based
- Default Values
(Work In Progress)
(Work In Progress)
(Work In Progress)
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
lightHouseExecution | false | ||
lightHouseExecution.port | 8888 |
TestNG
- These set of properties control your TestNG parallelization settings.
- You can only configure these properties by editing your
src/main/resources/properties/testng.properties
file.
- Code-based
- CLI-based
- File-based
- Default Values
(N/A)
(Work In Progress)
src/main/resources/properties/testng.properties
setParallel=NONE
setThreadCount=1
setVerbose=1
setPreserveOrder=true
setGroupByInstances=true
setDataProviderThreadCount=1
#Test Suite Timeout in minutes
testSuiteTimeout=1440
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
setParallel | NONE | METHODS, CLASSES, TESTS, INSTANCES | |
setParallelMode | STATIC | STATIC, DYNAMIC | |
setThreadCount | 1 | ThreadCount is used as-is in case of STATIC mode. Total ThreadCount is automatically calculated for DYNAMIC mode; (Total ThreadCount = Number of available processor cores * setThreadCount) | |
setVerbose | 1 | ||
setPreserveOrder | false | true , false | |
setGroupByInstances | false | true , false | |
setDataProviderThreadCount | 1 |
Log4j
- These set of properties control your Log4j2 logging settings.
- You can only configure these properties by editing your
src/main/resources/properties/Log4j2.properties
file.
- Code-based
- CLI-based
- File-based
- Default Values
(N/A)
(Work In Progress)
src/main/resources/properties/Log4j2.properties
name=PropertiesConfig
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.disableAnsi=false
appender.console.layout.pattern=%highlight{[%p]}{FATAL=red blink, ERROR=red bold, WARN=yellow bold, INFO=fg_#0060a8 bold, DEBUG=fg_#43b02a bold, TRACE=black} %style{%m }%style{| %-logger}{bright_black} %style{- %-thread}{bright_black} %style{- %d{hh:mm:ss a}}{bright_black} %n
appender.console.filter.threshold.type=ThresholdFilter
appender.console.filter.threshold.level=info
appender.file.type=File
appender.file.name=LOGFILE
appender.file.fileName=target/logs/log4j.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file.filter.threshold.type=ThresholdFilter
appender.file.filter.threshold.level=debug
rootLogger=debug, STDOUT, LOGFILE
logger.app.name=org.apache.http.impl.client
logger.app.level=WARN
Property Name | Default Value | Possible Values | Description |
---|---|---|---|
appender.console.layout.pattern | %highlight{[%p]}{FATAL=red blink, ERROR=red bold, WARN=yellow bold, INFO=fg_#0060a8 bold, DEBUG=fg_#43b02a bold, TRACE=black} %style{%m} %style{| @%d{hh:mm:ss a}}{bright_black} %n | Click here to learn more about log4j2 pattern layouts | |
appender.console.filter.threshold.level | info | fatal, error, warn, info, debug, trace | |
appender.file.fileName | target/logs/log4j.log | ||
appender.file.layout.pattern | [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n | ||
appender.file.filter.threshold.level | debug | fatal, error, warn, info, debug, trace |