@qa_ru

Страница 400 из 1080
Andrey
29.03.2017
12:58:44
руками все стопятьсот сценариев чекаешь?

не устаешь?

Nikita
29.03.2017
12:58:48
блин вот давайте не падаьт в крайности
да я не впадаю) только мастер можно тестить, почему нет. просто посмотреть ветку с фичей, а потом посмотреть интеграцию на мастере лучше

Andrey
29.03.2017
12:59:58
помню мне однажды на очень хитрый вопрос, который я задаю на собесе ответили очень смешно)

Google
Andrey
29.03.2017
13:00:20
мы можем деплоить со скоростью ручного тестирования)

Николай
29.03.2017
13:01:36
да я не впадаю) только мастер можно тестить, почему нет. просто посмотреть ветку с фичей, а потом посмотреть интеграцию на мастере лучше
вот говоришь лучше ветку посмотреть. чем? бага находится раньше? ДА. В мастере ебаьтся с локализацией бага не нужно будет? ДА. Но по трудозатратам это проигрывает модели когда тестится только один раз потом мастер с этими фичами. Ибо дешевле потом поебаться с локализацией чем проверять все два раза. Ну опяьт же... это в теории. Мне тоже ваша модель нравиться больше. Но рук предлагает такую модель. И я не могу найти оправданий почему так не стоит делать кроме того что сам же выше и написал

Николай
29.03.2017
13:02:17
почему нет?

Nikita
29.03.2017
13:02:27
ветка смотрится досконально, мастер смотрится на местах возможных конфликтов

Николай
29.03.2017
13:02:30
а как понять что в мастере ничего не сломалось?

Andrey
29.03.2017
13:02:40
после локализации и устранения добавляется еще одна регрессионка и забывается

Николай
29.03.2017
13:02:43
Nikita
29.03.2017
13:02:52
на стыке новой функциональности

если есть 10 кусков, добавился к одному куску подкусок, зачем смотреть остальные 9?

Николай
29.03.2017
13:03:22
но в текущий момент спор за счет такой модели в том числе я не выиграл )

Dmitry
29.03.2017
13:04:08
Google
Николай
29.03.2017
13:05:20
с разработчиками всм"

ладно всем спасибо =)

Pavel
29.03.2017
13:05:52
Постойте ка, а разве тут разрешен мат?

Richard
29.03.2017
13:07:31
Где мат?

Pavel
29.03.2017
13:08:00
Уже раза 3 видел

Richard
29.03.2017
13:08:10
Николай, давайте формулировать без мата. Здесь разные люди собрались.

John
29.03.2017
13:09:31
Пожалуйста, помогите с nginx-ом. Никаких материалов не могу найти.

Pavel
29.03.2017
13:10:07
https://www.nginx.com/blog/nginx-caching-guide/

John
29.03.2017
19:07:57
Мдааа, я все делал неправильно

Приложение полностью на https, так что squid отпадает.

nginx и varnish тоже отпадают, потому-то у меня нет доступа к приложению со стороны сервера.

Николай
29.03.2017
19:08:49
например задача...пройти по 10 ссылкам посмотреть что баннер на месте и все ок. как реализовать на мобильники в двух браузерах. Стандартном + хром есть варианты без шнура? То есть как то удаленно... вжух... и у тебя открыты все нужные вкладки во всех нужных браузерах во всех нужных устройствах...?) ну ладно ладно...если вдруг нет. а со шнуром как оптимально? селениум подрубать? а прощще есть?)

Николай
29.03.2017
19:11:55
посмотрю спс. На всякий случай. Есть еще варианты?)

Google
Nikita
29.03.2017
19:13:24
оно умеет собирать траффик с сервака, а потом перераздавать его

Nikita
29.03.2017
19:16:39
А с HTTPS как?
смотри, я сам в своих реальных проектах не юзал. но разницы между https и http тут не должно быть. оно ведь не сниффает траффик, оно траффик собрало – считай загрузило ответы от REST API и условную статику, а потом перераздает собранное :)

когда тестировал, тестировал не с https

John
29.03.2017
19:17:04
Даже думал про shared cache между инстансами chrome.

Nikita
29.03.2017
19:17:35
а зачем тебе вообще понадобилось кеширование?

John
29.03.2017
19:19:17
а зачем тебе вообще понадобилось кеширование?
Много селениумов + хромов в докер контейнерах работают с разными аккаунтами на одном и том же веб-апп.

