
cypherQD
03.06.2017
11:28:59

Boris
03.06.2017
12:22:48
Скажите, а много ли здесь народу использует контейнеризацию ?

Nikita
03.06.2017
12:22:59
использую докер

Boris
03.06.2017
12:23:21
Как-то автоматизируешь?

Google

Pavel
03.06.2017
12:23:50
Использую lxc иногда

Nikita
03.06.2017
12:24:34

Boris
03.06.2017
12:25:04

Nikita
03.06.2017
12:25:28
они запиханы в CI

Boris
03.06.2017
12:26:13
хм.

Nikita
03.06.2017
12:27:31
очень удобно – полная изоляция и не нужно переживать, что на билд агенте кто-то снесет зависимости/обновит браузеры или хромдрайверы, не нужны тянуть пакеты – все упихано в контейнер. запустил – прогнал тесты – прибил, никаких следов

Boris
03.06.2017
12:28:22
А чем новые докер-контейнеры делаешь?
Какой-нибудь оркестратор используешь? Ansible например

Nikita
03.06.2017
12:32:39
оркестрация для моих задач не особо уместна – мне не нужны миллионы контейнеров. если нужно поднимать несколько разных взаимозависимых, можно заюзать docker-compose, если много одинаковых – docker swarm (его не тыкал)
у меня в одном контейнере бежит 4 потока хрома, и мне этого пока достаточно

Anton
03.06.2017
12:34:44
да и для браузеров с селениумом внутри уже есть готовые контейнеры =) так что там городить особо ничего =)

Nikita
03.06.2017
12:36:53
да, на гитхабе есть чудесный репозиторий – https://github.com/SeleniumHQ/docker-selenium

Google

Boris
03.06.2017
12:37:12
О! Благодарствую!
а ресурсов эта прелесть много кушает ?

Nikita
03.06.2017
12:38:11
я особо не мерил, если честно – shm-size контейнера выставил на 4 гига, хватает, чтобы тесты в 4 потока бежали достаточно быстро и не падали из-за тормозов

Boris
03.06.2017
12:38:40
А много времени тесты бегают?

Nikita
03.06.2017
12:40:30
это очень сильно зависит от того, какие у тебя тесты :) скажем так, я не увидел, чтобы докер хоть как-то аффектил их скорость по сравнению с локальным запуском
а если ты про опыт использования – юзаю с осени, полет нормальный

Boris
03.06.2017
12:42:53
Мне просто предстоит как-то сделать так, что бы 8 часов автотестов на JS занимали меньше времени хД
я вот прикидываю - как.
Первое - распаралелить.
А дальше уже смотреть на сами тесты, оптимизировать. Что-то переносить на уровень интеграционных, а что-то выкидывать. А что-то дополнять

Nikita
03.06.2017
12:45:19
у меня нет 8 часов, конечно :) но у меня микросервисы, там нет столько бизнес-логики чтобы ее 8 часов гонять. все что можно вынесено в юниты/интеграцию, поэтому есть условно 100 фронтовых тестов которые бегут минут 5-6

Boris
03.06.2017
12:45:59
Звучит вполне себе здраво
Прям вот: Никита молодец. Будьте как Никита.

Nikita
03.06.2017
12:47:17
у меня команда молодец, когда я пришел уже было неплохое покрытие низкоуровневыми тестами :) оставалось только все это разгрести, допокрыть и написать высокоуровневых

Boris
03.06.2017
12:50:27
а у меня походу будет перевернутая пирамида

