
Slow
18.01.2017
05:27:29
кстати, недавно стал работать с заказчиком, который надух не переносил селениум или его наследника, сказал, из-за этих, залётных, проект постоянно затягивали + когда попросили рассказать, как разворачить, потребовалось до фига народу привлекать. может, мне на эмоциях всё рассказали, но вправду, неужели так много нужно приседаний сделать, что под тот же селениум начать тесты писать?

Anton
18.01.2017
05:29:57
ну селениум же это не тестовый фреймворк - это фреймворк для управления браузерами..
так что приседания понадобятся в любом случае: но за то когда настроил - пиши и радуйся; ну или пиши и мучайся... Смотря как настроил

Slow
18.01.2017
05:31:59
чтобы просто понимали: для тесткомплита:
есть образ винды
запустили установку винды, поставили,
обновились последними обновлениями
установили тесткомплит
птшем тест
а с селениумом не так?

Google

Slow
18.01.2017
05:35:18
и, пообщавшись с разработкой, что когда они при разработке забывали на нужный элемент прописать id, то тестеры вечно ныли, что нужен осмысленный id
id - хорошо, но нахрена осмысленность?

Anton
18.01.2017
05:36:06
селениум - драйвер для управления браузером. Существует на нескольких языках. Для запуска тестов на java нужен раннер (junit, testng), для сборки проека нужен сборщик (ant,maven,gradle), для отчетов нужен фреймворк(allure). Это по сути и плюс и минус опенсорса наверное =)
без id можно найти элемент по тексту, только если в таблице не 10 элементов с текстом "Сумма"

Slow
18.01.2017
05:36:54
моё предложение - id = "o_%guid%" восприняли на ура

Кирилл
18.01.2017
05:37:05

Anton
18.01.2017
05:37:16
а вот когда их 10, тогда приходится изголяться Сумма[5]
у нас на одном проекте были id типа i_autogen164
xpath хорошо но чем сложнее тем дольше работает

Max
18.01.2017
05:39:28

Anton
18.01.2017
05:40:46


Anton
18.01.2017
05:42:03
а с селениумом не так?
селениум требует окружения: мне конечно сложно сравнивать с тест-комплитом - но требуется устаоновить еще как минимум драйвер на тестируемые браузеры; правильно их прописать в запуске тестов; установить какую-то библиотеку с тестами: TestNG, Junit, rspec или что-то другое;
сборщик нужен: maven для java - bundler для руби
и дальше исходя из реализации: пишем "просто тесты" - тогда можно не следовать шаблонам.
Хотим page-object - берем какой-то вариант имплементации шаблона - библиотека ли, гем ли какой-то: по разному в разных ситуациях.
Хотим выводить отчеты в html? То же начинаем придумывать "как и в каком виде": в итоге это конечно сводится "подключи библиотеку, пропиши 15 строк кода и будет счасть" - но перед этим приходится разобраться "как", "зачем" и "почему"
в общем: запустить селениум это скорее "разработка приложения автотестов" - это несколько шире чем просто "писать тесты" - конечно все ИМХО

Google

Egor
18.01.2017
05:43:57

Anton
18.01.2017
05:44:25

Aleksandr
18.01.2017
05:45:00

Anton
18.01.2017
05:48:05
ну или тут недавно обсуждался вопрос: очищать данные после теста; то же вариант выхода :)

John
18.01.2017
05:49:24
а в чём проблема деббага?
Во времени.. т.е. может, как правило бывает, тест падает на последнем из сценариев, а большая часть уже отработала, ты правишь кусок и опять по новой запуск, опять косяк и т.д..

Anton
18.01.2017
05:49:55
вопрос был про id. Идентификаторы это хорошо, но и без них тоже можно (сложнее но можно)

Max
18.01.2017
05:50:28

John
18.01.2017
05:50:30

Faust
18.01.2017
05:54:28
И тогда руками не придется делать


Egor
18.01.2017
05:55:01

Faust
18.01.2017
05:56:00
Из того что написали выше, ни одной проблемы не вижу
Само долго, это пилить конфиг и это разовая операция
Дальше пихаешь в CI и забываешь

Max
18.01.2017
05:58:32

Egor
18.01.2017
06:01:11
А на проверку текста кнопки которую можно получить только выполнив 100500 шагов вы тоже будете писать отдельный тест?

Max
18.01.2017
06:04:58
Конечно, а вы сотню проверок в один тест-кейс пихаете?
К тому же, вполне очевидно, что все зависит от ситуации и любой из этих подходов не является панацеей

Google

Slow
18.01.2017
06:07:43

Max
18.01.2017
06:08:04

Slow
18.01.2017
06:09:20
например, имеем пользователя, статус которого меняется именно от состояний множеств объектов, состояния каждого их которых зависит от каждого состояния объектов, входящих в это множество

Egor
18.01.2017
06:09:22
Конечно, а вы сотню проверок в один тест-кейс пихаете?
В тесте идет проверка только на проверяемый функционал, и она одна. Вероятность смены текста кнопки примерно равна вероятности того что слетит/поменяется id/css класс и прочие на что вы завязались. Следовательно не вижу ни одного серьезного аргумента чтобы заявлять что юзать текст - последнее дело. У меня ни разу не возникало проблем со стабильностью в таких тестах или завышения цены поддержки

