{"id":30946,"date":"2021-09-22T08:21:00","date_gmt":"2021-09-22T08:21:00","guid":{"rendered":"https:\/\/app14743.cloudwayssites.com\/?p=30946"},"modified":"2021-09-23T03:23:04","modified_gmt":"2021-09-23T03:23:04","slug":"getting-started-visual-ui-testing-android-apps-applitools-bitrise","status":"publish","type":"post","link":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/","title":{"rendered":"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise"},"content":{"rendered":"\n<p><em>A hands-on guide for getting started with visual UI testing for mobile apps with Applitools and Bitrise easily.<\/em><\/p>\n\n\n\n<p>Mobile apps play a critical role nowadays in our life, especially during the pandemic period, like e-commerce, groceries, medical, or banking apps. As we know there are different mobile apps, technologies, SDKs, and platforms that make <a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/what-is-mobile-testing\/\">mobile testing<\/a> have a lot of challenges and which need special technical skills from the testing team to tackle.&nbsp;<\/p>\n\n\n\n<p>And because most of the mobile companies aim to release their apps on a weekly or bi-weekly release cadence based on the team decision to deploy new features to the customer before their competitors, they are using different techniques. One of them is <strong>test automation<\/strong>.<\/p>\n\n\n\n<p>Based on that, in this article, I\u2019ll walk you through the most important aspects of automating the Visual UI testing for mobile apps and running it via CI\/CD pipelines using Applitools and Bitrise.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-s-visual-testing\">What&#8217;s Visual Testing?<\/h2>\n\n\n\n<p><a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-testing\/\">Visual Testing<\/a> is a testing activity that helps us to verify that the GUI (Graphical User Interface) appears correctly and as expected to customers, by checking that each element on a mobile app appears in the right size and position on different devices and OS versions.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-should-we-automate-visual-ui-testing\">Why should we automate Visual UI Testing?<\/h2>\n\n\n\n<p>Mobile companies nowadays are applying <strong>Mobile DevOps<\/strong> and implementing <strong>CI\/CD (Continuous Integration and Continuous Delivery\/Deployment) <\/strong>pipelines to deploy their mobile apps consistently and frequently.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"336\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile_DevOps_lifecycle-1.png\" alt=\"Mobile DevOps Lifecycle\" class=\"wp-image-31018\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile_DevOps_lifecycle-1.png 494w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile_DevOps_lifecycle-1-300x204.png 300w\" sizes=\"(max-width: 494px) 100vw, 494px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"79\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/android_ci_cd_-pipeline-1024x79.png\" alt=\"Android CI\/CD Pipeline\" class=\"wp-image-30950\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/android_ci_cd_-pipeline-1024x79.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/android_ci_cd_-pipeline-300x23.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/android_ci_cd_-pipeline-768x59.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/android_ci_cd_-pipeline.png 1408w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>One of the vital parts of this process is test automation, to make sure that app functionalities are working as expected and test that there are no blockers or critical issues in the early stages (<strong>Fail Fast<\/strong>) by running these tests on every pull request or as a nightly build. And if we add Visual UI testing with this pipeline we will make sure that there are no issues in the GUI and all the features are displayed correctly.&nbsp;<\/p>\n\n\n\n<p>In this tutorial, I will add the Visual UI Testing to my Android UI tests with <a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/top-appium-tutorials-guides\/\">Appium<\/a> and then run my tests on Bitrise as CI\/CD pipeline, covering the following steps:<\/p>\n\n\n\n<ol><li>Implement and run test and locally with Applitools Eyes SDK<\/li><li>Push the code to the GitHub repository<\/li><li>Create Bitrise account and add the project<\/li><li>Add the Applitools Environment Variables&nbsp;<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Let\u2019s get started!&nbsp;<\/h2>\n\n\n\n<p>To get started with Appium for Android applications, you should prepare your local machine with the following requirements:<\/p>\n\n\n\n<ul><li>macOS High Sierra or Mojave or Windows 10<\/li><li>NodeJS and NPM<\/li><li>Java +8<\/li><li>Android Studio includes Android SDK +16 (Android Emulator and command-line tools)<\/li><li>Appium Desktop<\/li><li>Appium<\/li><li>Appium Doctor<\/li><li>Maven or Gradle for your automation project<\/li><\/ul>\n\n\n\n<p>More information about installing Appium can be found in the free <a href=\"https:\/\/testautomationu.applitools.com\/appium-java-tutorial\/chapter3.1.html\">Appium Course<\/a> on Test Automation University or in <a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/automatic-appium-setup\/\">this blog post<\/a>.<\/p>\n\n\n\n<p>If you don\u2019t have an Android application, you can fork the <a href=\"https:\/\/github.com\/android\/sunflower\">Sunflower<\/a> app from GitHub. Sunflower app is a gardening app illustrating Android development best practices with <a href=\"https:\/\/developer.android.com\/jetpack\">Android Jetpack<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/sunflower_app-1-1024x684.jpg\" alt=\"Sunflower Android App\" class=\"wp-image-31031\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/sunflower_app-1-1024x684.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/sunflower_app-1-300x200.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/sunflower_app-1-768x513.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/sunflower_app-1-1536x1026.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/sunflower_app-1-462x308.jpg 462w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/sunflower_app-1.jpg 1560w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>With Appium, you can test automation scripts or projects that are stand-alone. I created a Maven project (you can create a Gradle one if you\u2019d like) with the following structure:&nbsp;<\/p>\n\n\n\n<ol><li><strong>POM.xml:<\/strong> I added the project dependencies such as testNG, Appium, Eyes Appium Java and created a Maven profile to run the tests from the command line with the maven surefire plugin.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/dannyshain\/ca4665cbaebdb375d9b062e86e7a0ff0.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/dannyshain\/ca4665cbaebdb375d9b062e86e7a0ff0\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<ol start=\"2\"><li><strong>Android_testng.xml:<\/strong> I added my testcase to run it with the maven command line using the maven command (<strong>mvn clean test -Pandroid<\/strong>)<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/dannyshain\/2a5095088a6a4eacff626d55c64823bf.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/dannyshain\/2a5095088a6a4eacff626d55c64823bf\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<ol start=\"3\"><li><strong>FirstAndroidTest.java:<\/strong> it\u2019s the test class where I added my test case and Appium desired capabilities with the following scenario:&nbsp;<\/li><\/ol>\n\n\n\n<ul><li>Open App<\/li><li>Click on Plant List<\/li><li>Click on My Garden<\/li><li>Click on Add Plant button<\/li><li>Click on \u201cAvocado\u201d<\/li><li>Click Back<\/li><li>Click on My Garden and assert that the plant name is exist<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/dannyshain\/12155a4dfe0a6de1f4af8a50d0ecdd1d.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/dannyshain\/12155a4dfe0a6de1f4af8a50d0ecdd1d\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<p>The full project can be found on <a href=\"https:\/\/github.com\/moatazeldebsy\/appium-bitrise-ci\/tree\/applitools-integration\">GitHub<\/a>.<\/p>\n\n\n\n<p>And now we can run the test using the following command:<\/p>\n\n\n\n<p><code>&gt; mvn clean test -Pandroid&nbsp;<\/code><\/p>\n\n\n\n<p>And the results will be like the following image:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1023\" height=\"577\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_appium_test_sm-1023x577.gif\" alt=\"Run Appium Tests Locally\" class=\"wp-image-31037\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_appium_test_sm-1023x577.gif 1023w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_appium_test_sm-300x169.gif 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_appium_test_sm-768x433.gif 768w\" sizes=\"(max-width: 1023px) 100vw, 1023px\" \/><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>Now it\u2019s time to add the Visual UI validation using Applitools <a href=\"https:\/\/app14743.cloudwayssites.com\/tutorials\/appium-native-java.html\">Eyes SDK for Appium<\/a>.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/app14743.cloudwayssites.com\/products-eyes\/\">Applitools Eyes<\/a> is powered by <a href=\"https:\/\/app14743.cloudwayssites.com\/applitools-ai-and-deep-learning\/\">Visual AI<\/a>, the only AI-powered computer vision that replicates the human eyes and brain to quickly spot functional and visual regressions.&nbsp;<\/p>\n\n\n\n<p>If you don\u2019t have an account you can create a free account from <a href=\"https:\/\/auth.applitools.com\/users\/register\">here<\/a>.<\/p>\n\n\n\n<ol><li>In the <strong>POM.xml <\/strong>file add the following dependency<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/dannyshain\/4d60eb3ef5db5b3614c5eb1cd0587929.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/dannyshain\/4d60eb3ef5db5b3614c5eb1cd0587929\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<ol start=\"2\"><li>In the <strong>FirstAndroidTest<\/strong> class, initialize the <strong>eyes SDK<\/strong> with the following command<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><code>Eyes eyes = new Eyes();<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol start=\"3\"><li>In the <strong>setUp()<\/strong> void, you can set the private <strong>Applitools API key<\/strong> (you can find it in your account) and disable take the full screenshot with the following code:&nbsp;<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><code>eyes.setApiKey(\"YOUR_API_KEY\");<\/code><\/p>\n\n\n\n<p><code>eyes.setForceFullPageScreenshot(false);<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol start=\"4\"><li>In the <strong>add_plant_test()<\/strong> void, start the test with the following line:<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><code>&nbsp;eyes.open(driver, \"Sunflower\", \"Add My Plant\");<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol start=\"5\"><li>After we open the app, we will add the following line to check that the <strong>Plant List <\/strong>screen is displayed correctly:&nbsp;<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><code>eyes.checkWindow(\"Plant list\",false);<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol start=\"6\"><li>Then after we clicked on <strong>My Garden<\/strong>, we can add this line:&nbsp;<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><code>eyes.checkWindow(\"My Empty Garden\",false);<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol start=\"7\"><li>After we add the plant in the Garden \u201c<strong>Avocado<\/strong>\u201d we will add this line:<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><code>eyes.checkWindow(\"Avocado\",false);<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol start=\"8\"><li>At the end of the test, we will add this line to finish the test:<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><code>eyes.close();<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol start=\"9\"><li>In the <strong>tearDown()<\/strong> void, we will add this line to abort the test if not closed:<\/li><\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><code>eyes.abortIfNotClosed();<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>10. Now we can run our test again with the same Maven command and check the results in the <a href=\"https:\/\/app14743.cloudwayssites.com\/docs\/topics\/test-manager\/tm-overview.html\"><strong>Applitools Test manager<\/strong><\/a> with the steps view.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"456\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Applitools_test_manager-1024x456.png\" alt=\"Applitools Test Manager\" class=\"wp-image-30951\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Applitools_test_manager-1024x456.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Applitools_test_manager-300x134.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Applitools_test_manager-768x342.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Applitools_test_manager-1536x685.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Applitools_test_manager.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Or the <strong>Batch Summary View<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Batch_Summary_View-1024x521.png\" alt=\"Batch Summary View\" class=\"wp-image-30955\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Batch_Summary_View-1024x521.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Batch_Summary_View-300x153.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Batch_Summary_View-768x391.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Batch_Summary_View-1536x782.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Batch_Summary_View.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>11. Try to run the test again and check if the results are the same or if there is an issue.&nbsp;<\/p>\n\n\n\n<p>In my case when I run the tests again the test failed because the Eyes detected differences between the base images or the first run\/batch and the 2nd run.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"57\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test-1024x57.png\" alt=\"Visual UI failed tests\" class=\"wp-image-30963\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test-1024x57.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test-300x17.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test-768x43.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test-1536x86.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And I checked the dashboard to check the results and the differences:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_applitools_test_manager-1024x575.png\" alt=\"Failed Test Applitools Test Manager\" class=\"wp-image-30964\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_applitools_test_manager-1024x575.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_applitools_test_manager-300x169.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_applitools_test_manager-768x431.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_applitools_test_manager-1536x863.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_applitools_test_manager.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And I found that I have a difference in the first image which was already highlighted. You can click on the image for more details or compare it with the base image to check the difference.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/plant_list_difference-1024x500.png\" alt=\"Plant List Difference\" class=\"wp-image-30976\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/plant_list_difference-1024x500.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/plant_list_difference-300x147.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/plant_list_difference-768x375.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/plant_list_difference-1536x751.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/plant_list_difference.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"482\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/show_base_image-1024x482.jpg\" alt=\"Showing our base image\" class=\"wp-image-30984\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/show_base_image-1024x482.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/show_base_image-300x141.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/show_base_image-768x362.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/show_base_image-1536x723.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/show_base_image.jpg 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Because in my case sometimes the images loaded slowly, there was a difference between the two images.&nbsp;<\/p>\n\n\n\n<p>And also you can check the <strong>Batch Summary View<\/strong> for more details.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"519\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_batch_summary-1024x519.png\" alt=\"The batch summary of failed tests\" class=\"wp-image-30965\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_batch_summary-1024x519.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_batch_summary-300x152.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_batch_summary-768x389.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_batch_summary-1536x778.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/failed_test_batch_summary.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>TIP:<\/strong> If you need to run on different mobile devices and OS versions in parallel, you can use Applitools<a href=\"https:\/\/app14743.cloudwayssites.com\/product-ultrafast-test-cloud\/\"> Ultrafast Test Cloud<\/a>. More info on that can be found <a href=\"https:\/\/www.youtube.com\/watch?v=AlVQ-P_vQN8\">here<\/a>.<\/p><\/blockquote>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configuring-your-ci-for-the-eyes\">Configuring your CI for the Eyes<\/h2>\n\n\n\n<p>After we successfully run our tests locally, it\u2019s time to integrate our tests with our Android CI using Bitrise.&nbsp;<\/p>\n\n\n\n<p>But first, we need to do a small change in the <strong>application path<\/strong>, <strong>Applitools API Key<\/strong>, and the <strong>Batch ID<\/strong>. Locally, we\u2019re using the absolute path of the app and hardcoded values, but with Bitrise or our CI server, it should be as an environment variables with the following steps:&nbsp;<\/p>\n\n\n\n<ol><li>I will set up the values of the environment variables <strong>APPLITOOLS_API_KEY<\/strong> and <strong>APPLITOOLS_BATCH_ID<\/strong> to provide the API key and batch ID respectively in the setUp() void using the following code:<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"oembed-gist\"><script src=\"https:\/\/gist.github.com\/dannyshain\/fa3aec57e6bd54150d2e4f1daf6e2ca2.js\"><\/script><noscript>View the code on <a href=\"https:\/\/gist.github.com\/dannyshain\/fa3aec57e6bd54150d2e4f1daf6e2ca2\">Gist<\/a>.<\/noscript><\/div>\n<\/div><\/figure>\n\n\n\n<ol start=\"2\"><li>I will change the APK path to the Bitrise ENV Var because we will build the app in the CI server and then passing it to the Appium test using the following line&nbsp;<\/li><\/ol>\n\n\n\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caps.setCapability(\"app\", System.getenv(\"BITRISE_APK_PATH\"));<\/code><\/p>\n\n\n\n<ol start=\"3\"><li>Push the code to the GitHub Repository<\/li><\/ol>\n\n\n\n<p>Now it\u2019s time to integrate our Android app and the automation project with Bitrise.<\/p>\n\n\n\n<ol start=\"4\"><li>First, you need to <a href=\"https:\/\/app.bitrise.io\/users\/sign_up\">create a new Bitrise account<\/a> (it\u2019s free). You can use your email or any other account name you prefer.<\/li><\/ol>\n\n\n\n<ol start=\"5\"><li>After logging in, you will have an empty dashboard where you can start adding your projects.<\/li><\/ol>\n\n\n\n<ol start=\"6\"><li>Click on the <strong>Add your first app<\/strong> button to add the <strong>Sunflower Android app<\/strong> first.&nbsp;<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"570\" height=\"346\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/bitrise_add_new_app.jpg\" alt=\"Adding a new app on Bitrise\" class=\"wp-image-30956\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/bitrise_add_new_app.jpg 570w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/bitrise_add_new_app-300x182.jpg 300w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/figure>\n\n\n\n<ol start=\"7\"><li>Select your account and in the <strong>SET THE PRIVACY OF THE APP<\/strong> section select&nbsp;<strong>Private<\/strong> or <strong>Public<\/strong>, then click <strong>Next<\/strong>.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"667\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_account_type-1024x667.jpg\" alt=\"Selecting the privacy of our account\" class=\"wp-image-30982\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_account_type-1024x667.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_account_type-300x195.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_account_type-768x500.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_account_type-831x542.jpg 831w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_account_type.jpg 1130w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol start=\"8\"><li>Give Bitrise access rights to your source code provider and choose the repository.&nbsp;<\/li><\/ol>\n\n\n\n<ol start=\"9\"><li>&nbsp;Now you need to set up the repository access: click on <strong>auto-add SSH<\/strong> key or add your <strong>SSH key<\/strong>.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"193\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_ssh_key-1024x193.jpg\" alt=\"Add SSH key\" class=\"wp-image-30949\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_ssh_key-1024x193.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_ssh_key-300x57.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_ssh_key-768x145.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_ssh_key-1536x290.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_ssh_key.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol start=\"10\"><li>Choose Branch name, for example, <strong>master\/main<\/strong>, and click <strong>Next<\/strong>.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_branch_name-1024x311.png\" alt=\"Selecting a branch name\" class=\"wp-image-30983\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_branch_name-1024x311.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_branch_name-300x91.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_branch_name-768x233.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_branch_name-1536x467.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/select_branch_name.png 1540w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol start=\"11\"><li>&nbsp;After this, Bitrise will run a validation with your repository and configuration.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"189\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/scan_project-1024x189.jpg\" alt=\"Bitrise scans the project\" class=\"wp-image-30981\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/scan_project-1024x189.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/scan_project-300x55.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/scan_project-768x142.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/scan_project-1536x283.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/scan_project.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol start=\"12\"><li>After validating, the project build configuration will display successfully (for example, Android App).<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"437\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/validate_android_project-1024x437.png\" alt=\"Validating the Android Project\" class=\"wp-image-30989\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/validate_android_project-1024x437.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/validate_android_project-300x128.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/validate_android_project-768x328.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/validate_android_project-1536x656.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/validate_android_project.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol start=\"13\"><li>Click on the <strong>Confirm<\/strong> button after reviewing the Workflow stack. You can add an app icon as well.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"1024\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_project_icon-874x1024.jpg\" alt=\"Adding an icon to your project\" class=\"wp-image-30948\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_project_icon-874x1024.jpg 874w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_project_icon-256x300.jpg 256w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_project_icon-768x899.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_project_icon.jpg 1134w\" sizes=\"(max-width: 874px) 100vw, 874px\" \/><\/figure>\n\n\n\n<p>14. The final step is the <strong>Webhook<\/strong> setup. We just need to click on<strong> Register a Webhook for me! <\/strong>button and you will trigger your first Android build for your project&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"234\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/register_webhook-1024x234.jpg\" alt=\"Register a Webhook\" class=\"wp-image-30977\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/register_webhook-1024x234.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/register_webhook-300x69.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/register_webhook-768x176.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/register_webhook-1536x351.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/register_webhook.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"152\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/kick_off_project-1024x152.jpg\" alt=\"Kick off the project\" class=\"wp-image-30972\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/kick_off_project-1024x152.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/kick_off_project-300x45.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/kick_off_project-768x114.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/kick_off_project-1536x228.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/kick_off_project.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>15. You will be redirected to the build log where you can check the Steps and the build status.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"252\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/triggered_build-1024x252.jpg\" alt=\"Trigger Bitrise Build\" class=\"wp-image-30988\" title=\"Trigger Bitrise Build\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/triggered_build-1024x252.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/triggered_build-300x74.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/triggered_build-768x189.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/triggered_build-1536x377.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/triggered_build.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"493\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_starter_screen-1024x493.jpg\" alt=\"Bitrise build starter screen\" class=\"wp-image-30957\" title=\"Bitrise build starter screen\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_starter_screen-1024x493.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_starter_screen-300x144.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_starter_screen-768x370.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_starter_screen-1536x739.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_starter_screen.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"414\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_missing_android_sdk_step-1024x414.jpg\" alt=\"install missing Android SDK\" class=\"wp-image-30971\" title=\"Install missing Android SDK\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_missing_android_sdk_step-1024x414.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_missing_android_sdk_step-300x121.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_missing_android_sdk_step-768x311.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_missing_android_sdk_step-1536x621.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_missing_android_sdk_step.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>16.&nbsp; In the end, you will find a summary of all the tasks you ran during the build and how much time they took, along with the Step names. You can download logs or check the apps and artifacts here.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"892\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/final_build_results-1024x892.png\" alt=\"final build results\" class=\"wp-image-30966\" title=\"final build results\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/final_build_results-1024x892.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/final_build_results-300x261.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/final_build_results-768x669.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/final_build_results.png 1486w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>17. Now let\u2019s open the <strong>Workflow Editor<\/strong> to configure the CI Workflow with the new steps required for Appium and Applitools integration.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"409\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_workflow_editor-1024x409.jpg\" alt=\"open the workflow editor\" class=\"wp-image-30975\" title=\"open the workflow editor\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_workflow_editor-1024x409.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_workflow_editor-300x120.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_workflow_editor-768x307.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_workflow_editor-1536x613.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_workflow_editor.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You can rename the workflow as you like, for example from <strong>primary<\/strong> to <strong>appium-ui-tests<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"729\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/rename_workflow_name-1024x729.jpg\" alt=\"rename the workflow name\" class=\"wp-image-30978\" title=\"rename the workflow name\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/rename_workflow_name-1024x729.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/rename_workflow_name-300x214.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/rename_workflow_name-768x547.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/rename_workflow_name.jpg 1168w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>18. Add a <strong>Script<\/strong> step to clone the <strong>Appium repository <\/strong>by clicking on the <strong>+ <\/strong>button and it will open the steps screen, then you can search about the script then select it.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"774\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1024x774.jpg\" alt=\"clone Appium repository\" class=\"wp-image-30960\" title=\"clone Appium repository\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1024x774.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-300x227.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-768x580.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1536x1161.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository.jpg 1924w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>19. As we know, we are using <a href=\"https:\/\/github.com\/appium\/appium-desktop\"><strong>Appium Desktop<\/strong><\/a><strong> <\/strong>as a server and inspector locally, but with CI servers we can\u2019t use it, so we need to install and run Appium Server from the command line. Here I\u2019ll add another Script step to install and run the Appium server in the background.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"307\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium_step-1024x307.jpg\" alt=\"install and run Appium server\" class=\"wp-image-30970\" title=\"install and run Appium server\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium_step-1024x307.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium_step-300x90.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium_step-768x230.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium_step-1536x461.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium_step.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>20. You will notice that I\u2019m passing <strong>&#8211;log appium.log <\/strong>with the Appium command to export the server log as a<strong> .txt file<\/strong> for more debugging purposes if any tests failed.&nbsp;<\/p>\n\n\n\n<p>21. Add the <strong>AVD Manager<\/strong> Step to create an <strong>Android Emulator <\/strong>to use with your tests. You can choose any <strong>API level<\/strong>. For example, you can change it to <strong>28<\/strong> but you need to change it in the Appium desired capabilities and commit the change to your GitHub repository as well.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"384\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager_step-1024x384.jpg\" alt=\"AVD Manager step\" class=\"wp-image-30954\" title=\"AVD Manager step\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager_step-1024x384.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager_step-300x113.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager_step-768x288.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager_step-1536x576.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager_step.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>22. Add the <strong>Wait for the Android emulator<\/strong> Step and wait for the emulator to be ready before running our tests on it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"651\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-1024x651.jpg\" alt=\"wait for Emulator step\" class=\"wp-image-30991\" title=\"wait for Emulator step\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-1024x651.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-300x191.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-768x489.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-1536x977.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step.jpg 1852w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>23. Add another <strong>Script<\/strong> Step to run the UI tests. You need to switch inside the automation project to be able to run the maven command.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"291\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests_wih_maven-1024x291.jpg\" alt=\"run the ui tests\" class=\"wp-image-30980\" title=\"run the ui tests\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests_wih_maven-1024x291.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests_wih_maven-300x85.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests_wih_maven-768x218.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests_wih_maven-1536x437.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests_wih_maven.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>24. Add the <strong>Script<\/strong> Step to copy the Appium log file to the Deploy directory of Bitrise to be able to find it in the <strong>artifacts<\/strong> tab.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"285\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_appium_log_step-1024x285.jpg\" alt=\"export Appium log to the artifacts folder\" class=\"wp-image-30961\" title=\"export Appium log to the artifacts folder\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_appium_log_step-1024x285.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_appium_log_step-300x84.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_appium_log_step-768x214.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_appium_log_step-1536x428.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_appium_log_step.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>25. Add a <strong>Step<\/strong> to <strong>Export the test results<\/strong> to the Bitrise <a href=\"https:\/\/devcenter.bitrise.io\/testing\/exporting-to-test-reports-from-custom-script-steps\/\"><strong>Test Report Add-on<\/strong><\/a> and specify the test results search pattern like this: <strong>(*\/target\/surefire-reports\/junitreports\/*)<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_test_results-1024x506.jpg\" alt=\"export test results to Test Report add-on\" class=\"wp-image-30962\" title=\"export test results to Test Report add-on\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_test_results-1024x506.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_test_results-300x148.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_test_results-768x380.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_test_results-1536x759.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/export_test_results.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>26. Add the<strong> Applitools API Key<\/strong> and the <strong>Batch ID<\/strong> as environment variables, by click on the <strong>Secrets<\/strong> menu option and click add button then add your <strong>APPLITOOLS_API_KEY <\/strong>and <strong>APPLITOOLS_BATCH_ID <\/strong>like the following image:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"352\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_secrets_menu-1024x352.png\" alt=\"open the Secrets menu\" class=\"wp-image-30974\" title=\"open the Secrets menu\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_secrets_menu-1024x352.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_secrets_menu-300x103.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_secrets_menu-768x264.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_secrets_menu-1536x528.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/open_secrets_menu.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"219\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_applitools_env_vars-1024x219.jpg\" alt=\"add Applitools Env Vars\" class=\"wp-image-30947\" title=\"add Applitools Env Vars\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_applitools_env_vars-1024x219.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_applitools_env_vars-300x64.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_applitools_env_vars-768x164.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_applitools_env_vars-1536x329.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/add_applitools_env_vars.jpg 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The final Workflow will look like the following:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"556\" height=\"1024\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/full_workflow_part1-556x1024.jpg\" alt=\"The complete workflow (part 1)\" class=\"wp-image-30967\" title=\"The complete workflow (part 1)\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/full_workflow_part1-556x1024.jpg 556w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/full_workflow_part1-163x300.jpg 163w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/full_workflow_part1.jpg 752w\" sizes=\"(max-width: 556px) 100vw, 556px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"1024\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/full_workflow_part2-626x1024.jpg\" alt=\"The complete workflow (Part 2)\" class=\"wp-image-30968\" title=\"The complete workflow (Part 2)\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/full_workflow_part2-626x1024.jpg 626w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/full_workflow_part2-183x300.jpg 183w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/full_workflow_part2.jpg 746w\" sizes=\"(max-width: 626px) 100vw, 626px\" \/><\/figure>\n\n\n\n<p>To run the Workflow, go to the application page and click on the <strong>Start\/Schedule Build<\/strong> button and select the <strong>Workflow<\/strong> then click on the <strong>Start Build<\/strong> button.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"168\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/start_build-1024x168.jpg\" alt=\"start the Bitrise build\" class=\"wp-image-30985\" title=\"start the Bitrise build\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/start_build-1024x168.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/start_build-300x49.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/start_build-768x126.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/start_build-1536x252.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/start_build.jpg 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"774\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1-1024x774.jpg\" alt=\"The clone step in the build\" class=\"wp-image-31005\" title=\"The clone step in the build\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1-1024x774.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1-300x227.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1-768x580.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1-1536x1161.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/clone_appium_repository-1.jpg 1924w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"834\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium-1024x834.jpg\" alt=\"install and run Appium server\" class=\"wp-image-30969\" title=\"install and run Appium server\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium-1024x834.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium-300x244.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium-768x625.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium-1536x1250.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/install_and_run_appium.jpg 1742w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"600\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager-1024x600.png\" alt=\"create an Emulator with AVD Manager step\" class=\"wp-image-30953\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager-1024x600.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager-300x176.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager-768x450.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager-1536x901.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/avd_manager.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"651\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-1024x651.jpg\" alt=\"wait for the Emulator step\" class=\"wp-image-30991\" title=\"wait for the Emulator step\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-1024x651.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-300x191.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-768x489.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step-1536x977.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/wait_for_emulator_step.jpg 1852w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"417\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests-1024x417.png\" alt=\"run the UI tests using the Maven command\" class=\"wp-image-30979\" title=\"run the UI tests using the Maven command\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests-1024x417.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests-300x122.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests-768x313.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests-1536x625.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/run_ui_tests.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"90\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_status-1024x90.jpg\" alt=\"the final successful build status\" class=\"wp-image-30958\" title=\"the final successful build status\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_status-1024x90.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_status-300x26.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_status-768x67.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_status-1536x134.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/build_status.jpg 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To check the test results and the Appium log file you can click on the <strong>Test Report add-on<\/strong>, and for the <strong>appium log<\/strong> and the <strong>app.apk <\/strong>file, you can click on <strong>Apps &amp; Artifacts<\/strong> tab.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"518\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/test_report_add_on-1024x518.png\" alt=\"The test report with the Test Report add-on\" class=\"wp-image-30987\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/test_report_add_on-1024x518.png 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/test_report_add_on-300x152.png 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/test_report_add_on-768x389.png 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/test_report_add_on-1536x778.png 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/test_report_add_on.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"299\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/apps_and_artifcats-1024x299.jpg\" alt=\"the app and the build artifacts\" class=\"wp-image-30952\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/apps_and_artifcats-1024x299.jpg 1024w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/apps_and_artifcats-300x87.jpg 300w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/apps_and_artifcats-768x224.jpg 768w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/apps_and_artifcats-1536x448.jpg 1536w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/apps_and_artifcats.jpg 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Finally, we successfully added the Visual UI testing for our Android app and we can run the tests on every pull request or as a nightly build to make sure that we don\u2019t have something breaking our codebase and to keep our master branch always green.&nbsp;<\/p>\n\n\n\n<p>I hope you found this article useful and thank you for reading it!&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-code-repositories\">Code Repositories<\/h2>\n\n\n\n<ul><li><a href=\"https:\/\/github.com\/moatazeldebsy\/sunflower\">Sunflowers Android app<\/a> including the <a href=\"https:\/\/github.com\/moatazeldebsy\/sunflower\/blob\/main\/bitrise.yml\">bitrise.yml<\/a> file<\/li><li>Appium UI tests <a href=\"https:\/\/github.com\/moatazeldebsy\/appium-bitrise-ci\/tree\/applitools-integration\">repository<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-future-reading\">Future Reading<\/h2>\n\n\n\n<ul><li><a href=\"https:\/\/app14743.cloudwayssites.com\/docs\/topics\/integrations\/github-integration.html\">Using Eyes with GitHub<\/a><\/li><li><a href=\"https:\/\/app14743.cloudwayssites.com\/docs\/topics\/integrations\/github-integration-ci-setup.html\">Configuring your CI for the Eyes GitHub integration<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Useful Links<\/h2>\n\n\n\n<ul><li>Sign up for a <a href=\"https:\/\/auth.applitools.com\/users\/register\">free Applitools account<\/a><\/li><li>Learn more about the <a href=\"https:\/\/app14743.cloudwayssites.com\/product-ultrafast-test-cloud\/\">Ultrafast Test Cloud<\/a><\/li><li>Find out more about <a href=\"https:\/\/www.bitrise.io\/\">Bitrise<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A hands-on guide for getting started with visual UI testing for mobile apps with Applitools and Bitrise easily. Mobile apps play a critical role nowadays in our life, especially during&#8230;<\/p>\n","protected":false},"author":85,"featured_media":31233,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10004],"tags":[12783,10103,10152,13144,10821,16642,10310],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.5 (Yoast SEO v24.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise - AI-Powered End-to-End Testing | Applitools<\/title>\n<meta name=\"description\" content=\"A hands-on guide for getting started with visual UI testing for mobile apps with Applitools and Bitrise easily.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise\" \/>\n<meta property=\"og:description\" content=\"A hands-on guide for getting started with visual UI testing for mobile apps with Applitools and Bitrise easily. Mobile apps play a critical role nowadays\" \/>\n<meta property=\"og:url\" content=\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/\" \/>\n<meta property=\"og:site_name\" content=\"AI-Powered End-to-End Testing | Applitools\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-22T08:21:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-23T03:23:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"831\" \/>\n\t<meta property=\"og:image:height\" content=\"542\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Moataz Nabil\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Moataz Nabil\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/\"},\"author\":{\"name\":\"Moataz Nabil\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/162cbdafcc21504861a19c8e2c73f655\"},\"headline\":\"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise\",\"datePublished\":\"2021-09-22T08:21:00+00:00\",\"dateModified\":\"2021-09-23T03:23:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/\"},\"wordCount\":2083,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg\",\"keywords\":[\"Mobile\",\"Mobile App Testing\",\"Test Automation\",\"test automation tutorials\",\"Tutorial\",\"visual testing\",\"Visual UI Testing\"],\"articleSection\":[\"Advanced Topics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/\",\"name\":\"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise - AI-Powered End-to-End Testing | Applitools\",\"isPartOf\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg\",\"datePublished\":\"2021-09-22T08:21:00+00:00\",\"dateModified\":\"2021-09-23T03:23:04+00:00\",\"description\":\"A hands-on guide for getting started with visual UI testing for mobile apps with Applitools and Bitrise easily.\",\"breadcrumb\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#primaryimage\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg\",\"contentUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg\",\"width\":831,\"height\":542},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/app14743.cloudwayssites.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advanced Topics\",\"item\":\"https:\/\/app14743.cloudwayssites.com\/blog\/category\/advanced-topics\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#website\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/\",\"name\":\"Applitools Visual AI\",\"description\":\"Applitools delivers full end-to-end test automation with AI infused at every step.\",\"publisher\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/app14743.cloudwayssites.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#organization\",\"name\":\"Applitools\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2020\/03\/applitools.png\",\"contentUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2020\/03\/applitools.png\",\"width\":156,\"height\":28,\"caption\":\"Applitools\"},\"image\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/162cbdafcc21504861a19c8e2c73f655\",\"name\":\"Moataz Nabil\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c7f51ce34f56a19946ac5bfb5e316614?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c7f51ce34f56a19946ac5bfb5e316614?s=96&d=mm&r=g\",\"caption\":\"Moataz Nabil\"},\"url\":\"https:\/\/app14743.cloudwayssites.com\/blog\/author\/moataznabil\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise - AI-Powered End-to-End Testing | Applitools","description":"A hands-on guide for getting started with visual UI testing for mobile apps with Applitools and Bitrise easily.","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:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/","og_locale":"en_US","og_type":"article","og_title":"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise","og_description":"A hands-on guide for getting started with visual UI testing for mobile apps with Applitools and Bitrise easily. Mobile apps play a critical role nowadays","og_url":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/","og_site_name":"AI-Powered End-to-End Testing | Applitools","article_published_time":"2021-09-22T08:21:00+00:00","article_modified_time":"2021-09-23T03:23:04+00:00","og_image":[{"width":831,"height":542,"url":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg","type":"image\/jpeg"}],"author":"Moataz Nabil","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Moataz Nabil","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#article","isPartOf":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/"},"author":{"name":"Moataz Nabil","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/162cbdafcc21504861a19c8e2c73f655"},"headline":"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise","datePublished":"2021-09-22T08:21:00+00:00","dateModified":"2021-09-23T03:23:04+00:00","mainEntityOfPage":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/"},"wordCount":2083,"commentCount":0,"publisher":{"@id":"https:\/\/app14743.cloudwayssites.com\/#organization"},"image":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#primaryimage"},"thumbnailUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg","keywords":["Mobile","Mobile App Testing","Test Automation","test automation tutorials","Tutorial","visual testing","Visual UI Testing"],"articleSection":["Advanced Topics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/","url":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/","name":"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise - AI-Powered End-to-End Testing | Applitools","isPartOf":{"@id":"https:\/\/app14743.cloudwayssites.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#primaryimage"},"image":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#primaryimage"},"thumbnailUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg","datePublished":"2021-09-22T08:21:00+00:00","dateModified":"2021-09-23T03:23:04+00:00","description":"A hands-on guide for getting started with visual UI testing for mobile apps with Applitools and Bitrise easily.","breadcrumb":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#primaryimage","url":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg","contentUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/09\/Mobile-UI-Visual-Testing-Bitrise-Applitools-Android_831x542.jpg","width":831,"height":542},{"@type":"BreadcrumbList","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/getting-started-visual-ui-testing-android-apps-applitools-bitrise\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/app14743.cloudwayssites.com\/"},{"@type":"ListItem","position":2,"name":"Advanced Topics","item":"https:\/\/app14743.cloudwayssites.com\/blog\/category\/advanced-topics\/"},{"@type":"ListItem","position":3,"name":"Getting Started with Visual UI Testing for Android Apps with Applitools and Bitrise"}]},{"@type":"WebSite","@id":"https:\/\/app14743.cloudwayssites.com\/#website","url":"https:\/\/app14743.cloudwayssites.com\/","name":"Applitools Visual AI","description":"Applitools delivers full end-to-end test automation with AI infused at every step.","publisher":{"@id":"https:\/\/app14743.cloudwayssites.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/app14743.cloudwayssites.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/app14743.cloudwayssites.com\/#organization","name":"Applitools","url":"https:\/\/app14743.cloudwayssites.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/logo\/image\/","url":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2020\/03\/applitools.png","contentUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2020\/03\/applitools.png","width":156,"height":28,"caption":"Applitools"},"image":{"@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/162cbdafcc21504861a19c8e2c73f655","name":"Moataz Nabil","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c7f51ce34f56a19946ac5bfb5e316614?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c7f51ce34f56a19946ac5bfb5e316614?s=96&d=mm&r=g","caption":"Moataz Nabil"},"url":"https:\/\/app14743.cloudwayssites.com\/blog\/author\/moataznabil\/"}]}},"_links":{"self":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/posts\/30946"}],"collection":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/comments?post=30946"}],"version-history":[{"count":0,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/posts\/30946\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/media\/31233"}],"wp:attachment":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/media?parent=30946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/categories?post=30946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/tags?post=30946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}