[HN Gopher] Playwright-test - cross-browser end-to-end test suit... ___________________________________________________________________ Playwright-test - cross-browser end-to-end test suite with Playwright Author : roschdal Score : 53 points Date : 2021-04-05 07:53 UTC (1 days ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | onion2k wrote: | The project I work on switched from Puppeteer to Playwright in | order to increase our browser coverage for visual output tests | about a year ago and we've been very happy with it. | troglodynellc wrote: | Playwright is a breath of fresh air next to selenium. And I | maintain the perl selenium client and have written thousands of | selenium tests! | | So much so that I wrote what may? be the first third-party client | for it: https://metacpan.org/pod/Playwright | | Here's my writeup on why I like playwright versus selenium: | https://troglodyne.net/posts/1617057517 | pydry wrote: | That's a really good explanation. It's funny that they don't | mention or allude to any of this in their page on why | playwright: https://playwright.dev/docs/why-playwright/ | troglodynellc wrote: | That doesn't really surprise me to be honest. | | Most of this is invisible to end-users of selenium, as it's | just a hammer they pick up; the struggles of the maintainers | is not (nor should it be) something they have to worry about. | | Nevertheless, they probably could get some hay mentioning | that their API implements a _significant_ amount more | functionality versus every other cross-browser testing | framework. | | That said, they really don't have to, the work really stands | by itself. | pydry wrote: | It definitely manifests in ways I can see. I struggled for | years as an end user of selenium with backwards | compatibility issues, bugs and weird browser quirks. | | It's pretty apparent that it requires an awful lot of | maintenance to keep up with the browsers, so if this really | does reduce the workload on them then that ought be | noticeable on my end with fewer bugs, quirks and backwards | compatibility issues. This is more exciting to me than all | of the other features (I'm a bit dubious of the ability to | detect if a page has really 'loaded', for instance). | troglodynellc wrote: | In my experience, playwright is a lot, lot better on this | than selenium. | | You can even _choose_ different events to wait for! | | That said, there's no accounting for developers who think | FOUCs are normal, etc and generally make your life as a | tester and end user difficult. | chatmasta wrote: | Playwright is awesome, it's great to see more tooling evolving | around it. I evaluated Playwright vs Cypress and Playwright won | by a lot. The WebKit support is a big plus. But mostly, Cypress | was way too opinionated / prescriptive for my taste, with some | deal-breaking trade offs (which, to its maintainers' credit, they | openly document) [0]. | | Playwright feels much more like you're simply driving a browser | because you _are_ -- it gets out of your way like any good tool | should, so you can debug your tests instead of your browser | automation toolkit. The trade-off of Playwright is that meant, at | least early on, that it wasn't "batteries included" and the | ecosystem around it is only just now starting to mature. This is | a great time to start using Playwright IMO. | | One gripe with Playwright is that you lose the ability to easily | deploy your tests to services like Browserstack where you can do | true multi-device testing. For that you need to use Selenium, or | (recently?) Cypress. Because of the nature of Playwright only | targeting specific browser engines, it seems unlikely that | Browserstack would ever fully support it. | | But there is probably a place for both, with Playwright closer to | the bottom of the pyramid and Selenium / Browserstack toward the | top for only the most critical e2e acceptance tests. You could | also write your tests in such a way that they could mostly run on | Selenium with just a few changes to how you orchestrate them, | although then you might end up chasing the "lowest common | denominator" of what's available in either paradigm. | | As an aside, I'd love to hear the story of how the Puppeteer team | left Google for Microsoft while taking their toys with them. I | wonder if there is some drama there? :) | | [0] https://docs.cypress.io/guides/references/trade- | offs#Permane... | mwkurian wrote: | How does puppeteer compare with Playwright? | troglodynellc wrote: | Puppeteer does a few more things, but only works for chrome. | | Both of them are essentially wrapping devtools protocols. | AFAIK, much of the playwright approach was guided by trying to | Hew as closely to the puppeteer approach, but cross-platform. | Both the APIs are very similar. | SureshG wrote: | Does playwright work out of the box in CI systems (github | actions) or we have to explicitly install the browser | binaries? I am planning to use playwright-java | (https://playwright.dev/java/docs/intro) | pavelfeldman wrote: | Playwright will install the browsers seamlessly, also you | can opt into using the browsers that are already installed | on CI. See https://playwright.dev/docs/ci and | https://playwright.dev/docs/browsers for more details. | niklaslogren wrote: | We are using Cypress at my workplace and we're quite happy with | it. It also has endpoint mocking, mobile emulation etc. | | Out of curiosity, does anyone know of any advantages of | Playwright when compared to Cypress? | troglodynellc wrote: | Cypress appears to have more features dedicated specifically to | making testing easier, such as a user interface and various | debugging additions and integrations into various other tools. | | Playwright is just an API for controlling the browser, and | appears to be far more powerful in that regard. | | Compare the api documentation, and it's not even close: | https://docs.cypress.io/api/table-of-contents | | https://playwright.dev/docs/api/class-playwright | holler wrote: | It looks like Cypress added Firefox & Edge support last year | but initially it was just Chrome. | | Playwright also has a python version | (https://github.com/microsoft/playwright-python) | | And I just discovered that they now have a real nifty | debugger you can use to inspect/step-through tests as they | run (https://playwright.dev/docs/next/debug/#playwright- | inspector) | loulouxiv wrote: | They also have a code generator that can record your | actions and turn them into scripts | gvkhna wrote: | If cypress works for you that's great, playwright doesn't have | all of the same tools but it does excel at cross browser | testing. It runs safari, Firefox, and chrome. | | We're working on plugging in playwright into a cloud service | for visual testing @superadmin.so, running multiple browsers in | Linux can be pretty hairy to setup. | ncrmro wrote: | Been using it at the Fortune 500 and some other projects I work | on and folio fixtures (the test runner under playwright-test) is | really nice can pass POM, db connection, JWT token getter | directly into your test as test function parameters. Test look | like jest. Just wish Webstorm/pycharm would get built in | integration | holler wrote: | Oh yes! Really excited to see this. I am using ms playwright for | e2e tests for https://sqwok.im and have been very pleased with | it. I've evangelized it whenever webdriver/selenium comes up in | conversation as I think it's a huge improvement - clean api, | multiple browser support, just "works". | | The one thing that was missing was a purpose-made test runner. | I'm using mocha currently, and while it works fine, there isn't a | built-in way to e.g. run the test against multiple browsers w/o | ugly for loops/before statements (that I'm aware of). It looks | like this defaults to running against all browsers so you don't | even have to think about it. The screenshot assertions also look | nice! | | Very cool! Excited to try this out. | miralize wrote: | Really interested as to why its using Jest-like assertions rather | than just Jest itself? | | It is possible, for instance, to extend the runner with an extra | set of matcher that are out there & available to Jest? ___________________________________________________________________ (page generated 2021-04-06 23:00 UTC)