Nikita
03.06.2017
12:52:32
на новом месте все делали не по канонам? :(

Boris
03.06.2017
12:54:44
Ну, похоже на то.
Вероятно, этих канонов там и не очень-то знают =\
Мне и самому бы подучится, но какие-то вещи я уже знаю.
А дальше яростный гуглинг и все такое

Nikita
03.06.2017
12:55:21
дорогу осилит идущий

Boris
03.06.2017
12:55:43
Дорога длинной в тысячи ли, начинается с первого шага.

Nikita
03.06.2017
12:55:50
но перевернутая пирамида на JS это боль, аж кольнуло

Boris
03.06.2017
12:56:40
Вот такой была моя реакция когда узнал чего и как
И вроде бы ругаться хочеться, и нельзя. Собеседование все-таки.
Ну, ничего.
Главное стоит понимать что прям все сразу жечь нельзя.
Надо понять что лишнее и стараться действовать хирургическим путем.

Google

Boris
03.06.2017
13:01:12
Господи, дженкинс вообще молодец. Поднялся с полпинка и уже запускает мои тесты вытягивая их с битбакета О_о

Dmitriy
03.06.2017
14:56:29
Глянь 6 встречу

Boris
03.06.2017
14:57:57
Спасибо

Dmitriy
03.06.2017
15:02:39
Спасибо
Иногда ещё полезно добавлять в контейнер возможность трансляции происходящего, чтобы видео на какой нибудь порт транслировалось. Для дебага, что скрины не ловят.

Boris
03.06.2017
15:29:43

Dmitriy
03.06.2017
15:30:05

Boris
03.06.2017
15:30:22
Если что до этого, докеризацию на селениуме я не пробовал

Николай
03.06.2017
15:35:19
http://cs9.pikabu.ru/post_img/2017/06/03/4/1496469519127494497.gif

Nikita
03.06.2017
17:21:44

Shoo
04.06.2017
06:56:35
Хэй, господа и дамы, кто на Гайзенбаге отзывайтесь :)

Roman
04.06.2017
06:59:15
@azshoo +

Richard
04.06.2017
07:18:21
+

Леся
04.06.2017
07:23:11
+

Alexei
04.06.2017
07:54:46
https://t.me/heisenbugconf

Ivan
04.06.2017
08:15:20
+

Alexander
04.06.2017
09:40:43
Кто-нибудь может прокомментировать спор Алименкова и Виноградова?
на гейзенбаге

Admin
ERROR: S client not available

Google

Evgeniy
04.06.2017
09:41:26
а че тут комментировать? спор из-за реливантности опыта, чтобы можно было или нельзя вещать об этом как о хорошей практике.
паттерны - это хорошо, когда к месту. kiss - это хорошо
делать всегда по kiss и потом поразиться, что придется все переписывать - плохо. принимать простые и в то же время расширяемые архитектурные решения - хорошо.

roma
04.06.2017
10:15:02
Нормально использовать только по началу и одному принцип KISS как его преподнес виноградов. Но когда появляется ещё хотя бы один специалист или тестов все больше и больше к примеру более 30 то без паттернов минимальных никак.. Главное не переборщить в дальнейшем и грамотно всеми патернами орудовать

Evgeniy
04.06.2017
10:15:48
главное иметь общий свод правил на команду как писать тесты. остальное - дело техники

roma
04.06.2017
10:16:48
Главное чтобы ему все следовали :)

Evgeniy
04.06.2017
10:16:58
можно chain call делать - ради бога, опиши это в документе.
можно делать неявные переходы и возвращение других пейдж объектов - договоритесь внутри команды, как такие методы только из названия будут очевидно говорить, что наверняка будет другой пейдж объект передаваться
доклад про кодогенерацию был немного перегружен имхо

roma
04.06.2017
13:36:08
Есть статья на хабре про это
И не зря это хардкор

Evgeniy
04.06.2017
13:39:35
да не, дело в том, что все то же самое у меня было на прошлом месте работы 1.5 года назад еще
все то же самое, только без javapoet , который бы тестовые данные генерил
вмесо этого был датаправайдер основанный на ORM который выдавал случайные данные из реальной бд по твоим тестовым моделям
это не хардкор, просто возможно стоило структурировать доклад получше, ну или мне джява просто на когниивном уровне не заходит

Dmitry
04.06.2017
17:23:25
может кто-то поделиться проектом на андроид в котором использовали PageObject ?

Evgeniy
04.06.2017
17:32:55
могу

Nikita
04.06.2017
17:33:17
может ты еще и проектом с флюентом поделишься?)

Evgeniy
04.06.2017
17:35:43
нет, им делиться не могу, т.к. он под nda =)

Dmitry
04.06.2017
17:35:59
спасибо!

Aleksandr
04.06.2017
17:37:06
а мы выложили проектик свой на гитхаб)

Google

Aleksandr
04.06.2017
17:37:13
там и ведроид и яблоко
и шаблон к ним

Evgeniy
04.06.2017
17:37:34
https://automatetheplanet.com/fluent-page-object-pattern/

Aleksandr
04.06.2017
17:37:35
не знаю правда насколько подойдет

Evgeniy
04.06.2017
17:37:46
здесь все понятно должно быть как готовить fluent page object
@angelooooook https://habrahabr.ru/post/132317/

Nikita
04.06.2017
17:40:24
о, спасибо, ща почитаю