How to use ImageComparison class of com.galenframework.validation package

Best Galen code snippet using com.galenframework.validation.ImageComparison

Source:Report.java Github

copy

Full Screen

...21import com.fasterxml.jackson.core.JsonProcessingException;22import com.fasterxml.jackson.databind.ObjectMapper;23import com.galenframework.rainbow4j.Rainbow4J;24import com.galenframework.specs.Spec;25import com.galenframework.validation.ImageComparison;26import com.galenframework.validation.ValidationErrorException;27import com.galenframework.validation.ValidationObject;28import com.galenframework.validation.ValidationResult;29import java.awt.image.BufferedImage;30import java.io.File;31import java.io.IOException;32import java.util.ArrayList;33import java.util.Arrays;34import java.util.HashMap;35import java.util.List;36import java.util.Map;37import java.util.logging.Level;38import java.util.logging.Logger;39/**40 *41 * 42 */43public class Report extends Command {44 ObjectMapper obMapper = new ObjectMapper();45 public Report(CommandControl cc) {46 super(cc);47 }48 public void onSuccess(Spec spec, ValidationResult result) {49 ValidationErrorException exception = new ValidationErrorException().withValidationObjects(result.getValidationObjects()).withMessage(spec.toText());50 onResult(exception.asValidationResult(spec), Status.PASS);51 }52 public void onError(Spec spec, ValidationResult result) {53 if (result.getError().getImageComparison() != null) {54 onResult(result, Status.FAIL, saveImageComparison(result.getError().getImageComparison()));55 } else {56 onResult(result, Status.FAIL);57 }58 }59 public void onError(Exception ex) {60 Report.updateTestLog(Action, ex.getMessage(), Status.DEBUG);61 }62 private void onResult(ValidationResult result, Status status) {63 if (result.getError().getMessages() != null) {64 for (String message : result.getError().getMessages()) {65 Report.updateTestLog(Action, message, status, getObjectAreas(result.getValidationObjects()));66 }67 }68 }69 private void onResult(ValidationResult result, Status status, List<String> imageList) {70 if (result.getError().getMessages() != null) {71 for (String message : result.getError().getMessages()) {72 Report.updateTestLog(Action, message, status, imageList);73 }74 }75 }76 private List<String> getObjectAreas(List<ValidationObject> vObjects) {77 ArrayList<Map<String, String>> objectList = new ArrayList<>();78 if (vObjects != null) {79 for (ValidationObject vobject : vObjects) {80 if (vobject.getArea() != null) {81 Map<String, String> obMap = new HashMap<>();82 obMap.put("name", vobject.getName());83 obMap.put("area", "["84 + vobject.getArea().getLeft() + ","85 + vobject.getArea().getTop() + ","86 + vobject.getArea().getWidth() + ","87 + vobject.getArea().getHeight() + "]");88 objectList.add(obMap);89 }90 }91 }92 try {93 if (!objectList.isEmpty()) {94 return Arrays.asList(obMapper.writeValueAsString(objectList));95 }96 } catch (JsonProcessingException ex) {97 Logger.getLogger(Report.class.getName()).log(Level.SEVERE, null, ex);98 }99 return null;100 }101 private ArrayList<String> saveImageComparison(ImageComparison imageComparison) {102 ArrayList<String> imageList = new ArrayList<>();103 imageList.add(saveImageComparison(ObjectName + "-expected", imageComparison.getSampleFilteredImage()));104 imageList.add(saveImageComparison(ObjectName + "-actual", imageComparison.getOriginalFilteredImage()));105 imageList.add(saveImageComparison(ObjectName + "-map", imageComparison.getComparisonMap()));106 return imageList;107 }108 private String saveImageComparison(String name, BufferedImage image) {109 try {110 File file = new File(getImageName(name, 0));111 file.mkdirs();112 Rainbow4J.saveImage(image, file);113 return "./img" + File.separator + file.getName();114 } catch (IOException ex) {115 Logger.getLogger(Report.class.getName()).log(Level.SEVERE, null, ex);116 }117 return null;118 }119 private String getImageName(String name, int count) {120 String imageName = FilePath.getCurrentResultsPath() + File.separator + "img" + File.separator + name + count + ".png";121 File file = new File(imageName);122 if (file.exists()) {...

Full Screen

Full Screen

Source:ValidationErrorException.java Github

copy

Full Screen

...20import java.util.List;21import static java.util.Arrays.asList;22public class ValidationErrorException extends Exception {23 private List<String> errorMessages;24 private ImageComparison imageComparison;25 private List<ValidationObject> validationObjects;26 private List<ValidationResult> childValidationResults;27 private List<LayoutMeta> meta;28 public ValidationErrorException() {29 super();30 }31 32 public ValidationErrorException(List<ValidationObject> validationObjects, List<String> errorMessages) {33 this.validationObjects = validationObjects;34 this.errorMessages = errorMessages;35 }36 37 public ValidationErrorException(String paramString, Throwable paramThrowable) {38 super(paramString, paramThrowable);39 withMessage(paramString);40 }41 42 public ValidationErrorException withMessage(String message) {43 if (errorMessages == null) {44 errorMessages = new LinkedList<>();45 }46 errorMessages.add(message);47 48 return this;49 }50 public ValidationErrorException withValidationObject(ValidationObject validationObject) {51 if (this.validationObjects== null) {52 this.validationObjects = new LinkedList<>();53 }54 this.validationObjects.add(validationObject);55 return this;56 }57 58 public ValidationErrorException(String paramString) {59 super(paramString);60 withMessage(paramString);61 }62 public ValidationErrorException(Throwable paramThrowable) {63 super(paramThrowable);64 setErrorMessages(asList(paramThrowable.getClass().getName() + ": " + paramThrowable.getMessage()));65 }66 public List<String> getErrorMessages() {67 return errorMessages;68 }69 public void setErrorMessages(List<String> errorMessages) {70 this.errorMessages = errorMessages;71 }72 public List<ValidationObject> getValidationObjects() {73 return validationObjects;74 }75 public void setValidationObjects(List<ValidationObject> validationObjects) {76 this.validationObjects = validationObjects;77 }78 /**79 * 80 */81 private static final long serialVersionUID = -1566513657187992205L;82 public ValidationErrorException withMessages(List<String> messages) {83 setErrorMessages(messages);84 return this;85 }86 public ValidationResult asValidationResult(Spec spec) {87 ValidationResult validationResult = new ValidationResult(88 spec,89 this.getValidationObjects(),90 new ValidationError(this.getErrorMessages(), this.getImageComparison()), this.getMeta());91 validationResult.setChildValidationResults(childValidationResults);92 return validationResult;93 }94 public ImageComparison getImageComparison() {95 return imageComparison;96 }97 public void setImageComparison(ImageComparison imageComparison) {98 this.imageComparison = imageComparison;99 }100 public ValidationErrorException withImageComparison(ImageComparison imageComparison) {101 setImageComparison(imageComparison);102 return this;103 }104 public ValidationErrorException withValidationObjects(List<ValidationObject> validationObjects) {105 if (this.validationObjects == null) {106 this.validationObjects = validationObjects;107 } else {108 this.validationObjects.addAll(validationObjects);109 }110 return this;111 }112 public ValidationErrorException withChildValidationResults(List<ValidationResult> childValidationResults) {113 setChildValidationResults(childValidationResults);114 return this;115 }...

Full Screen

Full Screen

ImageComparison

Using AI Code Generation

copy

Full Screen

1import com.galenframework.api.Galen;2import com.galenframework.reports.GalenTestInfo;3import com.galenframework.reports.HtmlReportBuilder;4import com.galenframework.reports.model.LayoutReport;5import com.galenframework.speclang2.pagespec.SectionFilter;6import com.galenframework.specs.page.Locator;7import com.galenframework.specs.page.PageSpec;8import com.galenframework.specs.page.PageSpecReader;9import com.galenframework.validation.ImageComparison;10import com.galenframework.validation.ImageValidation;11import com.galenframework.validation.ValidationListener;12import com.galenframework.validation.ValidationResult;13import com.galenframework.validation.ValidationError;14import com.galenframework.validation.ValidationObject;15import com.galenframework.browser.Browser;16import com.galenframework.browser.BrowserFactory;17import com.galenframework.browser.SeleniumBrowser;18import com.galenframework.browser.SeleniumB

Full Screen

Full Screen

ImageComparison

Using AI Code Generation

copy

Full Screen

1import com.galenframework.api.Galen;2import com.galenframework.browser.Browser;3import com.galenframework.browser.SeleniumBrowser;4import com.galenframework.browser.SeleniumBrowserFactory;5import com.galenframework.browser.SeleniumBrowserFactory;6import com.galenframework.b

Full Screen

Full Screen

ImageComparison

Using AI Code Generation

copy

Full Screen

1package com.galenframework.validation;2import java.io.IOException;3import org.openqa.selenium.WebDriver;4import com.galenframework.api.Galen;5import com.galenframework.reports.TestReport;6import com.galenframework.reports.model.LayoutReport;7import com.galenframework.specs.page.Locator;8import com.galenframework.specs.page.PageSpec;9import com.galenframework.specs.reader.page.PageSpecReader;10import com.galenframework.validation.ValidationListener;11public class ImageComparison {12 public static void main(String[] args) throws IOException {13 WebDriver driver = null;14 TestReport report = new TestReport();15 ValidationListener validationListener = new ValidationListener(report);16 LayoutReport layoutReport = Galen.checkLayout(driver, "specs/2.spec", validationListener);17 System.out.println(layoutReport.errors());18 }19}

Full Screen

Full Screen

ImageComparison

Using AI Code Generation

copy

Full Screen

1import com.galenframework.validation.ImageComparison;2import com.galenframework.validation.ImageComparisonResult;3import com.galenframework.validation.ImageComparisonTolerance;4import com.galenframework.validation.ValidationErrorException;5import java.io.File;6import java.io.IOException;7import java.util.Arrays;8import java.util.List;9import javax.imageio.ImageIO;10public class GalenTest {11 public static void main(String[] args) throws IOException {12 ImageComparison imageComparison = new ImageComparison();13 File expectedImageFile = new File("C:\\Users\\selenium\\Desktop\\test\\expected.png");14 File actualImageFile = new File("C:\\Users\\selenium\\Desktop\\test\\actual.png");15 ImageComparisonResult comparisonResult = imageComparison.compare(expectedImageFile, actualImageFile, new ImageComparisonTolerance(0, 0, 0, 0, 0.0, 0.0));16 System.out.println("Comparison result: " + comparisonResult);17 }18}

Full Screen

Full Screen

ImageComparison

Using AI Code Generation

copy

Full Screen

1import com.galenframework.validation.ImageComparison;2import com.galenframework.validation.ImageComparisonException;3import com.galenframework.validation.ImageComparisonResult;4import com.galenframework.validation.ImageComparisonTolerance;5public class ImageComparisonTest {6 public static void main(String[] args) throws ImageComparisonException {7 ImageComparisonResult result = ImageComparison.compareImages("C:\\Users\\selenium\\Desktop\\1.png", "C:\\Users\\selenium\\Desktop\\2.png", new ImageComparisonTolerance(5));8 System.out.println(result.getDiffPercentage());9 }10}

Full Screen

Full Screen

ImageComparison

Using AI Code Generation

copy

Full Screen

1import com.galenframework.java.*;2import com.galenframework.java.Validator;3import com.galenframework.java.ValidationResult;4import com.galenframework.java.validators.ImageComparison;5import com.galenframework.reports.TestReport;6import com.galenframework.reports.TestReportFactory;7import com.galenframework.reports.model.LayoutReport;

Full Screen

Full Screen

ImageComparison

Using AI Code Generation

copy

Full Screen

1package com.galenframework.validation;2import java.awt.image.BufferedImage;3import java.io.File;4import java.io.IOException;5import javax.imageio.ImageIO;6public class ImageComparison {7public static void main(String[] args) throws IOException {8BufferedImage imgA = ImageIO.read(new File("C:\\Users\\Jyoti\\Desktop\\image1.png"));9BufferedImage imgB = ImageIO.read(new File("C:\\Users\\Jyoti\\Desktop\\image2.png"));10double diff = ImageComparison.compareImages(imgA, imgB);11System.out.println("Difference: " + diff);12}13public static double compareImages(BufferedImage imgA, BufferedImage imgB) {14if (imgA.getWidth() == imgB.getWidth() && imgA.getHeight() == imgB.getHeight()) {15int width = imgA.getWidth();16int height = imgA.getHeight();17int diff = 0;18for (int y = 0; y < height; y++) {19for (int x = 0; x < width; x++) {20int rgbA = imgA.getRGB(x, y);21int rgbB = imgB.getRGB(x, y);22int r1 = (rgbA >> 16) & 0xff;23int g1 = (rgbA >> 8) & 0xff;24int b1 = (rgbA ) & 0xff;25int r2 = (rgbB >> 16) & 0xff;26int g2 = (rgbB >> 8) & 0xff;27int b2 = (rgbB ) & 0xff;28diff += Math.abs(r1 - r2);29diff += Math.abs(g1 - g2);30diff += Math.abs(b1 - b2);31}32}33double n = width * height * 3;34double p = diff / n / 255.0;35return p;36} else {37throw new RuntimeException("Error: Images dimensions mismatch");38}39}40}

Full Screen

Full Screen

ImageComparison

Using AI Code Generation

copy

Full Screen

1import com.galenframework.validation.ImageComparison;2import java.io.File;3import java.io.IOException;4import java.util.HashMap;5import java.util.Map;6import org.apache.commons.io.FileUtils;7public class ImageComparisonExample {8public static void main(String[] args) throws IOException {9File file1 = new File("C:\\Users\\Vishal\\Desktop\\Image1.png");10File file2 = new File("C:\\Users\\Vishal\\Desktop\\Image2.png");11File file3 = new File("C:\\Users\\Vishal\\Desktop\\Image3.png");12File file4 = new File("C:\\Users\\Vishal\\Desktop\\Image4.png");13File file5 = new File("C:\\Users\\Vishal\\Desktop\\Image5.png");14File file6 = new File("C:\\Users\\Vishal\\Desktop\\Image6.png");15File file7 = new File("C:\\Users\\Vishal\\Desktop\\Image7.png");16File file8 = new File("C:\\Users\\Vishal\\Desktop\\Image8.png");17File file9 = new File("C:\\Users\\Vishal\\Desktop\\Image9.png");18File file10 = new File("C:\\Users\\Vishal\\Desktop\\Image10.png");19File file11 = new File("C:\\Users\\Vishal\\Desktop\\Image11.png");20File file12 = new File("C:\\Users\\Vishal\\Desktop\\Image12.png");21File file13 = new File("C:\\Users\\Vishal\\Desktop\\Image13.png");22File file14 = new File("C:\\Users\\Vishal\\Desktop\\Image14.png");23File file15 = new File("C:\\Users\\Vishal\\Desktop\\Image15.png");24File file16 = new File("C:\\Users\\Vishal\\Desktop\\Image16.png");25File file17 = new File("C:\\Users

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Galen automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Test Your Web Or Mobile Apps On 3000+ Browsers

Signup for free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful