Comments (22)
at first, it's retries. Failed test will be retried in new browser session. It minimizes the count of external dependencies errors (for example, unstable grid)
from testplane.
@tarmolov
Using just webdriver.io
you should write in tests all that stuff about browser initialization (desiredCapabilities, etc.). So tell me please how you suppose to launch tests in different browsers in parallel via mocha-parallel-tests
+ webdriver.io
? Same tests. In different browsers.
from testplane.
@sipayRT mocha-parallel-tests
has retry option. Doesn't it work?
@j0tunn what if do I write only an a couple of helpers for the initialization and desiredCapabilities? It seems that mocha-parallel-tests + webdriver.io
can run tests in parallel only in a specific browser but no different browsers. Running tests in parallel not only in one browsers but in different ones is a good point!
Each a new user of hermione
can ask us why it's better than just webdriver.io
or mocha-parallel-tests + webdriver.io
. If we add some refs in our Why should you choose hermione?
, it'll clear up a lot of questions.
@sipayRT @j0tunn what do you think? Could you do that?
from testplane.
@tarmolov tnx, I'll try to explain it in our docs.
from testplane.
fyi @1999
from testplane.
Кажется прошло полгода, да?
Seems like a huge number of time has passed. My colleagues are using either mocha-parallel-tests + webdriver.io or wdio + mocha-parallel-tests. Feeling okay. Probably ava is also a good choice here.
from testplane.
@1999 They should continue to use mocha-parallel-tests
if its fits their needs.
I think hermione
plays at its best on the huge tests codebase with a lot of browsers on several platforms to run tests at. Like in serp/web4
project.
from testplane.
Right now I'm pretty sure that there's no any reason to use hermione over webdriver.io + ava
or webdriver.io + mocha-parallel-tests
at all. hermione
for me is like a huge library-which-does-everything while mocha-parallel-tests
is just a small wrapper on top of mocha
which allows parallel suites + --max-parallel <num>
and --retry <num>
.
Same tests. In different browsers.
If your test is doing something like this:
it('should set like for music track and add it to favorities', async () => {
await browser.url(...);
await browser.doesNotExist('.music-track[data-id="...."]');
await browser.click('.music-track__like-icon');
await browser.waitForVisible('music-track__liked');
await browser.url(favoritiesUrl);
await browser.exists('.music-track[data-id="...."]');
})
Running this test in different browsers in parallel is bad.
But if you still want it, multiremote is available.
from testplane.
Running this test in different browsers in parallel is bad.
@1999 Почему?
But if you still want it, multiremote is available.
Из документации Multiremote.
Since more than one browser executes the command we also receive more than one result.
...
Multiremote is not meant to execute all your tests in parallel. It should help you to coordinate more than one browser for sophisticated integration tests.
Эмм... Даже не знаю. По-моему, оно совсем про другое.
Дима, у меня несколько вопросов:
- Сколько тестов (сьютов / сценариев) в вашем проекте?
- В каких браузерах эти тесты запускаются?
- За сколько минут ваши тесты проходят?
- Запускаете ли вы все тесты на каждый pull request или запускаете их селективно в зависимости от изменений в файлах? Если селективно, то по каким правилам?
- Бывает ли, что ваши тесты падают и ретраятся? Как часто?
- Легко ли вам удаётся находить причину падения теста?
- Вас текущая инфраструктура для запуска тестов устраивает на 100%, или хочется что-то изменить?
@tarmolov Саша, буду благодарен, если тоже сможешь ответить на эти ☝️ вопросы.
PS: К слову, webdriver.io очень плохо написан; вносить туда изменения очень сложно; даже мейнтейнер боится вносить в ядро мало-мальски сложные изменения, которые мы присылаем в PR.
from testplane.
Я выше ведь показал пример, когда запуск тестов в нескольких браузерах сразу - не вариант. multiremote внутри запускает все тесты параллельно, по крайней мере команда за командой.
Про webdriver.io плохо написанный - не буду спорить, мне не очень понятен его код, особенно сейчас. Но когда я смотрю на selenium-webdriver, у меня глаза вытекают. Hermione вроде бы использует внутри именно webdriver.io и заменить его чем-то не особенно получится в ближайшее время, верно?
Про твои вопросы не очень корректно, Серёж. У вас людей больше, есть выделенные люди на инфраструктуру, отсюда и больше тестов. И тем не менее я до сих пор не вижу причину использовать ваш комбайн, а не чистый webdriver.io (например эта issue все еще открыта). Более того, у нас автотесты появились во вменяемом виде около года назад только моими силами: я начал обучать двух наших ручных тестировщиков описывать регрессию в формате тестов на JavaScript + попутно начал вводить интеграционные тесты через Селениум на каждый пулреквест в КиноПоиске.
Сколько тестов (сьютов / сценариев) в вашем проекте?
Если говорить про регрессию, то выйдет около 300 тестов на фронтенд и бэкенд. В каждом тесте в среднем около 10 тесткейсов. В Телепрограмме около 120 с 20 тесткейсами. Сейчас начинаем этот же путь в Музыке.
В каких браузерах эти тесты запускаются?
Только десктопные Хромиум и Firefox, сейчас начинаем смотреть в сторону мобильных браузеров.
За сколько минут ваши тесты проходят?
В среднем от 3 до 10 минут
Бывает ли, что ваши тесты падают и ретраятся? Как часто?
Бывает, часто. Ретраи в mocha-parallel-tests в 99% решают проблему.
Легко ли вам удаётся находить причину падения теста?
Да
Вас текущая инфраструктура для запуска тестов устраивает на 100%, или хочется что-то изменить?
Всегда хочется чего-то лучше и мы постепенно все это внедряем. Каких-то постоянных болей у нас нет.
from testplane.
Мы только начали писать тесты. Пока не могу ответить на твои вопросы. Через полгодика будет видно :)
from testplane.
например эта issue все еще открыта
а какой смысл его закрывать, если здесь ведется беседа? В доке я отразил все, что посчитал нужным для выбора инструмента. Добавлять в доку сравнения с разными инструментами как-то странно - прийдется постоянно мониторить актуальность этого сравнения. А потом прийдут еще 10 человек и попросят добавить еще сравнение и с другими инструментами. В итоге получится не дока, а сплошное сравнение
Ретраи в mocha-parallel-tests в 99% решают проблему.
видимо, это только из-за того, что тесты гоняются в FF и Chrome (в стабильных браузерах). Если в mocha-parallel-test
ничего не поменялось, то тесты перезапускаются в той же сессии, поэтому эит ретраи никак не помогут, если запускать тесты, например, в ie11 или в нагруженных андроидах
from testplane.
Да нет, почему же. В новых сессиях все запускается.
from testplane.
@1999 Дима, спасибо за ответы!
Скажи ещё, пожалуйста, используете ли вы WebdriverCSS для тестирования вёрстки скриншотами? Или вы Gemini используете? Или ничего не используете для этого?
И тем не менее я до сих пор не вижу причину использовать ваш комбайн, а не чистый webdriver.io
За сколько минут ваши тесты проходят?
В среднем от 3 до 10 минут
С Hermione ваши тесты могут проходить за 1-2 минуты за счёт запуска в одном браузере в несколько потоков. Неплохая экономия времени разработчика?
Всегда хочется чего-то лучше и мы постепенно все это внедряем. Каких-то постоянных болей у нас нет.
У вас очень ненагруженная инфраструктура тестирования. Нет тяжёлых/проблемных браузеров (Android + ChromeMobile, IE 9-11). В таком случае действительно особо ничего не нужно наворачивать, если скорость прогона тестов устраивает.
from testplane.
Мы только начали писать тесты. Пока не могу ответить на твои вопросы. Через полгодика будет видно :)
@tarmolov Будет интересно узнать про ваш опыт
from testplane.
С Hermione ваши тесты могут проходить за 1-2 минуты за счёт запуска в одном браузере в несколько потоков
Звучит немного.. странно :) вы запускаете их в разных вкладках? Если да, это можно было бы вынести в отдельную библиотеку, которую можно было бы подключать и в простой webdriver.io, и в selenium-webdriver, и в hermione.
Для тестирования верстки в Телепрограмме используем WebdriverCSS. Гемини щупали, но впечатления не совпали с ожиданиями.
Про браузеры ты абсолютно прав.
from testplane.
Звучит немного.. странно :) вы запускаете их в разных вкладках?
Мы их запускаем на разных машинах в Selenium Grid параллельно.
Если да, это можно было бы вынести в отдельную библиотеку, которую можно было бы подключать и в простой webdriver.io, и в selenium-webdriver, и в hermione.
Нет, это не легко отчуждаемая функциональность, встраиваемая куда угодно.
Для тестирования верстки в Телепрограмме используем WebdriverCSS. Гемини щупали, но впечатления не совпали с ожиданиями.
А вот тут интересны подробности. Какие у вас были ожидания и какие впечатления с ними не совпали? И как давно вы пробовали Gemini?
На сколько я знаю, в WebdriverCSS попиксельное сравнение скроншотов. Оно у вас ни разу не срабатывало ложно? Проблем с мигающей кареткой, например, нет? Или со сглаживанием закруглённых углов, шрифтов и SVG?
from testplane.
Мы их запускаем на разных машинах в Selenium Grid параллельно.
Ну, у нас та же история. Тут разницы никакой нет. А вот про табики идея мне нравится к слову // cc @k03mad
А вот тут интересны подробности. Какие у вас были ожидания и какие впечатления с ними не совпали? И как давно вы пробовали Gemini?
На сколько я знаю, в WebdriverCSS попиксельное сравнение скроншотов. Оно у вас ни разу не срабатывало ложно? Проблем с мигающей кареткой, например, нет? Или со сглаживанием закруглённых углов, шрифтов и SVG?
cc @ixax @siauk ребята, поделитесь опытом про gemini/webdrivercss?
from testplane.
А вот про табики идея мне нравится к слову
просто напомню, что в неактивных табах Хром очень значительно замедляет js.
from testplane.
Не особо вижу смысла в табах, мы с mocha-parallel-tests запускаем по отдельному Хрому на каждый тест. Квота позволяет.
from testplane.
@vitalets ты возвращаешь меня на землю :) спасибо!
@k03mad обрати внимание на коммент Виталика
from testplane.
There are two more tools I found:
from testplane.
Related Issues (20)
- Не работает ховер, если страницу нужно просколлить HOT 8
- Перехватить запросы на внешние ресурсы? HOT 2
- Как сохранить отчет от Гермионы UI версию? HOT 2
- Подключение @wdio/devtools-service HOT 4
- Impossible to use `hermione` with yarn pnp mode HOT 7
- Некорректный тип browser.executionContext.hermioneCtx HOT 2
- Option resetCursor moves the cursor to the center of the screen HOT 2
- Methods of the object stored in hermione.ctx are not passed to the test HOT 9
- Некорректный тип функции `it(` HOT 4
- v9.0.0: Breaking changes
- Use Chrome's new Headless mode HOT 3
- Отсутствуют типы для метода moveCursorTo HOT 1
- Тесты на типы HOT 2
- Perform preliminary research and develop a solution for automatic API reference generation or typings
- moveCursorTo не идентичен moveTo в hermione 7 (move target out of bounds) HOT 5
- hermione.ctx нельзя типизировать HOT 4
- Not clear how to create wrapper and fail test with browser.mock HOT 2
- Add a handy way to screenshot the viewport
- В тесте недоступно поле browserId HOT 5
- Пропала типизация describe/it и т.п. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from testplane.