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

Публикации the0

9 публикаций создано the0 (учитываются публикации только с 29 марта 2023)


#170844 Параллельные тесты выполняются в одном окне

Отправлено автор: the0 07 февраля 2019 - 13:38 в Автоматизированное тестирование

каждый инстанс драйвера с браузером в своём контейнере. Так архитектура будет надёжная - они не мешают друг другу как при запуске в одной ОС - один браузер может подвиснуть забрав 100% цпу, другой отъест память, третий закрэшится, и они помешают выполниться остальным тестам. Так же архитектура будет sclalable и portable - легко добавлять/убирать ресурсы, запускать на разных машинах и в облаке, запускать на любых ОС. Так же контейнеры faltproof, можно их легко перезапускать при фейле

Параллельность достигается на уровне кода, там где "живут" инстансы драйвера. Код работает на машине отдельно от браузеров и никак не связан с инфраструктурой, он о ней попросту не знает ничего. Наживую браузеры бегают или в контейнерах. После того, как мы запросили сессию по URL хаба для RemoteDriver, ничего дальше не параллелится. Может вы имели ввиду, что очереди ваших запросов могут распределяться каким-либо балансером, типа ggr? Но это не имеет отношения к параллельности самих тестов и к тому, как это реализовано на уровне кода.




#170842 Параллельные тесты выполняются в одном окне

Отправлено автор: the0 07 февраля 2019 - 13:10 в Автоматизированное тестирование

каждый инстанс драйвера с браузером в своём контейнере. Так архитектура будет надёжная - они не мешают друг другу как при запуске в одной ОС - один браузер может подвиснуть забрав 100% цпу, другой отъест память, третий закрэшится, и они помешают выполниться остальным тестам. Так же архитектура будет sclalable и portable - легко добавлять/убирать ресурсы, запускать на разных машинах и в облаке, запускать на любых ОС. Так же контейнеры faltproof, можно их легко перезапускать при фейле

Этот момент я понял, изолированность мы получили благодаря запуску браузеров в контейнерах, управляются они, допустим, селенойдом, но как это влияет на код? Создали драйвер в потоке, отправили на хаб, а что дальше меняется? В том смысле, что изменяется в описанном мной подходе если вы поднимаете браузеры в докере, а не запускаете, скажем, просто на VPS или виртуалке?




#170840 Параллельные тесты выполняются в одном окне

Отправлено автор: the0 07 февраля 2019 - 12:53 в Автоматизированное тестирование

 

 

Я использую такой подход:

Отдельный класс, реализующий фабрику драйверов.
TestNG создает поток в @Before и затем я ищу "живой" драйвер используя фабрику в данном потоке. Если драйвера в потоке нет, создаю новый. Второй, третий и т.п. тесты/классы/сюты (в зависимости от ваших целей) будут получать новый инстанс драйвера для своего потока и работать в новом браузере. Сама переменная драйвера каждый раз укладывается в контейнер ThreadLocal и перед driver.quit извлекается из него же с тем, чтобы мы не "убили" случайно драйвер из соседнего потока.

Далее в конфиге хмл можно указать нужное количество потоков переменной thead-count. Ну, а сам TestNG может параллелить на том уровне, на котором вам нужно: методы/тесты/классы/сьюты (параметер parallel). По умолчанию количество потоков, если не ошибаюсь, равняется пяти.

Так вам не придется использовать @DataProvider, а параллельность будет происходить средствами самого TestNG и управляться из xml конфига. Получается гибко и удобно, особенно в случае, где в определенных сьютах вам не нужно запускать тесты параллельно (например они работают с одной и той же сущностью в приложении), а в других - необходимо.

да, такой подход к параллелизации был актуален до прихода контейнеризации

 

О какой именно инфраструктуре вы говорите? И в чем будет различие при использовании контейнеров?




#170838 Параллельные тесты выполняются в одном окне

Отправлено автор: the0 07 февраля 2019 - 12:26 в Автоматизированное тестирование

Я использую такой подход:
Отдельный класс, реализующий фабрику драйверов.
TestNG создает поток в @Before и затем я ищу "живой" драйвер используя фабрику в данном потоке. Если драйвера в потоке нет, создаю новый. Второй, третий и т.п. тесты/классы/сюты (в зависимости от ваших целей) будут получать новый инстанс драйвера для своего потока и работать в новом браузере. Сама переменная драйвера каждый раз укладывается в контейнер ThreadLocal и перед driver.quit извлекается из него же с тем, чтобы мы не "убили" случайно драйвер из соседнего потока.

Далее в конфиге хмл можно указать нужное количество потоков переменной thead-count. Ну, а сам TestNG может параллелить на том уровне, на котором вам нужно: методы/тесты/классы/сьюты (параметер parallel). По умолчанию количество потоков, если не ошибаюсь, равняется пяти.

Так вам не придется использовать @DataProvider, каждый браузер будет управляться своим драйвером, а параллельность будет происходить средствами самого TestNG и управляться из xml конфига. Получается гибко и удобно, особенно в случае, где в определенных сьютах вам не нужно запускать тесты параллельно (например они работают с одной и той же сущностью в приложении), а в других - необходимо.




