Exemple #1
0
        public void GenerateJsonListOfImageComparison()
        {
            var message = new ImageComparisonContract()
            {
                ImageComparisonList = new List <ImageComparisonInfo>()
            };

            var fileNames = Directory.GetFiles(@"e:\Temp\Screen\");
            var images    = new List <ImageComparisonInfo>();

            for (int index = 0; index < 10; index += 2)
            {
                var imageInfo = new ImageComparisonInfo()
                {
                    ScreenShotId    = index,
                    FirstImagePath  = fileNames[index],
                    SecondImagePath = fileNames[index + 1],
                    DiffImagePath   = outputFile + "_" + index + ".png"
                };

                images.Add(imageInfo);
            }

            message.ImageComparisonList.AddRange(images);

            var client  = new RestClient("http://localhost:8900/KeplerImageProcessorService/");
            var request = new RestRequest("AddImagesForDiffGeneration", Method.POST);

            request.RequestFormat = DataFormat.Json;
            request.AddJsonBody(message);

            client.Execute(request);
        }
Exemple #2
0
        /// <summary>
        /// Analyze two list of screenshots from the same baseline: new (In queue) and old (Passed)
        /// </summary>
        /// <param name="newScreenShotsForProcessing"></param>
        /// <param name="oldPassedBaselineScreenShots"></param>
        /// <returns>List of image comparison for diff generating</returns>
        private IEnumerable <ImageComparisonInfo> GenerateImageComparison(List <ScreenShot> newScreenShotsForProcessing,
                                                                          List <ScreenShot> oldPassedBaselineScreenShots)
        {
            var resultImagesForComparison = new List <ImageComparisonInfo>();

            foreach (var newScreenShot in newScreenShotsForProcessing)
            {
                var oldScreenShot = oldPassedBaselineScreenShots.Find(oldScreen => oldScreen.Name == newScreenShot.Name);

                ImageComparisonInfo imageComparison = null;

                // if there is no old screenshots => it's first build and first uploaded screenshots.
                // Just set screenshots as passed
                if (oldScreenShot == null)
                {
                    newScreenShot.BaseLineImagePath = newScreenShot.ImagePath;
                    var screenShotPreviewImagePath = newScreenShot.PreviewImagePath ?? "";

                    imageComparison = new ImageComparisonInfo()
                    {
                        ScreenShotName         = newScreenShot.Name,
                        LastPassedScreenShotId = newScreenShot.Id,
                        FirstImagePath         = newScreenShot.ImagePath,
                        FirstPreviewPath       = screenShotPreviewImagePath,
                        SecondImagePath        = newScreenShot.ImagePath,
                        SecondPreviewPath      = screenShotPreviewImagePath,
                        DiffImagePath          = newScreenShot.DiffImagePath,
                        DiffPreviewPath        = newScreenShot.DiffPreviewPath,
                        ScreenShotId           = newScreenShot.Id,
                    };
                }
                else
                {
                    imageComparison = new ImageComparisonInfo()
                    {
                        ScreenShotName         = newScreenShot.Name,
                        LastPassedScreenShotId = oldScreenShot.Id,
                        FirstImagePath         = oldScreenShot.ImagePath,
                        FirstPreviewPath       = oldScreenShot.PreviewImagePath,
                        SecondImagePath        = newScreenShot.ImagePath,
                        SecondPreviewPath      = newScreenShot.PreviewImagePath,
                        DiffImagePath          = newScreenShot.DiffImagePath,
                        DiffPreviewPath        = newScreenShot.DiffPreviewPath,
                        ScreenShotId           = newScreenShot.Id,
                    };

                    newScreenShot.BaseLineImagePath = oldScreenShot.ImagePath;
                }
                resultImagesForComparison.Add(imageComparison);
                ScreenShotRepository.Instance.Update(newScreenShot);
            }

            return(resultImagesForComparison);
        }
Exemple #3
0
        public void TaskGeneratorImage()
        {
            var imageTaskGenerator = TaskGenerator.GetTaskGenerator;

            var fileNames = Directory.GetFiles(@"e:\Temp\Screen\");
            var images    = new List <ImageComparisonInfo>();

            for (int index = 0; index < 3; index += 2)
            {
                var imageInfo = new ImageComparisonInfo()
                {
                    FirstImagePath  = fileNames[index],
                    SecondImagePath = fileNames[index + 1],
                    DiffImagePath   = outputFile + "_" + index + ".png"
                };

                images.Add(imageInfo);
            }
            var countImages = images.Count;

            var startDate = DateTime.Now;

            Console.WriteLine("Start Date: " + startDate);

            imageTaskGenerator.AddImagesForProcessing(images);

            Console.WriteLine("Max images count " + countImages);

            var processedImagesCount = 0;

            do
            {
                Thread.Sleep(5000);

                processedImagesCount += imageTaskGenerator.GetProcessedImages().Count();
                Console.WriteLine("Processed images: " + processedImagesCount);
            } while (processedImagesCount < countImages);

            var finishDate = DateTime.Now;

            Console.WriteLine("Finish Date: " + finishDate);
            Console.WriteLine("Test duration: " + (finishDate - startDate));
        }
Exemple #4
0
        public void DiffImageTest()
        {
            var imageProcessor = new ImageComparator();

            var fileNames = Directory.GetFiles(@"e:\Temp\Screen\");

            for (int index = 0; index < fileNames.Length - 3;)
            {
                var imageInfo = new ImageComparisonInfo()
                {
                    FirstImagePath  = fileNames[index],
                    SecondImagePath = fileNames[index + 1],
                    DiffImagePath   = outputFile + "_" + index + ".png"
                };

                imageProcessor.ImageComparisonInfo = imageInfo;

                var isImageDifferent = imageProcessor.GetCompositeImageDiff();
                index += 2;
            }
        }
Exemple #5
0
        private ImageComparisonInfo GetImageDiff(ImageComparator imageComparator)
        {
            ImageComparisonInfo diffImage;

            try
            {
                diffImage = imageComparator.GetCompositeImageDiff();
            }
            catch (Exception ex)
            {
                var errorMessage = $"{ex.Message} {ex.StackTrace}";

                diffImage = new ImageComparisonInfo()
                {
                    ErrorMessage = errorMessage,
                    ScreenShotId = imageComparator.ImageComparisonInfo.ScreenShotId
                };

                new RestKeplerServiceClient().LogError(errorMessage);
            }

            return(diffImage);
        }
Exemple #6
0
 public ImageComparator(ImageComparisonInfo imageComparisonInfo)
 {
     this.ImageComparisonInfo = imageComparisonInfo;
 }