{"id":4698,"date":"2023-05-15T08:00:27","date_gmt":"2023-05-15T07:00:27","guid":{"rendered":"https:\/\/www.diogonunes.com\/blog\/?p=4698"},"modified":"2023-05-22T14:29:53","modified_gmt":"2023-05-22T13:29:53","slug":"framework-review-maestro","status":"publish","type":"post","link":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/","title":{"rendered":"Framework review: Maestro"},"content":{"rendered":"<figure id=\"attachment_4700\" aria-describedby=\"caption-attachment-4700\" style=\"width: 1000px\" 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\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?resize=580%2C327&#038;ssl=1\" alt=\"\" width=\"580\" height=\"327\" class=\"size-full wp-image-4700\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?w=1000&amp;ssl=1 1000w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?resize=400%2C225&amp;ssl=1 400w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?resize=768%2C432&amp;ssl=1 768w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><figcaption id=\"caption-attachment-4700\" class=\"wp-caption-text\">Conductor Eimear Noone \ud83c\udfbc \ud83c\udfae<\/figcaption><\/figure>\n<blockquote>\n<p>\ud83c\udfc6 This post was featured in <a href=\"https:\/\/softwaretestingweekly.com\/issues\/169\">Software Testing Weekly #169<\/a><\/p>\n<\/blockquote>\n<p>A friend (<a href=\"https:\/\/medium.com\/@hugocf\">Hugo<\/a>) told me about this new mobile test automation framework called <a href=\"https:\/\/maestro.mobile.dev\/\">Maestro<\/a>. 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 Appium, so I gave Maestro a try.<\/p>\n<p><!--more--><\/p>\n<h3>Maestro commands<\/h3>\n<pre><code class=\"sh\"># install\nbrew tap mobile-dev-inc\/tap\nbrew install maestro\n\n# install iOS support\nbrew tap facebook\/fb\nbrew install facebook\/fb\/idb-companion\nxcrun simctl list           # UDID of available iOS devices\nidb_companion --boot {udid} # boots one of those devices\n\n# run\nnpm run start\nnpm run e2e:maestro\n<\/code><\/pre>\n<h3>Maestro code<\/h3>\n<p><code>package.json<\/code><\/p>\n<pre><code>\"e2e:maestro\": \"for i in test-e2e\/maestro\/*.yml; do maestro test $i; done\",\n\"e2e:maestro:ios\": \"maestro test test-e2e\/maestro\/ios\/open-app.test.yml\",\n<\/code><\/pre>\n<p><code>open-app.test.yaml<\/code><\/p>\n<pre><code class=\"yaml\">appId: com.company.app\n---\n- clearState\n- launchApp\n\n# should render welcome page\n- assertVisible: 'The future is here.'\n- assertVisible: '.*Terms of Service.*'\n\n# should support login with email\n- tapOn: 'Get started'\n- inputText: 'someone@company.com'\n- hideKeyboard\n- tapOn: 'Next'\n\n# should ask for 2FA\n- assertVisible: 'Verification code'\n- assertVisible: '.*Resend code.*'\n\n<\/code><\/pre>\n<h3>My opinion<\/h3>\n<p>While I experimented with the framework I discovered a few behaviours:<\/p>\n<ul>\n<li>Text assertions are case sensitive<\/li>\n<li>Test stops on first failed action\/assertion<\/li>\n<li>Each file is one test, executed top to bottom<\/li>\n<li>When running a folder instead of a specific test file the output does not show the results of each test step (<a href=\"https:\/\/github.com\/mobile-dev-inc\/maestro\/issues\/507\">requested<\/a>)<\/li>\n<\/ul>\n<h4>Pros<\/h4>\n<ul>\n<li>Twice as fast (12.21s) as Appium (24.24s) to boot the app and get to the screen<\/li>\n<li>Console is not spammed with useless logs<\/li>\n<li>You have a way to easily reset the state of the app (<code>clearState<\/code>)<\/li>\n<li>It actually runs <a href=\"https:\/\/github.com\/mobile-dev-inc\/maestro\/blob\/b367a2c1110cebc618a1f7889859120f235193f8\/maestro-ios\/README.md#ios-device-config\">tests on iOS simulators<\/a> (not real devices)<\/li>\n<\/ul>\n<h4>Cons<\/h4>\n<ul>\n<li>Only supports simple actions (eg. things a user would do) &#8212; i.e. can&#8217;t write complex logic with YAML (eg. extract and fill 2FA code)<\/li>\n<li>You know a step failed but you don&#8217;t know why<\/li>\n<li>Harder to avoid DRY (unless there&#8217;s a way to define constants in one place)<\/li>\n<li>You don&#8217;t get a screenshot when a test fails (<a href=\"https:\/\/github.com\/mobile-dev-inc\/maestro\/issues\/237\">requested<\/a>)<\/li>\n<li>You can&#8217;t partially match text, unless you use a regex (<a href=\"https:\/\/github.com\/mobile-dev-inc\/maestro\/issues\/35\">requested<\/a>)<\/li>\n<li>Matching text with a regex don&#8217;t work on iOS (but does on Android)<\/li>\n<\/ul>\n<h4>Conclusion<\/h4>\n<p>I think it has potential. I think the speed and ease of use (to get started) are its strongest selling points. It&#8217;s good to get started with mobile testing.<\/p>\n<p>However, it&#8217;s not mature at all for a professional use, as basic and critical features are not yet available. Also, while <code>yaml<\/code> is great for non-developers to write tests, it becomes very limiting if you need to automate complex logic.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\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 Appium, so I gave Maestro [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4700,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[20,88,89,22,55],"class_list":["post-4698","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-free-and-open","tag-maestro","tag-mobile-dev","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: Maestro - The Geeky Gecko<\/title>\n<meta name=\"description\" content=\"This is my review of Maestro, a mobile test automation framework. It has its strengths and a lot of potential, but it&#039;s not yet ready for professional use.\" \/>\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-maestro\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Framework review: Maestro - The Geeky Gecko\" \/>\n<meta property=\"og:description\" content=\"This is my review of Maestro, a mobile test automation framework. It has its strengths and a lot of potential, but it&#039;s not yet ready for professional use.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/\" \/>\n<meta property=\"og:site_name\" content=\"The Geeky Gecko\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-15T07:00:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-22T13:29:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"563\" \/>\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-maestro\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/\"},\"author\":{\"name\":\"Diogo Nunes\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"headline\":\"Framework review: Maestro\",\"datePublished\":\"2023-05-15T07:00:27+00:00\",\"dateModified\":\"2023-05-22T13:29:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/\"},\"wordCount\":334,\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1\",\"keywords\":[\"free and open\",\"maestro\",\"mobile dev\",\"review\",\"testing\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/\",\"name\":\"Framework review: Maestro - The Geeky Gecko\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1\",\"datePublished\":\"2023-05-15T07:00:27+00:00\",\"dateModified\":\"2023-05-22T13:29:53+00:00\",\"description\":\"This is my review of Maestro, a mobile test automation framework. It has its strengths and a lot of potential, but it's not yet ready for professional use.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1\",\"width\":1000,\"height\":563,\"caption\":\"Conductor Eimear Noone\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.diogonunes.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Framework review: Maestro\"}]},{\"@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: Maestro - The Geeky Gecko","description":"This is my review of Maestro, a mobile test automation framework. It has its strengths and a lot of potential, but it's not yet ready for professional use.","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-maestro\/","og_locale":"en_US","og_type":"article","og_title":"Framework review: Maestro - The Geeky Gecko","og_description":"This is my review of Maestro, a mobile test automation framework. It has its strengths and a lot of potential, but it's not yet ready for professional use.","og_url":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/","og_site_name":"The Geeky Gecko","article_published_time":"2023-05-15T07:00:27+00:00","article_modified_time":"2023-05-22T13:29:53+00:00","og_image":[{"width":1000,"height":563,"url":"https:\/\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg","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-maestro\/#article","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/"},"author":{"name":"Diogo Nunes","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"headline":"Framework review: Maestro","datePublished":"2023-05-15T07:00:27+00:00","dateModified":"2023-05-22T13:29:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/"},"wordCount":334,"publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1","keywords":["free and open","maestro","mobile dev","review","testing"],"articleSection":["Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/","url":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/","name":"Framework review: Maestro - The Geeky Gecko","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#primaryimage"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1","datePublished":"2023-05-15T07:00:27+00:00","dateModified":"2023-05-22T13:29:53+00:00","description":"This is my review of Maestro, a mobile test automation framework. It has its strengths and a lot of potential, but it's not yet ready for professional use.","breadcrumb":{"@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#primaryimage","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1","width":1000,"height":563,"caption":"Conductor Eimear Noone"},{"@type":"BreadcrumbList","@id":"https:\/\/www.diogonunes.com\/blog\/framework-review-maestro\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.diogonunes.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Framework review: Maestro"}]},{"@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\/2023\/04\/ConductorEimearNoonepoisedtomakehistoryatthe2020Oscars.jpg?fit=1000%2C563&ssl=1","jetpack-related-posts":[{"id":379,"url":"https:\/\/www.diogonunes.com\/blog\/set-up-your-rails-env\/","url_meta":{"origin":4698,"position":0},"title":"Setting up your Rails environment from scratch","author":"Diogo Nunes","date":"12 May, 2014","format":false,"excerpt":"This is a complete yet summarized guide to set up a Ruby on Rails development environment on Linux. Installing and configuring Sublime Text, Github, and Heroku are optional but we're included for the sake of completeness. Since these are the de facto tools for editing source code, managing code repositories\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"original photo: goo.gl\/QE43FV","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/05\/rails-worker-assembly-construction.jpg?fit=620%2C230&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/05\/rails-worker-assembly-construction.jpg?fit=620%2C230&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2014\/05\/rails-worker-assembly-construction.jpg?fit=620%2C230&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":3029,"url":"https:\/\/www.diogonunes.com\/blog\/phantomdriver-headless-chrome-driver-jenkins\/","url_meta":{"origin":4698,"position":1},"title":"Move from PhantomDriver to headless ChromeDriver on Jenkins","author":"Diogo Nunes","date":"3 July, 2017","format":false,"excerpt":"I had to make that joke \u261d\ufe0f UPDATE: The initial goal of this post was to guide you through the configuration of the headless Chrome (Driver) on Jenkins. However, in the meantime this happened: the maintainer of PhantomJS is stepping down because headless Chrome is coming Chrome is faster and\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\/2017\/04\/ghostbuster-logo.jpg?fit=1200%2C1037&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2017\/04\/ghostbuster-logo.jpg?fit=1200%2C1037&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2017\/04\/ghostbuster-logo.jpg?fit=1200%2C1037&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2017\/04\/ghostbuster-logo.jpg?fit=1200%2C1037&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2017\/04\/ghostbuster-logo.jpg?fit=1200%2C1037&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3955,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-karate\/","url_meta":{"origin":4698,"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":2857,"url":"https:\/\/www.diogonunes.com\/blog\/publish-maven-central-troubleshoot\/","url_meta":{"origin":4698,"position":3},"title":"Publishing to Maven central (troubleshoot included)","author":"Diogo Nunes","date":"21 November, 2016","format":false,"excerpt":"It's a treacherous path. Bring food and a sword. I tried to follow the official OSSRH guide but I had so many issues... I hope this \"guide of the guide\" saves you time and frustration. First things first Create a JIRA account on Sonatype's environment. Create a ticket for 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\/2017\/11\/KgcUeAo.png?fit=597%2C402&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2017\/11\/KgcUeAo.png?fit=597%2C402&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2017\/11\/KgcUeAo.png?fit=597%2C402&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":2536,"url":"https:\/\/www.diogonunes.com\/blog\/four-testing-quadrants\/","url_meta":{"origin":4698,"position":4},"title":"Testing for agile teams: The four testing quadrants (#3)","author":"Diogo Nunes","date":"16 January, 2017","format":false,"excerpt":"This post is part of the \"Testing for Agile Teams\" series. We do different types of testing to accomplish different goals. Your team has its own unique context. It's a tool, not a rule. Tests that support the team Supports the team as it develops the product: Drives development to\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-4.jpg?fit=489%2C340&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4059,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-robot\/","url_meta":{"origin":4698,"position":5},"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":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4698","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=4698"}],"version-history":[{"count":4,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4698\/revisions"}],"predecessor-version":[{"id":4721,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4698\/revisions\/4721"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media\/4700"}],"wp:attachment":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media?parent=4698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/categories?post=4698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/tags?post=4698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}