#170837 Как скрыть окно запуска и работы хрома в selenium

Отправлено автор: the0 07 февраля 2019 - 12:15 в Автоматизированное тестирование

Как правило, в этом нет необходимости, так как промышленные прогоны не проводятся локально на ПК за которым вы работаете, а ранаются удаленно на VPS/PC или виртуальных машинах. Либо используйте Headless, как уже посоветовал вам коллега постом выше.




#165797 Получение данных с таблицы по входящим параметрам

Отправлено автор: the0 17 апреля 2018 - 10:31 в Selenium - Functional Testing

Если по уму, то нужно создавать объект Table и вспомогательные объекты типа TableRow и TableColumn для того, чтобы работать с таблицей и ее элементами. Это если вы хотите иметь возможность потом работать с любыми таблицами вашего приложения.  Для этого хорошо бы знать основы ООП и JavaCore.




#165793 Сменить профессию на тестировщика

Отправлено автор: the0 17 апреля 2018 - 08:46 в Свободное общение

Доброго дня уважаемые друзья!
Подскажите пожалуйста сложно ли и стоит ли вообще пыпаться идти в тестировщика с нуля? Я с Пензенской области, регион не богатый, соответственно и зарплаты.
Сейчас мне 33 года, работаю в ремонте автомобилей(ИП) с 2014 года. Сфера грязная, нервная(работа с людьми), и требует физ здоровья(в данный момент что то со спиной,сижу дома третий день) нет здоровья нет зарплаты(основная причина поиска другой сферы труда).
С 2006 года до 2014 трудился системным администратором в управлении финансов района.(ас бюджет,кц система,смета,и т.п.). Работка была нормальная, не напрягаться, но зарплата 13-15тыс руб убила всё желание к IT а так же отсутствие роста(не проф ни в зарплате).

Забыл указать образование,если это имеет значение)) высшее финансы и кредит.

Реальность сегодня такова, что от того, что вы прочтете Савина и посмотрите пару лекций Портнова в вас не начнут кидать баксами и забрасывать предложениями с возможностью релокации в Мск/СПб. Тестирование это серьезная инженерная профессия. Сколько обычно люди учатся, чтобы получить степень? Вот прикиньте, сколько у вас может занять переход в новую сферу, чтобы выйти на хороший уровень знаний и => зарплаты.

Стоит также предупредить вас о том, что работники IT сферы относятся к группе риска по неврологии. У многих коллег уже к 25 годам имеются дегенеративные изменения в позвоночнике. Остеохондроз, протрузии дисков и прочие радости профессии, такие как проблемы со зрением, а также неприятности, как следствие малоподвижности. Есть люди, кто после работы активно занимается спортом, туризмом, но первые года два у вас при переходе не будет на это времени. Я бы это учитывал при смене профессии. Сидение по 12-14 часов в кресле, пусть даже удобном, вам не улучшат картину. 

Почему по 12-14? Да потому что кроме работы вам придется учиться и много, жертвовать пивом с друзьями, походами в бассейн и личной жизнью, если вы желаете выйти на хороший уровень как можно быстрей. Впрочем, если вас устроит небольшая зарплата и работа не в IT Компании, а в каком-нибудь отделе местной конторы, где вы за одно будете принтеры налаживать, тогда можно и не особо учиться, но и перспектив тогда не ждите.




#165789 Входное тестирование на собеседовании. Протестируйте микроволновку.

Отправлено автор: the0 17 апреля 2018 - 08:27 в Про тестирование обо всём подряд

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

- Я бы начал с позитивных функциональных проверок: что дверца открывается, закрывается и микроволновка в принципе нагревает. Затем, используя классы эквивалентности я бы тестировал работу разных мощностей на таком, таком и таком временном промежутке...

Ну и дальше, стрессовое, производительности, юзабилити и т.п. 


 




#165786 Нужен ли Page Object при устройстве на работу?

Отправлено автор: the0 17 апреля 2018 - 06:50 в Selenium - Functional Testing

Привет. Знаю неплохо Селениум на Джаве, но только на уровне функционального программирования. Но не понимаю OOP Page Object. При устройстве на работу обязательно знать Page Object?

При устройстве на какую работу? На какую должность?

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

Ответ: да, все возможно в этом мире, но шансы в вашем случае крайне малы.

Требования бывают разные от компании к компании, но по моему опыту, чтобы претендовать на позицию джуна по автоматизации на джаве, вам необходимо знать основы ООП и уметь на примерах объяснить, что такое полиморфизм, инкапсуляция и наследование. Желательно еще понимать для чего вообще нужен Page Object, а также вас спросят, какие паттерны кроме PO вы знаете. Кроме API селениума вас обязательно спросят по Java Core. Насколько глубоко - зависит от фантазии людей, проводящих собеседование. Меня всегда спрашивали не автоматизаторы, а джависты бэкэндеры, так что готовиться надо серьезно.

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

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