From 300015218eed64264377358d3f3673c2b6183e83 Mon Sep 17 00:00:00 2001 From: Igor Date: Wed, 24 Jul 2024 13:51:15 +0200 Subject: [PATCH] Implement LambdaTest remote driver support. --- jdi-bdd-tests/src/test/resources/test.properties | 2 +- jdi-eyes-demo/src/test/resources/test.properties | 2 +- jdi-light-angular-tests/src/test/resources/test.properties | 2 +- .../src/test/resources/test.properties | 2 +- .../src/test/resources/test.properties | 2 +- .../com/epam/jdi/light/driver/get/RemoteDriverInfo.java | 6 ++++++ .../main/java/com/epam/jdi/light/settings/WebSettings.java | 1 + .../additional-jdi-light-configuration-metadata.json | 6 +++++- jdi-light-html-tests/src/test/resources/test.properties | 2 +- .../src/test/resources/test.properties | 2 +- .../com/epam/jdi/light/driver/get/RemoteDriverInfo.java | 6 ++++++ .../main/java/com/epam/jdi/light/settings/WebSettings.java | 1 + .../additional-jdi-light-configuration-metadata.json | 6 +++++- jdi-light-vuetify-tests/src/test/resources/test.properties | 2 +- .../jdi-bdd-no-po-tests/src/test/resources/test.properties | 2 +- .../jdi-light-examples/src/test/resources/test.properties | 2 +- .../jdi-performance/src/test/resources/test.properties | 2 +- .../src/test/resources/test.properties | 2 +- .../src/test/resources/test.properties | 2 +- 19 files changed, 37 insertions(+), 15 deletions(-) diff --git a/jdi-bdd-tests/src/test/resources/test.properties b/jdi-bdd-tests/src/test/resources/test.properties index 2bb4634c3f..acdf656da5 100644 --- a/jdi-bdd-tests/src/test/resources/test.properties +++ b/jdi-bdd-tests/src/test/resources/test.properties @@ -20,7 +20,7 @@ json.page.objects=/json/page/objects #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub screenshot.strategy=on failure html.code.strategy=on failure diff --git a/jdi-eyes-demo/src/test/resources/test.properties b/jdi-eyes-demo/src/test/resources/test.properties index abd13004f9..d09346c935 100644 --- a/jdi-eyes-demo/src/test/resources/test.properties +++ b/jdi-eyes-demo/src/test/resources/test.properties @@ -6,7 +6,7 @@ domain=${domain} driver.getLatest=true smart.locator=#%s log.level=STEP -#remote.type=sauce | browserstack | selenium_localhost +#remote.type=sauce | browserstack | lambdatest | selenium_localhost #search.element.strategy=strict | soft | visible, multiple | any, single #assert.type=soft | strict diff --git a/jdi-light-angular-tests/src/test/resources/test.properties b/jdi-light-angular-tests/src/test/resources/test.properties index e8de24305f..f0843594ae 100644 --- a/jdi-light-angular-tests/src/test/resources/test.properties +++ b/jdi-light-angular-tests/src/test/resources/test.properties @@ -20,7 +20,7 @@ log.level=INFO #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub screenshot.strategy=on failure|on assert #headless=true | false diff --git a/jdi-light-applitools-tests/src/test/resources/test.properties b/jdi-light-applitools-tests/src/test/resources/test.properties index abd13004f9..d09346c935 100644 --- a/jdi-light-applitools-tests/src/test/resources/test.properties +++ b/jdi-light-applitools-tests/src/test/resources/test.properties @@ -6,7 +6,7 @@ domain=${domain} driver.getLatest=true smart.locator=#%s log.level=STEP -#remote.type=sauce | browserstack | selenium_localhost +#remote.type=sauce | browserstack | lambdatest | selenium_localhost #search.element.strategy=strict | soft | visible, multiple | any, single #assert.type=soft | strict diff --git a/jdi-light-bootstrap-tests/src/test/resources/test.properties b/jdi-light-bootstrap-tests/src/test/resources/test.properties index 1f15ad57ed..c7879b2ab6 100644 --- a/jdi-light-bootstrap-tests/src/test/resources/test.properties +++ b/jdi-light-bootstrap-tests/src/test/resources/test.properties @@ -21,7 +21,7 @@ log.info.details=element #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub #headless=true | false screenshot.strategy=on failure diff --git a/jdi-light-core/src/main/java/com/epam/jdi/light/driver/get/RemoteDriverInfo.java b/jdi-light-core/src/main/java/com/epam/jdi/light/driver/get/RemoteDriverInfo.java index 862b69eccc..692fbf779c 100644 --- a/jdi-light-core/src/main/java/com/epam/jdi/light/driver/get/RemoteDriverInfo.java +++ b/jdi-light-core/src/main/java/com/epam/jdi/light/driver/get/RemoteDriverInfo.java @@ -18,9 +18,15 @@ public class RemoteDriverInfo { public static String browserstack() { return browserstack(getenv("USERNAME"), getenv("ACCESS_KEY")); } + public static String lambdatest() { + return lambdatest(getenv("USERNAME"), getenv("ACCESS_KEY")); + } public static String browserstack(String userName, String accessKey) { return getRemoteURL(format("https://%s:%s@hub-cloud.browserstack.com/", userName, accessKey)); } + public static String lambdatest(String userName, String accessKey) { + return getRemoteURL(format("https://%s:%s@hub.lambdatest.com/", userName, accessKey)); + } public static String appium() {return getRemoteURL("http://0.0.0.0:4723/");} public static String getRemoteURL() { return getRemoteURL(DRIVER.remoteUrl); diff --git a/jdi-light-core/src/main/java/com/epam/jdi/light/settings/WebSettings.java b/jdi-light-core/src/main/java/com/epam/jdi/light/settings/WebSettings.java index 971b6e13a2..5fd6992175 100644 --- a/jdi-light-core/src/main/java/com/epam/jdi/light/settings/WebSettings.java +++ b/jdi-light-core/src/main/java/com/epam/jdi/light/settings/WebSettings.java @@ -270,6 +270,7 @@ private static String getRemoteUrl(String prop) { DRIVER.capabilities.common = sauceCapabilities(); return SAUCE_LABS; case "browserstack": return browserstack(); + case "lambdatest": return lambdatest(); case "selenoid": return SELENOID_LOCAL; default: return SELENIUM_LOCAL_HOST; } diff --git a/jdi-light-core/src/main/resources/META-INF/additional-jdi-light-configuration-metadata.json b/jdi-light-core/src/main/resources/META-INF/additional-jdi-light-configuration-metadata.json index 7d7c75ef3b..e281ceef8c 100644 --- a/jdi-light-core/src/main/resources/META-INF/additional-jdi-light-configuration-metadata.json +++ b/jdi-light-core/src/main/resources/META-INF/additional-jdi-light-configuration-metadata.json @@ -145,7 +145,7 @@ { "name": "remote.type", "type": "java.lang.String", - "description": "Specify remote run type: sauce labs, browserstack, selenium grid", + "description": "Specify remote run type: sauce labs, browserstack, lamdatest, selenium grid", "defaultValue": "selenium localhost" }, { @@ -608,6 +608,10 @@ "value": "browserstack", "description": "Use BrowserStack capabilities to run tests remotely" }, + { + "value": "lambdatest", + "description": "Use LambdaTest capabilities to run tests remotely" + }, { "value": "selenium localhost", "description": "Use Selenium to run tests remotely, driver.remote.url should be specified." diff --git a/jdi-light-html-tests/src/test/resources/test.properties b/jdi-light-html-tests/src/test/resources/test.properties index f5df0dfe68..9c45e4a3c5 100644 --- a/jdi-light-html-tests/src/test/resources/test.properties +++ b/jdi-light-html-tests/src/test/resources/test.properties @@ -22,7 +22,7 @@ log.info.details=element #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub #headless=true | false screenshot.strategy=on failure diff --git a/jdi-light-material-ui-tests/src/test/resources/test.properties b/jdi-light-material-ui-tests/src/test/resources/test.properties index 764d046ac1..cafbbc962d 100644 --- a/jdi-light-material-ui-tests/src/test/resources/test.properties +++ b/jdi-light-material-ui-tests/src/test/resources/test.properties @@ -20,7 +20,7 @@ log.level=INFO #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub #screenshot.strategy=on fail | on | off #headless=true | false diff --git a/jdi-light-selenium3/src/main/java/com/epam/jdi/light/driver/get/RemoteDriverInfo.java b/jdi-light-selenium3/src/main/java/com/epam/jdi/light/driver/get/RemoteDriverInfo.java index 862b69eccc..692fbf779c 100644 --- a/jdi-light-selenium3/src/main/java/com/epam/jdi/light/driver/get/RemoteDriverInfo.java +++ b/jdi-light-selenium3/src/main/java/com/epam/jdi/light/driver/get/RemoteDriverInfo.java @@ -18,9 +18,15 @@ public class RemoteDriverInfo { public static String browserstack() { return browserstack(getenv("USERNAME"), getenv("ACCESS_KEY")); } + public static String lambdatest() { + return lambdatest(getenv("USERNAME"), getenv("ACCESS_KEY")); + } public static String browserstack(String userName, String accessKey) { return getRemoteURL(format("https://%s:%s@hub-cloud.browserstack.com/", userName, accessKey)); } + public static String lambdatest(String userName, String accessKey) { + return getRemoteURL(format("https://%s:%s@hub.lambdatest.com/", userName, accessKey)); + } public static String appium() {return getRemoteURL("http://0.0.0.0:4723/");} public static String getRemoteURL() { return getRemoteURL(DRIVER.remoteUrl); diff --git a/jdi-light-selenium3/src/main/java/com/epam/jdi/light/settings/WebSettings.java b/jdi-light-selenium3/src/main/java/com/epam/jdi/light/settings/WebSettings.java index c548ae0623..b68d2a9946 100644 --- a/jdi-light-selenium3/src/main/java/com/epam/jdi/light/settings/WebSettings.java +++ b/jdi-light-selenium3/src/main/java/com/epam/jdi/light/settings/WebSettings.java @@ -266,6 +266,7 @@ private static String getRemoteUrl(String prop) { DRIVER.capabilities.common = sauceCapabilities(); return SAUCE_LABS; case "browserstack": return browserstack(); + case "lambdatest": return lambdatest(); case "selenoid": return SELENOID_LOCAL; default: return SELENIUM_LOCAL_HOST; } diff --git a/jdi-light-selenium3/src/main/resources/META-INF/additional-jdi-light-configuration-metadata.json b/jdi-light-selenium3/src/main/resources/META-INF/additional-jdi-light-configuration-metadata.json index 8fc11294dd..f9fa84edfc 100644 --- a/jdi-light-selenium3/src/main/resources/META-INF/additional-jdi-light-configuration-metadata.json +++ b/jdi-light-selenium3/src/main/resources/META-INF/additional-jdi-light-configuration-metadata.json @@ -145,7 +145,7 @@ { "name": "remote.type", "type": "java.lang.String", - "description": "Specify remote run type: sauce labs, browserstack, selenium grid", + "description": "Specify remote run type: sauce labs, browserstack, lambdatest, selenium grid", "defaultValue": "selenium localhost" }, { @@ -604,6 +604,10 @@ "value": "browserstack", "description": "Use BrowserStack capabilities to run tests remotely" }, + { + "value": "lambdatest", + "description": "Use LambdaTest capabilities to run tests remotely" + }, { "value": "selenium localhost", "description": "Use Selenium to run tests remotely, driver.remote.url should be specified." diff --git a/jdi-light-vuetify-tests/src/test/resources/test.properties b/jdi-light-vuetify-tests/src/test/resources/test.properties index cb521c53bb..64f48312c9 100644 --- a/jdi-light-vuetify-tests/src/test/resources/test.properties +++ b/jdi-light-vuetify-tests/src/test/resources/test.properties @@ -20,7 +20,7 @@ log.level=INFO #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub #screenshot.strategy=on fail | on | off headless=true diff --git a/test-examples/jdi-bdd-no-po-tests/src/test/resources/test.properties b/test-examples/jdi-bdd-no-po-tests/src/test/resources/test.properties index 89f4f15bfd..ec4c596009 100644 --- a/test-examples/jdi-bdd-no-po-tests/src/test/resources/test.properties +++ b/test-examples/jdi-bdd-no-po-tests/src/test/resources/test.properties @@ -18,6 +18,6 @@ json.page.objects=/json/page/objects #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub #screenshot.strategy=on failure | on | off \ No newline at end of file diff --git a/test-examples/jdi-light-examples/src/test/resources/test.properties b/test-examples/jdi-light-examples/src/test/resources/test.properties index 3e1e40a264..1232be9355 100644 --- a/test-examples/jdi-light-examples/src/test/resources/test.properties +++ b/test-examples/jdi-light-examples/src/test/resources/test.properties @@ -22,7 +22,7 @@ log.info.details=element #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub #headless=true | false screenshot.strategy=on failure diff --git a/test-examples/jdi-performance/src/test/resources/test.properties b/test-examples/jdi-performance/src/test/resources/test.properties index 6d6543ad20..861501a97c 100644 --- a/test-examples/jdi-performance/src/test/resources/test.properties +++ b/test-examples/jdi-performance/src/test/resources/test.properties @@ -6,7 +6,7 @@ domain=${domain} driver.getLatest=true smart.locator=#%s log.level=INFO -#remote.type=sauce | browserstack | selenium_localhost +#remote.type=sauce | browserstack | lambdatest | selenium_localhost #search.element.strategy=strict | soft | visible, multiple | any, single #assert.type=soft | strict diff --git a/test-templates/jdi-light-junit-template/src/test/resources/test.properties b/test-templates/jdi-light-junit-template/src/test/resources/test.properties index b720f28ef2..80e524308d 100644 --- a/test-templates/jdi-light-junit-template/src/test/resources/test.properties +++ b/test-templates/jdi-light-junit-template/src/test/resources/test.properties @@ -6,7 +6,7 @@ domain=${domain} driver.getLatest=true smart.locator=#%s log.level=INFO -#remote.type=sauce | browserstack | selenium_localhost +#remote.type=sauce | browserstack | lambdatest | selenium_localhost #search.element.strategy=strict | soft | visible, multiple | any, single #assert.type=soft | strict diff --git a/test-templates/jdi-light-testng-template/src/test/resources/test.properties b/test-templates/jdi-light-testng-template/src/test/resources/test.properties index 1f15ad57ed..c7879b2ab6 100644 --- a/test-templates/jdi-light-testng-template/src/test/resources/test.properties +++ b/test-templates/jdi-light-testng-template/src/test/resources/test.properties @@ -21,7 +21,7 @@ log.info.details=element #log.message.format=short | full #demo.mode=false | true #demo.delay=2 -#remote.type=sauce | browserstack +#remote.type=sauce | browserstack | lambdatest #driver.remote.url=http://localhost:4444/wd/hub #headless=true | false screenshot.strategy=on failure