{"id":4204,"date":"2021-03-29T07:00:27","date_gmt":"2021-03-29T06:00:27","guid":{"rendered":"https:\/\/www.diogonunes.com\/blog\/?p=4204"},"modified":"2021-11-19T10:38:58","modified_gmt":"2021-11-19T10:38:58","slug":"framework-review-playwright","status":"publish","type":"post","link":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/","title":{"rendered":"Framework review: Playwright"},"content":{"rendered":"<figure id=\"attachment_4207\" aria-describedby=\"caption-attachment-4207\" style=\"width: 580px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?resize=580%2C374&#038;ssl=1\" alt=\"\" width=\"580\" height=\"374\" class=\"size-large wp-image-4207\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?resize=1024%2C660&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?resize=400%2C258&amp;ssl=1 400w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?resize=768%2C495&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?resize=1536%2C990&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?resize=1200%2C773&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?w=1920&amp;ssl=1 1920w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?w=1740&amp;ssl=1 1740w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><figcaption id=\"caption-attachment-4207\" class=\"wp-caption-text\">Photo by <a href=\"https:\/\/unsplash.com\/@fatihkilic?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Fatih K\u0131l\u0131\u00e7<\/a> on <a href=\"\/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a><br \/><\/figcaption><\/figure>\n<blockquote>\n<p>Playwright enables end-to-end testing. Test modern single page apps, across all modern browsers, using in your preferred language (JS, TS, Java, C#, Python).<\/p>\n<p>\u2014 <a href=\"https:\/\/playwright.dev\/\">Official website<\/a><\/p>\n<\/blockquote>\n<p><!--more--><\/p>\n<h3>Code<\/h3>\n<p>Example of automation at <a href=\"https:\/\/github.com\/dialex\/start-testing\/tree\/main\/code\/framework\/playwright\">GitHub<\/a>.<\/p>\n<h3>Use cases \ud83e\udd48<\/h3>\n<p>Automate end-to-end (E2E) tests using the UI. It also supports mocks.<\/p>\n<h3>Learning curve \ud83e\udd48<\/h3>\n<p>Most test frameworks behave similarly, so for me it&#8217;s just a matter of learning their syntax. The official doc was not sufficient to get started, so while I was coding I had the reference API by my side. When I was not sure how to do something, I simply enabled the &#8220;record mode&#8221; and let Playwright generate the test code of my actions.<\/p>\n<h3>Language \ud83e\udd47<\/h3>\n<p>Lots of flexibility, as you can choose from five languages to write your tests (personally, I picked JavaScript and VS Code). Since the API is very low level, more than basic knowledge is required to code and understand the tests.<\/p>\n<h3>Ecosystem \ud83d\ude2d<\/h3>\n<p>My IDE autocomplete was limited. You can debug your test code using <a href=\"https:\/\/code.visualstudio.com\/docs\/nodejs\/nodejs-debugging#_javascript-debug-terminal\">breakpoints in VS Code<\/a>\u2026 but you need multiple watches, as you can&#8217;t evaluate expressions. Part of Playwright&#8217;s pitch is cross-browser testing. Indeed it&#8217;s super easy to enable it but super flaky to use. <a href=\"https:\/\/github.com\/playwright-community\/jest-playwright\/issues\/614\">In my case<\/a>, Firefox was (mostly) fine, Chrome returned page errors (which I had to ignore) and Safari was 3x slower (when it didn&#8217;t fail straight away) \u2013 both issues were false positives.<\/p>\n<h3>Readability \ud83d\ude2d<\/h3>\n<p>Verbose and an eyesore. A simple assertion takes <a href=\"https:\/\/github.com\/playwright-community\/expect-playwright#why-do-i-need-it\">three lines<\/a> &#8212; thankfully <a href=\"https:\/\/github.com\/playwright-community\/expect-playwright#api-documentation\">expect-playwright<\/a> reduces it to one. Something concise and intuitive in Cypress (<code>page.get.first<\/code>) is obscure in Playwright (<code>page.$$<\/code>). The test code reads like back-end code, with <code>async<\/code> and <code>await<\/code> keywords on every line. Sometimes you need to explicitly <a href=\"https:\/\/playwright.dev\/docs\/api\/class-page#page-wait-for-navigation\">wait for page loads<\/a> (are we back to the Selenium days?).<\/p>\n<h3>Extensibility \ud83e\udd49<\/h3>\n<p>You can run tests with its own runner, <a href=\"https:\/\/playwright.dev\/docs\/intro#installation\">Playwright Test<\/a>, or you can use <a href=\"https:\/\/github.com\/playwright-community\/jest-playwright\">Jest<\/a> &#8212; developers will be familiar with its syntax and the test results report in the CLI is a lot better. It supports the <a href=\"https:\/\/playwright.dev\/docs\/pom\">PageObject Model<\/a>.<\/p>\n<h3>Maintainability \ud83e\udd49<\/h3>\n<p>Hard to debug. When the <code>toHaveText()<\/code> assertion fails, it outputs the whole page HTML in the error log, which is a nightmare to review. <a href=\"https:\/\/blog.checklyhq.com\/cypress-vs-selenium-vs-playwright-vs-puppeteer-speed-comparison\/\">Slower than expected<\/a>, if the tests ran in parallel I didn&#8217;t even notice it.<\/p>\n<h3>Documentation \ud83e\udd48<\/h3>\n<p>I started with the <a href=\"https:\/\/playwright.dev\/docs\/intro\">official doc<\/a> and an <a href=\"https:\/\/testautomationu.applitools.com\/js-playwright-tutorial\">online course<\/a>. It&#8217;s the typical, &#8220;it works and looks fine&#8221; until you try a real world scenario. I had to follow <a href=\"https:\/\/applitools.com\/blog\/playing-with-playwright\/\">community<\/a> <a href=\"https:\/\/www.eliostruyf.com\/utilize-playwright-jest-cross-browser-e2e-test-solutions\/\">guides<\/a> to unblock myself. There&#8217;s also some <a href=\"https:\/\/try.playwright.tech\/\">official tutorials<\/a>. On the bright side, the doc is complete and easy to search.<\/p>\n<h3>VERDICT: 1\/5<\/h3>\n<p>I had a bad time and, given the effort, I was not proud of what I achieved.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Playwright enables end-to-end testing. Test modern single page apps, across all modern browsers, using in your preferred language (JS, TS, Java, C#, Python). \u2014 Official website<\/p>\n","protected":false},"author":1,"featured_media":4207,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[85,22,55],"class_list":["post-4204","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-playwright","tag-review","tag-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Framework review: Playwright - The Geeky Gecko<\/title>\n<meta name=\"description\" content=\"Playwright enables end-to-end testing of modern single page apps, across all modern browsers. This is my review: it&#039;s a 1 out of 5.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Framework review: Playwright - The Geeky Gecko\" \/>\n<meta property=\"og:description\" content=\"Playwright enables end-to-end testing of modern single page apps, across all modern browsers. This is my review: it&#039;s a 1 out of 5.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/\" \/>\n<meta property=\"og:site_name\" content=\"The Geeky Gecko\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-29T06:00:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-19T10:38:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1237\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Diogo Nunes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:site\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diogo Nunes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/\"},\"author\":{\"name\":\"Diogo Nunes\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"headline\":\"Framework review: Playwright\",\"datePublished\":\"2021-03-29T06:00:27+00:00\",\"dateModified\":\"2021-11-19T10:38:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/\"},\"wordCount\":460,\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1\",\"keywords\":[\"playwright\",\"review\",\"testing\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/\",\"name\":\"Framework review: Playwright - The Geeky Gecko\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1\",\"datePublished\":\"2021-03-29T06:00:27+00:00\",\"dateModified\":\"2021-11-19T10:38:58+00:00\",\"description\":\"Playwright enables end-to-end testing of modern single page apps, across all modern browsers. This is my review: it's a 1 out of 5.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1\",\"width\":1920,\"height\":1237},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.diogonunes.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Framework review: Playwright\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/\",\"name\":\"The Geeky Gecko\",\"description\":\"The Geeky Gecko\",\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\",\"name\":\"Diogo Nunes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"width\":799,\"height\":799,\"caption\":\"Diogo Nunes\"},\"logo\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.diogonunes.com\",\"https:\/\/x.com\/dialexnunes\"],\"url\":\"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Framework review: Playwright - The Geeky Gecko","description":"Playwright enables end-to-end testing of modern single page apps, across all modern browsers. This is my review: it's a 1 out of 5.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/","og_locale":"en_US","og_type":"article","og_title":"Framework review: Playwright - The Geeky Gecko","og_description":"Playwright enables end-to-end testing of modern single page apps, across all modern browsers. This is my review: it's a 1 out of 5.","og_url":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/","og_site_name":"The Geeky Gecko","article_published_time":"2021-03-29T06:00:27+00:00","article_modified_time":"2021-11-19T10:38:58+00:00","og_image":[{"width":1920,"height":1237,"url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1","type":"image\/jpeg"}],"author":"Diogo Nunes","twitter_card":"summary_large_image","twitter_creator":"@dialexnunes","twitter_site":"@dialexnunes","twitter_misc":{"Written by":"Diogo Nunes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#article","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/"},"author":{"name":"Diogo Nunes","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"headline":"Framework review: Playwright","datePublished":"2021-03-29T06:00:27+00:00","dateModified":"2021-11-19T10:38:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/"},"wordCount":460,"publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1","keywords":["playwright","review","testing"],"articleSection":["Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/","url":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/","name":"Framework review: Playwright - The Geeky Gecko","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#primaryimage"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1","datePublished":"2021-03-29T06:00:27+00:00","dateModified":"2021-11-19T10:38:58+00:00","description":"Playwright enables end-to-end testing of modern single page apps, across all modern browsers. This is my review: it's a 1 out of 5.","breadcrumb":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#primaryimage","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1","width":1920,"height":1237},{"@type":"BreadcrumbList","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.diogonunes.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Framework review: Playwright"}]},{"@type":"WebSite","@id":"https:\/\/www.diogonunes.com\/blog\/#website","url":"https:\/\/www.diogonunes.com\/blog\/","name":"The Geeky Gecko","description":"The Geeky Gecko","publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c","name":"Diogo Nunes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","width":799,"height":799,"caption":"Diogo Nunes"},"logo":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.diogonunes.com","https:\/\/x.com\/dialexnunes"],"url":"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1920%2C1237&ssl=1","jetpack-related-posts":[{"id":4059,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-robot\/","url_meta":{"origin":4204,"position":0},"title":"Framework review: Robot","author":"Diogo Nunes","date":"12 April, 2021","format":false,"excerpt":"Robot Framework is a test automation framework for acceptance testing (\u2026) it utilises the keyword-driven testing approach. Its testing capabilities can be extended by Python test libraries. \u2014 Official website Code Example of automation at GitHub. Use cases \ud83e\udd48 Automate end-to-end tests using the UI. You can also use it\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/12\/phillip-glickman-2umO15jsZKM-unsplash.jpg?fit=1200%2C799&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/12\/phillip-glickman-2umO15jsZKM-unsplash.jpg?fit=1200%2C799&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/12\/phillip-glickman-2umO15jsZKM-unsplash.jpg?fit=1200%2C799&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/12\/phillip-glickman-2umO15jsZKM-unsplash.jpg?fit=1200%2C799&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/12\/phillip-glickman-2umO15jsZKM-unsplash.jpg?fit=1200%2C799&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3978,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-cypress\/","url_meta":{"origin":4204,"position":1},"title":"Framework review: Cypress","author":"Diogo Nunes","date":"4 January, 2021","format":false,"excerpt":"Fast and reliable testing for anything that runs in a browser. It uses Javascript to make setting up, writing, running and debugging tests easy \u2014 for QAs and developers. \u2014 Official website Code Example of automation at GitHub. Use cases \ud83e\udd47 Automate end-to-end (E2E) tests using the UI or the\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3955,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/","url_meta":{"origin":4204,"position":2},"title":"Framework review: Karate","author":"Diogo Nunes","date":"2 November, 2020","format":false,"excerpt":"Karate is the only open-source tool to combine API test-automation, mocks, performance-testing and even UI automation into a single, unified framework. You don't have to compile (Java) code. Just write tests in a readable syntax. \u2014 Official website Code Example of automation at GitHub. Use cases \ud83e\udd47 Automate API tests.\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4453,"url":"https:\/\/www.diogonunes.com\/blog\/playwright-cheat-sheet\/","url_meta":{"origin":4204,"position":3},"title":"Playwright cheat sheet","author":"Diogo Nunes","date":"7 February, 2022","format":false,"excerpt":"\u2b50\ufe0f This post was featured in Software Testing Weekly #110 and Coding JAG #76 My first experience with Playwright was terrible. However the testing community seems to be loving it, thus I gave it another shot. I started by doing a free course, but I don't recommend it, it's very\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/11\/patrick-tomasso-Oaqk7qqNh_c-unsplash.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/11\/patrick-tomasso-Oaqk7qqNh_c-unsplash.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/11\/patrick-tomasso-Oaqk7qqNh_c-unsplash.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/11\/patrick-tomasso-Oaqk7qqNh_c-unsplash.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/11\/patrick-tomasso-Oaqk7qqNh_c-unsplash.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2554,"url":"https:\/\/www.diogonunes.com\/blog\/tests-that-criticize-the-product\/","url_meta":{"origin":4204,"position":4},"title":"Testing for agile teams: Tests that review the product (#5)","author":"Diogo Nunes","date":"13 March, 2017","format":false,"excerpt":"This post is part of the \"Testing for Agile Teams\" series. All that's left is to possibly find some obscure or interesting bugs. And to avoid things like \"that's what I said, but it\u2019s not what I meant.\" Business-Facing Tests (Q3) All about trying to recreate actual experiences of the\u2026","rel":"","context":"In &quot;Work&quot;","block_context":{"text":"Work","link":"https:\/\/www.diogonunes.com\/blog\/category\/work\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/03\/Agile-Testing-Book-Part-3.jpg?fit=489%2C340&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2650,"url":"https:\/\/www.diogonunes.com\/blog\/browserstack-cross-browser-testing-review\/","url_meta":{"origin":4204,"position":5},"title":"Cross-browser testing with BrowserStack: a review","author":"Diogo Nunes","date":"15 August, 2016","format":false,"excerpt":"These are BrowserStack's main services or tools: Automate: Where you run your automated Selenium tests and check the results. Screenshots: Paste an URL, select the browsers and version you want, and in a few minutes you get a batch of screenshots. Live: by connecting to their data center you are\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"browserstack-logo","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/browserstack-logo.png?fit=1024%2C337&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/browserstack-logo.png?fit=1024%2C337&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/browserstack-logo.png?fit=1024%2C337&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/browserstack-logo.png?fit=1024%2C337&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/comments?post=4204"}],"version-history":[{"count":3,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4204\/revisions"}],"predecessor-version":[{"id":4455,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4204\/revisions\/4455"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media\/4207"}],"wp:attachment":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media?parent=4204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/categories?post=4204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/tags?post=4204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}