testplane icon indicating copy to clipboard operation
testplane copied to clipboard

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

Open dlukanin opened this issue 1 year ago • 5 comments

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

dlukanin avatar Jun 26 '24 07:06 dlukanin

Привет!

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

KuznetsovRoman avatar Jun 26 '24 09:06 KuznetsovRoman

Привет!

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

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

dlukanin avatar Jun 26 '24 10:06 dlukanin

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

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

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

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

KuznetsovRoman avatar Jun 26 '24 10:06 KuznetsovRoman

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

Для компонентного тестирования у нас есть вот такое решение: 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 то, что я описал выше. Если это сложно/невозможно/непопулярный юзкейс, то в целом тоже ок.

dlukanin avatar Jun 26 '24 11:06 dlukanin

По этому вопросу есть сдвиги — выпустили в экспериментальном режиме standalone API для браузеров.

В экспериментальном, потому что пока что могут быть изменения API/какие-то доработки. В обозримом будущем должно стать stable.

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

shadowusr avatar May 18 '25 20:05 shadowusr