Перейти к содержимому

Фотография

Зависает поиск по картинкам


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 16 февраля 2015 - 14:52

Есть функция сравнения скриншотов. В основном время выполнения одной такой операции - доли секунды. Но иногда выполнение может достигать 3-4 минут. Прикрепленный файл  untitled.png   12,82К   0 Количество загрузок: То есть шкала под Picture.Find заполняется несколько минут.
 
 
function checkpointImg(property)
  {
    var tempPicture = findPreview(); //объект текущего окна
    var newPicture = tempPicture.Picture(0, 0, 400, 400);  //обрезаю текущее окно


    var oldPicture = Utils.Picture; 
    oldPicture.LoadFromFile("Stores/CheckpointImages/" + property + ".png"); //обращаюсь к эталону, скриншот "правильного" состояния окна"
       if (oldPicture.Find(newPicture))  {
             Log.Message("проверка скриншота " + property + " - успешно.");
       } else {
            Log.Message(tempPicture.fullName);
            Log.Picture(oldPicture, "Старый скриншот");
            Log.Picture(tempPicture, "Новый скриншот"); 
            Log.Picture(oldPicture.Difference(newPicture), "Разница");
            Log.Error("проверка скриншота " + property + " - не удалось.");
          }
}

  • 0

#2 Rebz

Rebz

    Опытный участник

  • Members
  • PipPipPipPip
  • 471 сообщений


Отправлено 17 февраля 2015 - 09:24

Станислав, к сожалению, здесь ничего не могу посоветовать.. но вопрос - вам реально нужно сравнивать изображения для тестирования функционала? Насколько это вообще оправдано?

Получается, изменится верстка малейшая, надо переделывать скрины везде. Это же жутко неудобно и трудозатратно.


  • 1

#3 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 17 февраля 2015 - 09:43

Rebz, да, сравнение изображений нам, увы, необходимо. 

Приложение десктопное, важной частью функционала которого является конструктор swing-элементов. Периодически выявляются ошибки в Порядке наложения (z-order), так что просто проверки по свойстам объектов нам мало.

Новые билды выходят часто, а дизайн меняется редко, так что трудозатраты оправданы.

Плюс, на случай смены дизайна все автоматизировано, я точно также прогоняю тесты, но включив примерно такие функции:

function saveImgPi(property)
  {
    var newPicture = findPi();
    var myPicture = newPicture.Picture();
    aqFileSystem.DeleteFile("Stores/CheckpointImages/" + property + ".png");
    myPicture.SaveToFile("Stores/CheckpointImages/" + property + ".png");
}   

  • 0

#4 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 17 февраля 2015 - 15:14

Приложу скриншоты.

Вот эталон http://std3.ru/1f/d3...2b487bba157.png

Вот новый http://std3.ru/33/97...cab93812e34.png

Вот разница http://std3.ru/69/8c...8cc417fa028.png

 

Как видно, в проверяемой области скриншота разницы ничего красным цветом не помечено. Почему же условие  if (oldPicture.Find(newPicture)) не проходит?

 

 

Скриншоты могли криво приложиться, вот еще яндексДиск

https://yadi.sk/i/hYB9LSJRejedC

https://yadi.sk/i/qnJn0jKBejebS

https://yadi.sk/i/Vhb22L1bejedQ


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных