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

Фотография

Поиск идентичных (или похожих) картинок на сайте


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

#1 yomin

yomin

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Yury

Отправлено 19 июня 2014 - 11:29

 Здравствуйте!

 Господа, буду рад, если окажите помощь начинающему тестировщику. Интересует вопрос с автоматизированным тестированием. На данный момент осваиваю Selenium IDE. Имеется задача: проверить интернет- магазин на соотсетствие товаров по каталогам. База очень большая и в ручную занимает большое время для проверки всех соответсвий. Имеется страницы с однотипными товарами, различаются они только цветами, изображение товаров располагаются на идентичных местах и обного размера. Подскажите в какую сторону копать? Как возможно организовать тест, который будут сравнивать все картинки товаров имеющиеся на открытой странице с каким- то шаблоном. Когда тест закончит проверку страницы, он перейдёт к следующей и повторит процесс. При несоответствии изображения в каталоге- каким- то образом оповестит об ошибке.

 Если нет такого инструмента для сравнения изображений, может возможно проверить товары по именам которые отображаются в таблице, т.к. товары одного типа имеют в названии одинаковое слово. Используя его как шаблон, можно проверить таким образом.

 Заранее спасибо.


  • 0

#2 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 19 июня 2014 - 11:37

вы хотите это сделать с помощью Selenium IDE ?

так не получится

м.б. Sikuli + Java. Но это не задача для новичка


  • 0

#3 yomin

yomin

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Yury

Отправлено 19 июня 2014 - 11:57

Сможет ли в данном случае помочь Selenium WebDriver?


  • 0

#4 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 19 июня 2014 - 11:59

Сможет ли в данном случае помочь Selenium WebDriver?

Для чего WD ?

Открывать разные веб-странички - да, проверять изображения - нет


  • 0

#5 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 19 июня 2014 - 12:38

Через WD можно например проверять title у изображений. Так же если в имена картинок унифицированы, допустим tovar_color.jpg то можно через WD грабить название изображения и проверять его.


  • 0

#6 yomin

yomin

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Yury

Отправлено 20 июня 2014 - 00:41

Да, я тоже думал о том, чтобы сравнивать имена изображений, но для начанающего многое непонятного:

Непонятка №1. Изображения товара имеют одинаковые ссылки, различаясь только ID товара в средине ссылки. Буду рад если научите, как можно вырезать из сылки на изображения по определённому шаблону и сравнивать его с заданной ссылкой.

 

Непонятка №2. Как научить Selenium поочередно пробегаться по каждой ссылке товара, пока не достигнет конца страницы, после чего перейти на следующую и выполнять теже действия по сравнению.

 

Слышал, что к Seleniumу можно подставлять код на javascript (который я в данный момент пытаюсь освоить), но как у куда его подставлять разобраться не могу. Может быть на javascript можно написать нужный алгоритм.


  • 0

#7 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 20 июня 2014 - 06:27

Да, я тоже думал о том, чтобы сравнивать имена изображений, но для начанающего многое непонятного:

Непонятка №1. Изображения товара имеют одинаковые ссылки, различаясь только ID товара в средине ссылки. Буду рад если научите, как можно вырезать из сылки на изображения по определённому шаблону и сравнивать его с заданной ссылкой.

 

Непонятка №2. Как научить Selenium поочередно пробегаться по каждой ссылке товара, пока не достигнет конца страницы, после чего перейти на следующую и выполнять теже действия по сравнению.

 

Слышал, что к Seleniumу можно подставлять код на javascript (который я в данный момент пытаюсь освоить), но как у куда его подставлять разобраться не могу. Может быть на javascript можно написать нужный алгоритм.

1. Есть Xpath. Т.е. ищите ссылку и вырезаете title c помощью getAttribute

2. List<WebElement> linksImages= driver.findElements(By.xpath("XXXX"));

и делаете с листом что хотите

3.JavascriptExecutor jsdriver = (JavascriptExecutor) driver;

jsdriver.executeScript("document.getElementById('" + myId
                + "').value  '" );

-тут скобки напутал, но смысл такой


  • 0

#8 vmaximv

vmaximv

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

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

Отправлено 20 июня 2014 - 07:02

На данный момент осваиваю Selenium IDE.


  • 0

#9 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 20 июня 2014 - 09:09

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

Возьмитесь за задачку попроще.

 

По решению вашей задачи, можно было бы сравнивать title ссылки на картинку, скачивать картинку и сравнивать хеш с шаблоном (мы же все понимаем что реально сравнить картинки это не задача для тестирования инет магазина, ведь так?) 


  • 0

#10 yomin

yomin

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Yury

Отправлено 20 июня 2014 - 13:11

Спасибо ребята за подсказку, буду пробовать.


  • 0

#11 yomin

yomin

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Yury

Отправлено 24 июня 2014 - 06:33

Возник вопрос. Допустим в списке товаров имеются различные вариации фонариков. У каждого товара есть одинаковая надпись "фонарик". Пусть переменная item1, будет хранить значение "фонарик". Кликаем по одному из фонариков в списке, открывается подробные описания товара. В тайтле открывшегося товара он именуется как "№6567 - Фонарик зеленый" и это название сохраняем в переменной item2. Чтобы убедиться, что открылся нужный нам товар, нужно сравнить значение item1 с item2, причём нужно выполнить поиск в переменной item2, есть ли в этой строке слово "фонарик". Можно конечно вырезать все символы до слова фонарик и после, но у каждого товара количество символов и их значения всегда разные. Как можно выполнить поиск определённого слова в строке?


  • 0

#12 Dalay_LAMO

Dalay_LAMO

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

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Дмитрий
  • Город:Санкт-Петербург


Отправлено 24 июня 2014 - 07:51

Возник вопрос. Допустим в списке товаров имеются различные вариации фонариков. У каждого товара есть одинаковая надпись "фонарик". Пусть переменная item1, будет хранить значение "фонарик". Кликаем по одному из фонариков в списке, открывается подробные описания товара. В тайтле открывшегося товара он именуется как "№6567 - Фонарик зеленый" и это название сохраняем в переменной item2. Чтобы убедиться, что открылся нужный нам товар, нужно сравнить значение item1 с item2, причём нужно выполнить поиск в переменной item2, есть ли в этой строке слово "фонарик". Можно конеггчно вырезать все символы до слова фонарик и после, но у каждого товара количество символов и их значения всегда разные. Как можно выполнить поиск определённого слова в строке?

 

С этим помогут регулярные выражения (regexp), поддержка которых есть даже в Selenium IDE, если мне не изменяет память.


  • 0

#13 yomin

yomin

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Yury

Отправлено 25 июня 2014 - 03:08

Проблему удалось решить, оказалось всё просто. assertText |  id=product_heading  |  *фонарик*  В target прописываем где сравнивать, а в value указываем шаблон. При несовпадении тест выдаёт ошибку и останавливается.


  • 0


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

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