Добрый день хотелось бы узнать кто как проверяет линки?
Суть задачки имеется подобласть линков энное количество нужно проверить все ли они работают и правильно ли переходят на нужную страничку:
Решил её через алгоритм довольно таки простой list<webelement> заганяю все эти элементы и беру оттуда текст потом подставляю этот текст в xpath и открываю данный элемент в новом окне потом сравниваем title новой страницы с текстом названия линка если таковой совпадают значит link работает если нет значит не работает закрывает новое окно и подсвечиваем линк делаем скриншот и в репорт и так пока не закончатся линки .
Вопрос хотелось бы услышать мнения кто как такое делает и какой самый быстрый способ используется webdriver +junit+thucydides
Вообще достаточно сомнительные мероприятие проверки тайтла в зависимости от текста линК. Плюс тайтл можно проверить только после загрузки этой внешней страницы, что достаточно долго и сильно отражается на времени прохождения тестов. Еще один момент, зачем проверять тайтл внешней страницы? Получается что вы проверяете не свое приложение, а стороннее. у себя делаю это в упрощенной форме, т.к. простой тест - залог успеха Сначала считаю сколько элементов линков, затем открываю их всех, считаю сколько открылось табов, закрываю их. Плюсы - простота, тестирование нужных сервисов, тестирование что что-то открывается и загружается, не надо ждать загрузку страницы, нет привязки к внешним сервисам.
Где-то указано, что они внешние? Нет - значит внутренние.
Пусть мануальщики проверяют линки, верстку, шары, соответствие контента и т.д.
Автоматизируется регресс, функциональность отвечающая за бизнесс-логику. Но если так надо - можно проверить элементарным HEAD, с кодом ответа. Либо GET с вхождением необходимой фразы в боди страницы (не UI тест, но все же)
А вообще: использование Selenium для таких вещей - говорит о “качестве” специалиста. Для разнообразных задач - нужен соответствующий инструмент.
Підтримую.
Якщо питання стоїть: чи робочі лінки, то достатньо перевірити на 404, як на мене (пишу на Python, а він має чудову лібу requests, яка доволі швидко з цим справиться).
якщо у вас сайт, на якому варто перевірити чи всі посилання “живі”, то використайте павука (scrapy).
Странно почему тест должен падать ? если мы проверяем неизвестное количество линков ?
Тест не должен падать но должен помечать не работающий линк , это легко делается через verifyThat.
По поводу мануальщиков, как вы думаете на каком количестве линков мануальщик устанет плюнет и скажет что все работает ? 100, 200 ? а повторный прогон ? а вдруг кто то что то поменял ? и почем это должно быть дольше ? по моему лучше потратить 2-3 часа на написание грамотного одного теста чтобы применим был к 80 % таким же тестам и без копипаста.
По поводу проверки почему только на 404 ? а если линк рабочий но переходить не туда а таких линков у меня например 5 из 200, при затрате времени и качества лучше все таки автомат чем каждый раз бедный мануальщик клацать будет ? вам не кажется ? А если линки добавятся например еще 100 ? что делать будем ?
По поводу использования Selenium как по мне так он как раз и используется для большого количества однотипных тестов.
По поводу качества специалиста мне вот интересно у меня есть 2 теста где проверяет гуи и функционал где то порядка 10000 товаров из 10000 товаров ошибок всего порядка 3%
что вы мануальщику скажете иди дорогой у тебя есть куча методологий ???
Я бы сказал сразу что такой специалист не специалист.
По поводу скорости никто вам не мешает настроить профиль или например распараллелить ваши тесты , или мешают ? Да скорость не та конечно как например хотелось бы но все же намного быстрей чем ручками.
Но самое главное это то что просто хотелось услышать варианты решения, так как задачка решена и забыта правда иногда включает серое вещество Спасибо за паука попробую это то что нужно или нет.
Разделю на классы эквивалентности, и проверю по границам. Если функциональность работает - она работает для всех товаров, в таком случае. Иначе - проблема не в функциональности, и это можно разглядеть при проверке ручками (ну или автоматом, как Вы).
Поле принимает [0-10] символов, которыми могут быть только числа в диапазоне 0-9. Вы будете проверять все от 0 до 9999999999?
Проверять через UI 10000 товаров? Я бы тоже подумал над тем, что же там на самом деле проверяется, какова цель тестов? Скорее всего можно через UI сделать некоторые типичные проверки (по классам эквивалентности), а остальное, например, через БД или API. При этом будет достигнута скорость тестирования, которую через UI просто не получить, сколько ни распараллеливай. При одинаковых результатах
А что плохого? Пусть падает. Тесты для того и нужны, чтобы сигнализировать о поломках.
Ведь это означает, что пользователь тоже будет получать ошибку при переходе по линку. А так вы сможете предпринять необходимые действия или хотя бы будете в курсе ситуации.
Только проблема в том, что вас не интересует, упал ли сайт у вашей партнерской компании или у вашего спонсора отвалилась ссылка. Самая большая проблема автоматизированного тестирования в бОльшинстве случаев - его избыточность.
… или партнер сменил урл/api/etc, а кто-то забыл комитнуть в репозиторий…
Спустя некоторое время партнеры/спонсоры, решив кликнуть на свои логотипы в вашем приложении, попадают на порно-хаб… Вы долго объясняете менеджеру про “избыточность”, но спонсоры уже прекращают с вами сотрудничество… Проекту не хватает финансирования… Все идут в сад на бенч…
Вывод: либо тестировать качественно, либо не тестировать вообще.
Так подождите, а как у вас устроен флоу, что вы не знаете что партнер сменил линк? Вы должны сами нагуглить это, партнер вам не должен сообщить, тикет не должен быть поставлен и сделан? Или все делается по флоу “абы как”?)
Какая разница как “устроен” флоу - я просто смоделировал ситуацию (так же спонтанно, как вы приплели “внешние линки” к данной теме), дабы донести до вас то, что пытаются сказать другие участники ветки.
Т.о. вы тестируете требование: нажатие на любую ссылку из блока А открывает новое окно браузера.
Несет ли это требование смысловую или функциональную нагрузку? Мне видится что нет.
Что дает тест, который покрывает это требование? Ровным счетом то, что и требование - ничего.
Если перефразировать кратко: если вам не важен результат, зачем это тестировать?
Не могу сказать за питон, но с точки зрения тестирования глупо(имхо) считать количество открывшихся табов. А если ссыль тянет за собой js action? У Вас откроется N “about:Blank” табов и все счастливы? Неправильно это…
Я для проверки линок сделала специальный скрипт, который шлет http запросы и проверяет ответы. Просто выдираю линки из источников и прогоняю через скрипт, чтобы облегчить работу всей тест-команде. Но это мало отношения имеет именно к UI автоматизации.