Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saikrishna321/nakal_java
A tool to automate Visual Regression testing for Android , iOS and Web
https://github.com/saikrishna321/nakal_java
baseline-image comparing-images maskimage
Last synced: 23 days ago
JSON representation
A tool to automate Visual Regression testing for Android , iOS and Web
- Host: GitHub
- URL: https://github.com/saikrishna321/nakal_java
- Owner: saikrishna321
- Created: 2016-02-26T08:40:24.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-03-02T12:05:32.000Z (over 6 years ago)
- Last Synced: 2024-10-03T12:44:54.593Z (about 1 month ago)
- Topics: baseline-image, comparing-images, maskimage
- Language: Java
- Size: 10.3 MB
- Stars: 30
- Watchers: 15
- Forks: 28
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/saikrishna321/nakal_java.svg?branch=master)](https://travis-ci.org/saikrishna321/nakal_java)
Automated visual testing of Android/iOS/Web applications.
![ScreenShot](https://raw.githubusercontent.com/saikrishna321/nakal_java/master/difference_HomeScreen1.png)
Nakal is used to add visual validations in your existing test framework (using appium or selenium-webDriver etc).
## Installation
You need to install [imagemagick](http://www.imagemagick.org/script/index.php) on your machineAdd this to your pom.xml
```
jitpack.io
https://jitpack.io
com.github.saikrishna321
nakal_java
f4dcb0054e
```## Usage
Following mandatory properties need to be set before running test:
* nakal.platform=ios/android
* nakal.maskimage=image which needs to be considered for masking
* nakal.mode=build/compareFor Example:
```
NakalExecutor nakalExecutor = new NakalExecutor();
//Compare mobile native app screen
@Test
public void compareImagesExecutor(){
Assert.assertTrue(nakalExecutor.nakalExecutorNativeCompare("HomeScreen"));
}
//Compare mobile-web/desktop-browser app screen
@Test
public void compareImagesExecutor(){
Assert.assertTrue(nakalExecutor.nakalExecutorWebCompare(driver, "GoogleScreen"));
}
```1. Now, execute your test by passing env variable NAKAL_MODE=build to build the baseline images. All baseline images will be stored in baseline_images folder in current directory
2. Once baseline is built, next execution onwards, start using environment variable NAKAL_MODE=compare to compare against baseline.
any difference will be put in the same directory with image file named "difference_current_screen_name.png"All mask images should and be stored at /ios/mask-images/fileName.png /android/mask-images/fileName.png.(mask images with transparent background has been created using gimp tool- eg:https://github.com/saikrishna321/nakal_java/tree/master/android/mask_images)
MASKIMAGE value in the env should be the same fileName which is stored under the mask_images(For ex: ./mask_images/nexus5.png and MASKIMAGE="nexus5").#Running the tests
mvn clean -Dtest=AndroidTest test -Dnakal.platform=android -Dnakal.mode=build -Dnakal.maskimage=nexus5 (captures a baseline image)
mvn clean -Dtest=AndroidTest test -Dnakal.platform=android -Dnakal.mode=compare -Dnakal.maskimage=nexus5 ( compares expected and actual image)
## Ignore certain regions of the image
1. Create nakal.yaml under the root directory.
2. You can specify the areas of a screen you want to mask/ignore while comparing in nakal.yaml as below```
nexus5:
HomeScreen: {mask_region_1: [69, 441, 357, 553],mask_region_2: [50, 1600, 371, 1652]}
SearchScreen: {mask_region_1: [66,424,340,478],mask_region_2: [76,524,440,578]}
```
3.If you want to set certain threshold while comparing. You can pass option as:```
nakalExecutor.nakalExecutorNativeCompare("HomeScreen",3)
```Ruby Client
https://github.com/rajdeepv/nakal## Contributing
1. Fork it ( http://github.com//nakal_java/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request