Nikita
29.03.2017
19:19:37
ну и хорошо, пусть грузят реальные данные, или там супертяжеляк?

John
29.03.2017
19:20:44
Веп-апп довольно неповоротливый, только загрузка около 20 секунд, а с кешом хрома около 3-6 секунд.

Вот и подумал про кеширование.

Nikita
29.03.2017
19:23:21
не, ну так-то все правильно звучит, наверное полезным будет кеширование. но я не фанат, выше озвучивал почему – добавляется уровень, на котором может потеряться ошибка

Nikita
29.03.2017
19:34:10
А если использовать shared cache между хромами? Или звучит как безумство?
я никогда такое не использовал, если честно. пошарить кэш между всеми докерами? а это точно будет быстро и надежно?

Nikita
29.03.2017
19:35:08
ну можно попробовать, хуже точно не будет) просто ведь общий кэш означает общую сессию и общий локал сторейдж по идее, или я не прав?

Nikita
29.03.2017
19:36:53
я не очень люблю применять такие штуки в тестах, если честно, и стараюсь все сделать проще и в тупую, если так можно) просто с нагромождением сложных технических решений возрастает процент ошибки

Google
Nikita
29.03.2017
19:38:14
даже простейший докер селениум иной раз добавляет непредвиденные ошибки с решениями из серии it's a magic

Evgeniy
29.03.2017
19:43:33
А если использовать shared cache между хромами? Или звучит как безумство?
это будет похоже на пользовательский сценарий? по мне так загрузка изначального приложения - не есть плохо. один раз загрузил, остальные тесты с этим же инстансом вебдрайвера прогоняешь, в рамках фактически SPA режима.

если это нужно для мобильных приложений, всегда опирайся на то, что в мобильных устройствах наверняка из памяти вкладки выгружаются. на iOS, андроиде, страницы отмирают, снова подкачивая js-бандлы. Смысла пытаться эмулировать уже загруженное приложение я не вижу только исходя из необходимости экономии времени, лучше придумать оркестрацию тестирования в параллели и скомпоновать по возможности сценарии в рамках одной роли аутентификации на предмет разных сценариев в одной сессии (одном инстансе вебдрайвера)

Nikita
29.03.2017
19:51:55
а зачем тесты с одним инстансом вебдрайвера гонять? мне кажется, это атомарности и изолированности не добавляет

Evgeniy
29.03.2017
20:05:16
а шаренный кеш - добавляет изолированности? :)

Nikita
29.03.2017
20:05:33
так я не топил за шаренный кэш)

Admin
ERROR: S client not available

Nikita
29.03.2017
20:05:53
не добавляет вообще ни разу

Evgeniy
29.03.2017
20:06:23
если пользователь в рамках своей сессии не закрывая страницу может делать операции - зайти в дашборд, потыкаться, сходить на публикацию чего-нибудь, засабмитить что-нибудь. То, в принципе, в рамках экономии выполнения тестов, это сделать можно

но это не исключает необходимость изолированных тестов

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

но имхо опять же - я б лучше нащупал, сколько агентов максимально можно загрузить тестами без возникновения ошибок при параллелизации, или придумать re-run логику в этом случае, и гонять медленные тесты по-честному

Nikita
29.03.2017
20:08:05
мне кажется, что если нужна скорость – лучше тесты попараллелить, чем выполнять все операции последовательно в рамках одной сессии. ведь есть шанс, что они друг другу помешают

John
29.03.2017
22:49:08
Огромное спасибо за детальное обсуждение. Знаю что, лучше делать по правилам, стандартам и best practices. Проблема в том, что идентифицировал bottleneck в системе, и просто думаю/пробую разные варианты. Да, шаренный кеш не изящен.

Проблема именно в том, что именно загрузка самая долгая часть всего.

Да, есть requirement параллелизации.

Про изолированнось согласен на 100%.

Вот такая дилемма получается: производительность vs изолированность + чистота среды

Evgeniy
29.03.2017
23:05:48
Производительность едва ли панацея от вообще чего бы то ни было. в случае тестирования (на качество это не влияет, а делать ненужные вещи чаще с большей энергией - такое себе))) Т.е. фактически если у тебя ручное тестирование + автоматизированные не превышает выделяемого времени на тест фичи, то производительность (скорость) тестов - это, фактически, бесполезное улучшение. Потому что модели тестирования бывают разные: где-то коммит разработчика будет зареджектен автоматом при помощи CI потому что твои UI тесты упали. А где-то они не являются блокерами, но параллельно рассказывают о том, как дела с продуктом в его текущем состоянии.

