Revision 442: Next Level-End-to-End-Testing

Published: Sept. 15, 2020, 7 a.m.

Als sich abzeichnete, dass uns kein gutes Thema einfallen w\xfcrde, konsultierten\nwir Twitter, um zu fragen, ob jemand dort Lust und Zeit hat, \xfcber ein\nmitgebrachtes Thema zu quatschen. Und wir hatten Gl\xfcck! Marvin Hagemeister,\nwelcher letztes Jahr schon einmal bei uns zum Thema Preact und Code-Golfing in\nder Sendung war und der gerade mit seinen Mitstreitern an Preact 11 arbeitet,\nschlug vor, mit uns \xfcber End-to-End-Testing zu reden. Nachdem wir uns letztens\nmit Frontend-Unit-Testing besch\xe4ftigt hatten ein wunderbar passendes Thema. Also\ngriffen wir zu! :)\n\n\nSCHAUNOTIZEN\n\n[00:00:32] \u201eNEXT LEVEL\u201c END-TO-END-TESTING\n\nNat\xfcrlich war Preact der initiale Grund f\xfcr Marvin, sich mit\nEnd-to-End-Testing-Frameworks zu besch\xe4ftigen, denn Marvin suchte nach einem\nTool, das das von Preact erzeugte DOM extrahieren und gegen einen Snapshot\ntesten konnte. Dar\xfcberhinaus arbeitet Marvin zur Zeit bei der Firma, die hinter\nden Tonie Boxen steckt. Und auch dort war man auf der Suche nach einem\nTesting-Framework, das den gesamten Flow von Inbetriebnahme einer neuen Tonie\nBox, \xfcber das Flashen per Web-Oberfl\xe4che hin zum Kauf und Teilen von H\xf6rb\xfcchern\nabtesten konnte. Karma mit dem darunter befindlichen WebDriver war f\xfcr das\nPreact-Szenario nicht geeignet, weil es an bestimmten Stellen durch den\ngenutzten Stack limitiert wird. An Jest wiederum st\xf6rt, dass dieses keine echte\nBrowser zum Testen nutzt, sondern nur ein simuliertes DOM (jsdom), das aber\nmanche Dinge, wie zum Beispiel Intersection Observer nicht implementiert. Und\nwenn man Jest mit Puppeteer verkn\xfcpft, dann kann man keine zwei parallelen\nBrowser-Instanzen steuern. Was macht man also, wenn man nichts vern\xfcnftiges\nfindet? Genau! Sein eigenes Testing-Framework programmieren: pentf.\n\n\nKEINE SCHAUNOTIZEN\n\nREPLAY\n\n\u201eA new debugger for recording and replaying the web.\u201c\n\nPLAYWRIGHT\n\n\u201ePlaywright is a Node.js library to automate Chromium, Firefox and WebKit with a\nsingle API.\u201c