Slow
18.01.2017
06:10:12
или просто ТАК глубого никто не заходит тестами. считая, что покрытие базового функционала достаточна, а как до бизнес логики речь доходит - да у нас тут с базовым функционалом не всё впорядке и т.д.
знаю-знаю, таких

John
18.01.2017
06:11:59

Max
18.01.2017
06:13:45
Как я уже сказал это не панацея. Все зависит от ситуации, и если у меня 10 элементов с текстом сумма, то лично я не уверен, что в этом случае буду привязываться к тексту
Вам так удобней, мне так, вот и вся разница

Faust
18.01.2017
06:24:38

Faust
18.01.2017
06:25:13
Локально прогнали один тестик, занимает не много времени

Slow
18.01.2017
07:17:13
немного офисного оффтопа

Anton
18.01.2017
07:19:18

Richard
18.01.2017
07:46:51
офисный оффтоп можно во флудилку )

Slow
18.01.2017
07:47:17
ооукей, но почему бы немного не разбавить серость))

Кирилл
18.01.2017
07:53:26
Если UI на ангулярчике и он перепиливается - айдишники наше все. Иначе боль
в Бекенд тестировании боли нет. Просто нужно использовать как на картинке - 2-х уровневую реализацию, подхаченную для своего проекта.

Google

Кирилл
18.01.2017
08:01:00
вообще всегда в автотестах лучше максимально игнорировать функционал который непосредственно не проверяется тестом
Например зачем переходить в раздел по кнопке, если можно по урле)

Slow
18.01.2017
08:02:09

Кирилл
18.01.2017
08:02:24
А если урла не статична - использовать кнопку, но напрямую. Не определяя икспасами все елементы страницы)

Slow
18.01.2017
08:06:22
имеет ввиду, что нажимая на кнопку - выполняться некий JS, результат выполнения которого, в БД, появляется запись, например, с какой страницы и куда собираемся перейти, в свою очередь эта запись меняет состояния объекта, от состояния которого зависит другой и т.д. что в конечном итоге, все вот эти изменения, влияют на тот самый объект, который привёл к ошибке

Кирилл
18.01.2017
08:07:25
выполняй JS напрямую/создавай сущность уже с нужными параметрами в БД

Admin
ERROR: S client not available

Кирилл
18.01.2017
08:08:07
Но, да, не всегда удается упростить. Есть болезненный функционал всегда. Но почти всегда можно выкрутится.

Slow
18.01.2017
08:08:12
по вашим словам, ну жно будет сидеть ещё и высчитывать и анализировать, а чё такого поместить в БД, чтобы провести быстренько тестирование объекта, который упал в ошибку?

Кирилл
18.01.2017
08:08:25
Эм
ну, у тебя ж автотест
определяешь изначальную сущность
выполняешь действия через UI
смотришь изменения в БД

Slow
18.01.2017
08:09:08
автотест для того и создан, чтобы за меня всё выполнять

Кирилл
18.01.2017
08:09:19
ну дык

Slow
18.01.2017
08:09:23
а не чтобы я что-то за него выполнял

Кирилл
18.01.2017
08:09:44
ты изменением БД через автотест перепрыгнешь UI с JS, если он так часто меняется

Slow
18.01.2017
08:10:54

Google

Slow
18.01.2017
08:11:25
проще - перезапустить
я автоматизатор простой, Вижу багу в автотесте - перезапускаю, с установленными бряками.

Кирилл
18.01.2017
08:12:24
lol

Дмитрий
18.01.2017
08:12:24
В автоматизацию попасть можно джуном, без опыта ручного или идти через ручника нужно?

Кирилл
18.01.2017
08:13:07
Идеальный тест - стабильный, тестирующий исключительно целевой функционал.

Slow
18.01.2017
08:13:31

Кирилл
18.01.2017
08:13:51
Не кнопки, поля, ссылки и прочую лобуду по пути к цели. Я говорю как можно попытаться стабилизировать тесты и избежать их частого фикса

Дмитрий
18.01.2017
08:15:08
Спасибо

Slow
18.01.2017
08:16:38
часто вот так происходит при запуске автотестов на opensource движках
вроде, всё хорошо-при хорошо, как надо, а потом кааак...полетит

Кирилл
18.01.2017
08:22:05
Простой пример. Два теста:
1. Проверка возможности создания пользователя через форму регистрации.
2. Проверка что созданный пользователь сохраняется и им можно авторизироваться.
Есть два частых варианта реализации.
1. И в первом и во втором тесте пользователь регистрируется через кнопочку "Регистрация".
2. Первый тест регистрирует пользователя по UI кнопке. Второй тест делает прямой POST запрос регистрации, а потом по кнопочке "Логин" авторизуется.
У тебя сломалась кнопка "Регистрация". В каком случае ты сможешь проверить максимум функционала несмотря на баг?
Что приведет к экономии времени после фикса? Ведь вдруг сломана и кнопочка "логин"?
И если сломана - програмисты сразу смогут фиксить обе ошибки

Slow
18.01.2017
08:24:26
А как пользователь по вашему может зарегистрироваться на сайте, тоже через POST?)

Кирилл
18.01.2017
08:24:29
а если серьезный релиз, багов штук пять, а все ждут пока пофиксится кнопочка и не знают о них. Ведь тесты валятся
да
нажмите Ф12 и посмотрите что происходить после клика на "Регистрация"