gemini-testing / testplane

Testplane (ex-hermione) browser test runner based on mocha and wdio
https://testplane.io
MIT License
678 stars 62 forks source link

Вытащить наружу методы по работе с браузером #959

Open dlukanin opened 2 weeks ago

dlukanin commented 2 weeks ago

Contribution

Describe the user story

Привет!

Сделаю референс к playwright. Он может использоваться не просто как высокоуровневый test runner, т.к имеет более низкоуровневое api для инстанцирования браузера, создания контекста, страницы, манипулирования контентом страницы, etc.

https://playwright.dev/docs/api/class-browsertype https://playwright.dev/docs/api/class-browsercontext https://playwright.dev/docs/api/class-page

Это позволяет использовать playwright в не совсем типичных кейсах, когда, например, нужно инстанцировать браузер, подключить его по cdp к удаленной сессии, монтировать в него html/js/css и далее делать различные ассерты.

Хотелось бы иметь схожее api у testplane.

Describe the solution you'd like

В целом api, схожее с тем, что я описал выше, вполне подойдет.

Describe the drawbacks of your solution

No response

Describe alternatives you've considered

No response

KuznetsovRoman commented 2 weeks ago

Привет!

Хотелось бы сначала уточнить: какие у этого юзкейсы? Для чего нужна такая возможность?

dlukanin commented 2 weeks ago

Привет!

Хотелось бы сначала уточнить: какие у этого юзкейсы? Для чего нужна такая возможность?

Привет. Например это необходимо для того, чтобы протестировать поведение и представление компонентов. В jsdom получится протестировать только поведение. В полноценных е2е тестах сложно эмулировать большое число разных вводных для компонента.

KuznetsovRoman commented 2 weeks ago

Привет. Например это необходимо для того, чтобы протестировать поведение и представление компонентов.

Для компонентного тестирования у нас есть вот такое решение: https://github.com/gemini-testing/testplane/blob/master/docs/component-testing.md

Посмотреть примеры можно вот тут: https://github.com/gemini-testing/testplane/tree/master/examples/component-testing

Поддержка пока экспериментальная, но мы планируем довести это до stable.

dlukanin commented 2 weeks ago

Привет. Например это необходимо для того, чтобы протестировать поведение и представление компонентов.

Для компонентного тестирования у нас есть вот такое решение: https://github.com/gemini-testing/testplane/blob/master/docs/component-testing.md

Посмотреть примеры можно вот тут: https://github.com/gemini-testing/testplane/tree/master/examples/component-testing

Поддержка пока экспериментальная, но мы планируем довести это до stable.

Это окей. Но у нас уже есть решение (оно в целом чуть более сложное, чем обычное компонентное тестирование), которое работает и где в качестве средства поднятия браузера, коннекта по cdp и т.д. используется playwright. Была идея не плодить сущности и отказаться от playwright. Для этого нам бы хотелось видеть в testplane то, что я описал выше. Если это сложно/невозможно/непопулярный юзкейс, то в целом тоже ок.