{"id":3955,"date":"2020-11-02T07:00:53","date_gmt":"2020-11-02T07:00:53","guid":{"rendered":"https:\/\/www.diogonunes.com\/blog\/?p=3955"},"modified":"2020-09-20T13:28:52","modified_gmt":"2020-09-20T12:28:52","slug":"framework-review-karate","status":"publish","type":"post","link":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/","title":{"rendered":"Framework review: Karate"},"content":{"rendered":"<figure id=\"attachment_3963\" aria-describedby=\"caption-attachment-3963\" 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\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash.jpg?resize=580%2C386&#038;ssl=1\" alt=\"\" width=\"580\" height=\"386\" class=\"size-large wp-image-3963\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?resize=1024%2C681&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?resize=400%2C266&amp;ssl=1 400w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?resize=768%2C511&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?resize=1536%2C1022&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?resize=2048%2C1363&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?resize=1200%2C798&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?resize=1980%2C1318&amp;ssl=1 1980w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?w=1740&amp;ssl=1 1740w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><figcaption id=\"caption-attachment-3963\" class=\"wp-caption-text\"><span>Photo by <a href=\"https:\/\/unsplash.com\/@h4x0r3?utm_source=unsplash&#038;utm_medium=referral&#038;utm_content=creditCopyText\">Thao Le Hoang<\/a> on <a href=\"https:\/\/unsplash.com\/s\/photos\/karate?utm_source=unsplash&#038;utm_medium=referral&#038;utm_content=creditCopyText\">Unsplash<\/a><\/span><\/figcaption><\/figure>\n<blockquote>\n<p>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&#8217;t have to compile (Java) code. Just write tests in a readable syntax.<\/p>\n<p>\u2014 <a href=\"https:\/\/intuit.github.io\/karate\/\">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\/master\/code\/framework\/karate\">GitHub<\/a>.<\/p>\n<h3>Use cases \ud83e\udd47<\/h3>\n<p>Automate API tests. It also supports performance and end-to-end (E2E) tests. Mobile testing is in the roadmap.<\/p>\n<h3>Learning curve \ud83e\udd48<\/h3>\n<p>Steep. It&#8217;s easy to understand how it works, but it lacks an official step-by-step tutorial where each main DSL keyword is introduced, one at a time. It feels like a framework made by and to &#8220;hardcore developers&#8221;. The purpose of using Gherkin is to make the tools accessible to non-devs, yet I never felt productive or in control.<\/p>\n<h3>Language \ud83e\udd47<\/h3>\n<p>Tests are written in <a href=\"https:\/\/hackernoon.com\/yes-karate-is-not-true-bdd-698bf4a9be39\">Karate&#8217;s DSL<\/a>. It uses the syntax of Gherkin and it adds some custom keywords and operators. It also supports calls to Java and JavaScript, outside the Given-When-Then structure.<\/p>\n<h3>Ecosystem \ud83e\udd49<\/h3>\n<p>The <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=kirkslota.karate-runner\">VS Code extension<\/a> didn&#8217;t work at all (e.g. no autocomplete, no debugger, no run test button). In terms of community\u2026 there&#8217;s not much since it&#8217;s a recent tool. The author is an <a href=\"https:\/\/twitter.com\/KarateDSL\/status\/1167533484560142336\">enthusiastic<\/a> salesperson which led to <a href=\"https:\/\/twitter.com\/jarbon\/status\/1136589061605416961\">some bad PR<\/a>, result of the &#8220;my tool is amazing, if you disagree you&#8217;re against me&#8221; attitude. He&#8217;s very active on Stack Overflow and GitHub though, replies within hours!<\/p>\n<h3>Readability \ud83d\ude2d<\/h3>\n<p>It&#8217;s easier to read than to know what to write. Without autocomplete or good documentation it becomes hard to know how to use the Karate DSL to achieve what you want to do. Your tests use Gherkin&#8217;s structure, but you have to mix programming syntax too (e.g. operators, selectors). This <a href=\"https:\/\/club.ministryoftesting.com\/t\/karate-for-test-automation-what-is-your-experience\/39336\/2\">sums the downsides<\/a> of natural (e.g. no refactoring) and programming (e.g. learning curve) languages. The CLI output is very verbose (without colours or whitespace) so it&#8217;s hard. The HTML report doesn&#8217;t clear results from previous test runs. Oh, and the DSL doesn&#8217;t allow inline comments.<\/p>\n<h3>Extensibility \ud83e\udd48<\/h3>\n<p>You don&#8217;t need plugins, since it follows the &#8220;batteries included&#8221; philosophy. Running tests in parallel is very easy. It includes Mocking, <a href=\"https:\/\/github.com\/intuit\/karate\/tree\/master\/karate-demo#code-coverage-using-jacoco\">code coverage<\/a> and HTML reports (but it doesn&#8217;t reset results between runs, even when using <code>--clean<\/code>, which makes the report useless).<\/p>\n<h3>Maintainability \ud83d\ude2d<\/h3>\n<p>The <a href=\"https:\/\/intuit.github.io\/karate\/#cucumber-vs-karate\"><em>big difference<\/em><\/a> from Cucumber is that you <em>don&#8217;t<\/em> need to write extra &#8220;step definitions&#8221; (but you end up mixing Gherkin with programming). You can&#8217;t use PageObjects, but you can centralise selectors in a <code>locators.json<\/code> to achieve DRY. I could not debug at all, zero of features <a href=\"https:\/\/twitter.com\/KarateDSL\/status\/1167533484560142336\">advertised here<\/a> worked for me (Cypress, even <a href=\"https:\/\/hackernoon.com\/the-world-needs-an-alternative-to-selenium-so-we-built-one-zrk3j3nyr\">Selenium<\/a>, does a better job). On top of that, I got <a href=\"https:\/\/stackoverflow.com\/questions\/62308044\/karate-ui-automation-test-results-are-not-coherent\">incoherent test results on UI automation<\/a>.<\/p>\n<h3>Documentation \ud83e\udd49<\/h3>\n<p>Documentation is a single README file. It&#8217;s verbose, exhaustive for beginners, hard to navigate and find what you are looking for. It feels like the official docs were written by the author but never revised from the perspective of a beginner (e.g. the provided quick start example fails; it can&#8217;t be copied because it&#8217;s an image; it was faster to skim blogs for examples and reverse-engineer the bits that I needed).<\/p>\n<h3>VERDICT: 3\/5<\/h3>\n<p>Useful for <a href=\"https:\/\/docs.google.com\/document\/d\/1ETTrdMVcBXaPjdKY-_67zCWBsi2Ctc5DIQUIfr02H7A\/edit\">API testing<\/a>, because it uses a generic language and can be executed as a standalone. But don&#8217;t be fooled, the target audience are developers and it&#8217;s not an alternative for UI\/E2E tests.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217;t have to compile (Java) code. Just write tests in a readable syntax. \u2014 Official website<\/p>\n","protected":false},"author":1,"featured_media":3963,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[80,22,55],"class_list":["post-3955","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-karate","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: Karate - The Geeky Gecko<\/title>\n<meta name=\"description\" content=\"Karate is open-source and combines API test-automation, mocks, performance-testing and UI automation. This is my review: it&#039;s a 3 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-karate\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Framework review: Karate - The Geeky Gecko\" \/>\n<meta property=\"og:description\" content=\"Karate is open-source and combines API test-automation, mocks, performance-testing and UI automation. This is my review: it&#039;s a 3 out of 5.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/\" \/>\n<meta property=\"og:site_name\" content=\"The Geeky Gecko\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-02T07:00:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1703\" \/>\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=\"3 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-karate\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/\"},\"author\":{\"name\":\"Diogo Nunes\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"headline\":\"Framework review: Karate\",\"datePublished\":\"2020-11-02T07:00:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/\"},\"wordCount\":586,\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1\",\"keywords\":[\"karate\",\"review\",\"testing\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/\",\"name\":\"Framework review: Karate - The Geeky Gecko\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1\",\"datePublished\":\"2020-11-02T07:00:53+00:00\",\"description\":\"Karate is open-source and combines API test-automation, mocks, performance-testing and UI automation. This is my review: it's a 3 out of 5.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1\",\"width\":2560,\"height\":1703,\"caption\":\"Photo by Thao Le Hoang on Unsplash\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.diogonunes.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Framework review: Karate\"}]},{\"@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: Karate - The Geeky Gecko","description":"Karate is open-source and combines API test-automation, mocks, performance-testing and UI automation. This is my review: it's a 3 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-karate\/","og_locale":"en_US","og_type":"article","og_title":"Framework review: Karate - The Geeky Gecko","og_description":"Karate is open-source and combines API test-automation, mocks, performance-testing and UI automation. This is my review: it's a 3 out of 5.","og_url":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/","og_site_name":"The Geeky Gecko","article_published_time":"2020-11-02T07:00:53+00:00","og_image":[{"width":2560,"height":1703,"url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#article","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/"},"author":{"name":"Diogo Nunes","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"headline":"Framework review: Karate","datePublished":"2020-11-02T07:00:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/"},"wordCount":586,"publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1","keywords":["karate","review","testing"],"articleSection":["Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/","url":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/","name":"Framework review: Karate - The Geeky Gecko","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#primaryimage"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1","datePublished":"2020-11-02T07:00:53+00:00","description":"Karate is open-source and combines API test-automation, mocks, performance-testing and UI automation. This is my review: it's a 3 out of 5.","breadcrumb":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#primaryimage","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1","width":2560,"height":1703,"caption":"Photo by Thao Le Hoang on Unsplash"},{"@type":"BreadcrumbList","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.diogonunes.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Framework review: Karate"}]},{"@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\/2020\/08\/thao-le-hoang-igLzPKOvZNw-unsplash-scaled.jpg?fit=2560%2C1703&ssl=1","jetpack-related-posts":[{"id":4059,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-robot\/","url_meta":{"origin":3955,"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":3955,"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":4698,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/","url_meta":{"origin":3955,"position":2},"title":"Framework review: Maestro","author":"Diogo Nunes","date":"15 May, 2023","format":false,"excerpt":"\ud83c\udfc6 This post was featured in Software Testing Weekly #169 A friend (Hugo) told me about this new mobile test automation framework called Maestro. At the time, my team was using Appium to test a React Native app, that ran on iOS and Android. I was not 100% happy with\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\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4204,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-playwright\/","url_meta":{"origin":3955,"position":3},"title":"Framework review: Playwright","author":"Diogo Nunes","date":"29 March, 2021","format":false,"excerpt":"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 Code Example of automation at GitHub. Use cases \ud83e\udd48 Automate end-to-end (E2E) tests using the UI. It also supports mocks. Learning curve \ud83e\udd48 Most\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\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1200%2C773&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1200%2C773&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1200%2C773&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1200%2C773&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/03\/fatih-kilic-m1dM7ZXvdMs-unsplash.jpg?fit=1200%2C773&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3709,"url":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/","url_meta":{"origin":3955,"position":4},"title":"Cypress Sapling (automation template)","author":"Diogo Nunes","date":"18 May, 2020","format":false,"excerpt":"No need to start with the seed \u2013 plant the sapling! Get it? Because \"Cypress\" is a tree... \ud83e\udd13 On my last project we chose Cypress to automate our E2E tests. During a year and a half we constantly tweaked and improved our test repository. We added more functionary on\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\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=960%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=960%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=960%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=960%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4352,"url":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-3\/","url_meta":{"origin":3955,"position":5},"title":"Testing is not just\u2026 (Concepts #3)","author":"Diogo Nunes","date":"25 October, 2021","format":false,"excerpt":"\ud83c\udfc6 This post was featured in Software Testing Weekly #95 and Coding JAG #60 This is part of my free testing course, focused on teaching you the fundamentals of testing \ud83d\ude09 \ud83e\udd16 Automation Much of what we find as testers comes off-script and high-value unknowns are found by letting humans\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\/2021\/10\/lenny-kuhne-jHZ70nRk7Ns-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\/10\/lenny-kuhne-jHZ70nRk7Ns-unsplash.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/lenny-kuhne-jHZ70nRk7Ns-unsplash.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/lenny-kuhne-jHZ70nRk7Ns-unsplash.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/lenny-kuhne-jHZ70nRk7Ns-unsplash.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/3955","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=3955"}],"version-history":[{"count":4,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/3955\/revisions"}],"predecessor-version":[{"id":3961,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/3955\/revisions\/3961"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media\/3963"}],"wp:attachment":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media?parent=3955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/categories?post=3955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/tags?post=3955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}