diff --git a/justtestlah-awsdevicefarm/pom.xml b/justtestlah-awsdevicefarm/pom.xml index ed3c0829..02e30f83 100644 --- a/justtestlah-awsdevicefarm/pom.xml +++ b/justtestlah-awsdevicefarm/pom.xml @@ -9,7 +9,7 @@ qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 diff --git a/justtestlah-browserstack/pom.xml b/justtestlah-browserstack/pom.xml index 54595bf1..456458c5 100644 --- a/justtestlah-browserstack/pom.xml +++ b/justtestlah-browserstack/pom.xml @@ -9,7 +9,7 @@ qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 diff --git a/justtestlah-core/pom.xml b/justtestlah-core/pom.xml index ec2f16ee..26f8cb4b 100644 --- a/justtestlah-core/pom.xml +++ b/justtestlah-core/pom.xml @@ -9,7 +9,7 @@ qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 diff --git a/justtestlah-core/src/main/java/qa/justtestlah/base/BasePage.java b/justtestlah-core/src/main/java/qa/justtestlah/base/BasePage.java index d2edf993..ab7aca97 100644 --- a/justtestlah-core/src/main/java/qa/justtestlah/base/BasePage.java +++ b/justtestlah-core/src/main/java/qa/justtestlah/base/BasePage.java @@ -29,7 +29,6 @@ import qa.justtestlah.log.TestLogWriter; import qa.justtestlah.stubs.AppiumTemplateMatcher; import qa.justtestlah.stubs.Galen; -import qa.justtestlah.stubs.Match; import qa.justtestlah.stubs.OCR; import qa.justtestlah.stubs.TemplateMatcher; import qa.justtestlah.utils.ImageUtils; @@ -133,6 +132,12 @@ public WebElement findImage(String imageName, double threshold) { ((AppiumTemplateMatcher) templateMatcher).setDriver(WebDriverRunner.getWebDriver()); } String path = ImageUtils.getFullPath(imageName); + if (path == null) { + throw new RuntimeException( + String.format( + "Template image %s not found on classpath. Please make sure it is located in the images folder", + imageName)); + } return new ImageWebElement( driver, templateMatcher.match(screenshotFile.getAbsolutePath(), path, threshold).getRect(), diff --git a/justtestlah-core/src/main/java/qa/justtestlah/utils/ImageUtils.java b/justtestlah-core/src/main/java/qa/justtestlah/utils/ImageUtils.java index b7e6a50e..e0df36d3 100644 --- a/justtestlah-core/src/main/java/qa/justtestlah/utils/ImageUtils.java +++ b/justtestlah-core/src/main/java/qa/justtestlah/utils/ImageUtils.java @@ -1,6 +1,7 @@ package qa.justtestlah.utils; import java.io.IOException; +import java.net.URL; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Base64; @@ -33,7 +34,8 @@ public static String getImageAsBase64String(String imageName) { * @return the fully-qualified path to the specified image */ public static String getFullPath(String imageName) { - return ImageUtils.class.getClassLoader().getResource(IMAGE_FOLDER + "/" + imageName).getFile(); + URL url = ImageUtils.class.getClassLoader().getResource(IMAGE_FOLDER + "/" + imageName); + return (url != null) ? url.getFile() : null; } /** diff --git a/justtestlah-demos/demos/google.properties b/justtestlah-demos/demos/google.properties index fe8c54f2..452d6991 100644 --- a/justtestlah-demos/demos/google.properties +++ b/justtestlah-demos/demos/google.properties @@ -13,7 +13,7 @@ testdata.enabled=true testdata.filter=google # Mac OS #tesseract.datapath=/usr/local/Cellar/tesseract/4.1.1/share/tessdata -tesseract.datapath=/usr/share/tesseract-ocr/4.00/tessdata +#tesseract.datapath=/usr/share/tesseract-ocr/4.00/tessdata opencv.mode=client galen.enabled=true diff --git a/justtestlah-demos/pom.xml b/justtestlah-demos/pom.xml index 41ece452..a492d483 100644 --- a/justtestlah-demos/pom.xml +++ b/justtestlah-demos/pom.xml @@ -9,7 +9,7 @@ qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 diff --git a/justtestlah-galen/pom.xml b/justtestlah-galen/pom.xml index 69ea4cb6..5dd17ea3 100644 --- a/justtestlah-galen/pom.xml +++ b/justtestlah-galen/pom.xml @@ -9,7 +9,7 @@ qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 diff --git a/justtestlah-mobile-tools/pom.xml b/justtestlah-mobile-tools/pom.xml index 5b3a9093..fab51703 100644 --- a/justtestlah-mobile-tools/pom.xml +++ b/justtestlah-mobile-tools/pom.xml @@ -9,7 +9,7 @@ qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 diff --git a/justtestlah-quickstart/pom.xml b/justtestlah-quickstart/pom.xml index fadb3c1c..e2142339 100644 --- a/justtestlah-quickstart/pom.xml +++ b/justtestlah-quickstart/pom.xml @@ -5,7 +5,7 @@ qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 justtestlah-quickstart JustTestLah! Quickstart diff --git a/justtestlah-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml b/justtestlah-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml index f3c76b4e..d5a966ba 100644 --- a/justtestlah-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/justtestlah-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -25,7 +25,7 @@ - 1.9-RC2 + 1.9-RC4 false diff --git a/justtestlah-quickstart/src/main/resources/archetype-resources/src/test/resources/justtestlah.properties b/justtestlah-quickstart/src/main/resources/archetype-resources/src/test/resources/justtestlah.properties index 874ab6c1..9396ca45 100644 --- a/justtestlah-quickstart/src/main/resources/archetype-resources/src/test/resources/justtestlah.properties +++ b/justtestlah-quickstart/src/main/resources/archetype-resources/src/test/resources/justtestlah.properties @@ -10,6 +10,9 @@ testdata.enabled=true features.directory=src/test/resources/features cucumber.report.directory=target/report/cucumber cloudprovider=local +#if (${galen} == 'true' || ${galen} == 'yes' || ${galen} == 'y') +galen.enabled=true +#end # WEB settings web.baseUrl=https://www.google.com diff --git a/justtestlah-visual/pom.xml b/justtestlah-visual/pom.xml index d07f6123..64752589 100644 --- a/justtestlah-visual/pom.xml +++ b/justtestlah-visual/pom.xml @@ -9,7 +9,7 @@ qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 diff --git a/justtestlah-visual/src/main/java/qa/justtestlah/visual/OCR.java b/justtestlah-visual/src/main/java/qa/justtestlah/visual/OCR.java index 983151d2..98dba017 100644 --- a/justtestlah-visual/src/main/java/qa/justtestlah/visual/OCR.java +++ b/justtestlah-visual/src/main/java/qa/justtestlah/visual/OCR.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; @@ -27,6 +28,9 @@ public class OCR implements qa.justtestlah.stubs.OCR { private TakesScreenshot driver; private Tesseract ocr; + @Value("${tesseract.datapath:}") + private String dataPath; + @Autowired public OCR(Tesseract ocr) { this.ocr = ocr; @@ -47,6 +51,10 @@ public String getText() { } private String getText(File file) { + if (dataPath.length() == 0) { + throw new RuntimeException( + "tesseract.datapath not set. Please set this property in justtestlah.properties."); + } LOG.info("Peforming OCR on file {}", file); try { String text = ocr.doOCR(file).trim(); diff --git a/pom.xml b/pom.xml index a0b569b0..70d1603b 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 qa.justtestlah justtestlah-parent - 1.9-RC3 + 1.9-RC4 JustTestLah! pom JustTestLah! is a JAVA test framework targeting projects that support multiple platforms, in particular Web, Android and iOS. It follows a BDD approach and allows testing against all platforms using the same feature files. JustTestLah's main aim is to make the configuration and the actual test code as easy as possible. @@ -100,12 +100,12 @@ 2.0.0-alpha1 1.3.0-alpha4 3.17.2 - 3.5.11 + 3.5.13 1.27 1.23 2.6.10 - 2.6.2 - 1.10.14 + 2.6.3 + 1.10.16 2.8.6 2.30.1 4.5.12 @@ -142,7 +142,7 @@ 4.8.90 2.10 0.1.55 - 1.11.864 + 1.11.870 3.0.0-M2 2.11.2 29.0-jre diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md index 2b899ce4..07f801f1 100644 --- a/src/site/markdown/index.md +++ b/src/site/markdown/index.md @@ -142,7 +142,7 @@ Add the following to your `pom.xml`: qa.justtestlah justtestlah-core - 1.9-RC3 + 1.9-RC4 ``` @@ -150,11 +150,11 @@ Add the following to your `pom.xml`: Add the following to your `build.gradle`: ```yaml -compile group: 'qa.justtestlah', name: 'justtestlah-core', version: '1.9-RC3' +compile group: 'qa.justtestlah', name: 'justtestlah-core', version: '1.9-RC4' ``` ### Option 4: Manual setup -Add `justtestlah-core-1.9-RC3.jar` to your classpath. +Add `justtestlah-core-1.9-RC4.jar` to your classpath. ## Page objects, steps and feature files There are three main ingredients for tests in JustTestLah!: @@ -326,7 +326,7 @@ browserstack.appiumLogs=true browserstack.video=true browserstack.geoLocation=SG browserstack.timezone=SG -browserstack.appium_version=1.9-RC3.0 +browserstack.appium_version=1.9-RC4.0 browserstack.acceptSslCerts=true # AWS DEVICEFARM settings (requires `cloudprovider=aws` and `justtestlah-awsdevicefarm` on the classpath) @@ -556,16 +556,16 @@ browserstack.geoLocation=SG browserstack.networkProfile= browserstack.customNetwork= browserstack.timezone=SG -browserstack.appium_version=1.9-RC3.0 +browserstack.appium_version=1.9-RC4.0 ``` -Make sure `justtestlah-browserstack-1.9-RC3.jar` is on your classpath: +Make sure `justtestlah-browserstack-1.9-RC4.jar` is on your classpath: ```xml qa.justtestlah justtestlah-browserstack - 1.9-RC3 + 1.9-RC4 ``` @@ -622,13 +622,13 @@ aws.jobTimeOut= aws.skipAppResign= ``` -Make sure `justtestlah-awsdevicefarm-1.9-RC3.jar` is on your classpath: +Make sure `justtestlah-awsdevicefarm-1.9-RC4.jar` is on your classpath: ```xml qa.justtestlah justtestlah-awsdevicefarm - 1.9-RC3 + 1.9-RC4 ``` @@ -637,13 +637,13 @@ You can refer to [this article](https://medium.com/@mart.schneider/mobile-test-a Please note that AWS Devicefarm is a paid service. ## Visual and layout testing -Make sure `justtestlah-visual-1.9-RC3.jar` is on your classpath: +Make sure `justtestlah-visual-1.9-RC4.jar` is on your classpath: ```xml qa.justtestlah justtestlah-visual - 1.9-RC3 + 1.9-RC4 ``` @@ -674,13 +674,13 @@ There are two modes to use template matching which can be configured in `justtes JustTestLah! integrates [Tesseract](https://github.com/tesseract-ocr/tesseract) to perform [Optical character recognition](https://en.wikipedia.org/wiki/Optical_character_recognition). -This requires `justtestlah-visual-1.9-RC3.jar` on the classpath: +This requires `justtestlah-visual-1.9-RC4.jar` on the classpath: ```xml qa.justtestlah justtestlah-visual - 1.9-RC3 + 1.9-RC4 ``` @@ -730,13 +730,13 @@ assertThat(googlePage.getLogoText()).isEqualTo("Google"); ### Galen -Make sure `justtestlah-galen-1.9-RC3.jar` is on your classpath: +Make sure `justtestlah-galen-1.9-RC4.jar` is on your classpath: ```xml qa.justtestlah justtestlah-galen - 1.9-RC3 + 1.9-RC4 ```