Без понимания, для чего ты хочешь ускорять тесты - во что упереться - смысла упираться в это нет. Тесты гоняются на тестовых агентах, которые нужны другим тестировщикам? как часто разработчики коммитят код, который нужно по-каждому коммиту запускать набор тестов? _Нужно_ ли вообще запускать все тесты? может, подумать над запуском групп тестов в зависимости от тегов задачи в Jira?

Google
Evgeniy
29.03.2017
23:14:10
Или такой вопрос: может ли уровень разработки предоставить тебе пофичный релиз, релиз 5-6-10 фич за сутки с деплоем на бой, чтобы каждая из фич изолированно проверялась? А если разработка осуществляется сбором какой-то релизовой ветки из нескольких фичевых - то полный регрессионный прогон имеет смысл запускать в: а) на машине тестировщика, когда он проверяет фичу и сам решает какую группу тестов запустить на своем железе б) на "общем" тестовом контуре на фичу в) на "общем" тестовом контуре на на ветку релиз-кандидата (если у тестировщиков "тонкие" клиенты) Когда от каждой конкретной фичи нужно быть зарилеженной "сегодня" или "через 2 часа" - с начала тестирования, а регрессия предполагает 15 браузеров и разные разрешения под адаптивную верстку - тогда, возможно, и правда стоит задуматься над тем, чтобы каждый тест выполнялся на 15-20% быстрее.

Anton
30.03.2017
02:12:48
Приложение полностью на https, так что squid отпадает.
а вот и нет. там есть SSL Bump http://wiki.squid-cache.org/Features/SslPeekAndSplice

к слову, при "классической" настройке прокси меняет заголовки. имеет смысл также сделать приседание с фильтром пакетов и использовать уже transparent proxy

Pavel
30.03.2017
07:40:18
Привет, подскажите, пожалуйста, какой-нибудь канал для автоматизаторов? Или может у кого есть инфа по правильной настройке selenium grid + connection тестов. При browser.get(url) стало падать много TimeoutException, не могу побороть.

Evgeniy
30.03.2017
07:51:03
Привет, подскажите, пожалуйста, какой-нибудь канал для автоматизаторов? Или может у кого есть инфа по правильной настройке selenium grid + connection тестов. При browser.get(url) стало падать много TimeoutException, не могу побороть.
При работе в параллели производительность каждого вебдрайвера падает, после get попробуйте вызвать implicitly wait для загрузки первой страницы. Остальные манипуляции с сайтом я бы делал через поиск элементов с ожиданием.

Pavel
30.03.2017
07:54:44
Спасибо, попробую. Да, кстати, запуск действительно в параллельном режиме + docker selenium grid, пробовал разную конфигурацию, 1 нода - 1 инсанс, 1 нода - 3 инстанса, контролирую потребление cpu/mem и т.п., результат был одинаковый, только в однопоточном режиме отрабатывает нормально.

Anton
30.03.2017
08:21:01
изучите код запуска браузера, может у вас переменные глобальные или что-то типа того

Pavel
30.03.2017
08:26:32
python, фикстурой создаю коннект и выставляю нужные ожидания, далее driver прокидываю тесту, после отработки теста - коннект прибивается. driver = webdriver.Remote( command_executor=RemoteConnection(request.config.option.selenium_url, keep_alive=False, resolve_ip=False), desired_capabilities=request.param, ) driver.implicitly_wait(request.config.option.implicitly_wait) driver.set_page_load_timeout(request.config.option.page_timeout) Падает именно на первичном открытии url. в 10-20% случаев (если параллельный запуск) и в 0-5% если однопоточный

Nikita
30.03.2017
08:26:54
а какую ошибку пишет браузер?

то есть какой лог у докер-контейнера на момент падения теста?

Pavel
30.03.2017
08:28:21
TimeoutException: Message: timeout: cannot determine loading status При падении каждый тест снимает скришот, но в данном случае скрин не снимает, я так понимаю браузер просто не стартует.

Nikita
30.03.2017
08:29:12
ооо

было такое. и воспроизводится рандомно, верно?

не стабильно и не всегда

Pavel
30.03.2017
08:30:49
думал уже пробовать использовать https://github.com/bayandin/devtools-proxy чтобы понять что там происходит в контейнере, но может быть тут подскажут быстрее=)

Страница 400 из 1080