How React Native, Appium and me made each other shine!

schedule Jun 29th 03:00 - 03:45 PM place Kalinga Hall 2 people 65 Interested

At the moment React Native is becoming bigger and bigger. To proof the quality of the app we have some awesome automation tools that can support us with that. But still, a tool is only as good as the person using it!

In my previous talk, see links, I've already explained why we needed to select Appium to automate our React Native app. In this session we will look at the decisions we have taken and how I, as the QA engineer of our team, got the opportunity to implement code changes to improve the quality of the app and ease the way we automate our app with Appium. Which resulted in making each other shine!

 
7 favorite thumb_down thumb_up 19 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/Structure of the Case Study

After a brief introduction I'll be handling the following topics that made us shine

  • Deeplinking your features
  • Mocking your services
  • Test your native components with storybook
  • And last but not least, disable what your automation hates

All points will be explained with code examples and a demo application.

Learning Outcome

Participants will understand how:

  • to use Appium in combination with React Native
  • how you can ease your (automation) live when you're allowed to do more in the source code
  • some useful hacks to setup your testframework

Target Audience

Anyone who is interested in why and how to test a React Native app with Appium

Prerequisites for Attendees

  • Know what React Native is
  • Appium
  • Some basic Javascript knowledge
schedule Submitted 1 year ago

Public Feedback

comment Suggest improvements to the Speaker
  • Srinija Kopparapu
    By Srinija Kopparapu  ~  5 months ago
    reply Reply

    it's a great session. very helpful, Thank you

    I am working on the automation script for one of my react-native application on a real android device

    But my scripts are working fine on android 6 version but not working on the later version i.e 7,8, and 9. It's failing as unable to locate the element. Could you please help me its issue with the developer building the app or with Appium configuration setup of mine.

    • Wim Selles
      By Wim Selles  ~  5 months ago
      reply Reply

      Hi,

      Can you please share your capabilities. I've only been testing on Android 7 and higher, because we didn't need to support 6 with automation. Are you using UiAutomator2, see http://appium.io/docs/en/drivers/android-uiautomator2/ or the old driver? UiAutomator2 is really faster and better.

      • Srinija Kopparapu
        By Srinija Kopparapu  ~  5 months ago
        reply Reply

        Thanks for your reply. 

         am using appium latest version 1.9.1

        java client jar 1.6

        app is getting freezed and throwing no such element exception.

        my desired capabilities are:

        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Nexus 5 API 28");

        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");

        cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.0");

        cap.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath());

        cap.setCapability("automationName", "uiautomator2");

        cap.setCapability("appPackage", "com.beautystack.app");

        cap.setCapability("appActivity", "com.beautystack.app.MainActivity");

        • Wim Selles
          By Wim Selles  ~  5 months ago
          reply Reply

          And this only works on Android 6?

          • Srinija Kopparapu
            By Srinija Kopparapu  ~  5 months ago
            reply Reply

            yes, it's only working on Android 6 version not working on 7 and later. Is there any configuration setting should be made while building the application or it is the issue with the appium setup

             

            • Wim Selles
              By Wim Selles  ~  5 months ago
              reply Reply

              Hmm, 

              What version of React Native are you guys using, I know there is an issue with 0.57.x with locators on Android. 
              Appium created a fix for that in a beta. so if you are using version 0.57.x then please try again with the latest beta installed and see what happens.

              If that doesn't help please continue on the Appium Gitter / StackOverflow.

               

              Tnx Wim

              • Srinija Kopparapu
                By Srinija Kopparapu  ~  5 months ago
                reply Reply

                we are using 0.56 version react native. which version of Appium should I try I am using 1.9.1 version do we have any latest beta versions released.

              • Srinija Kopparapu
                By Srinija Kopparapu  ~  5 months ago
                reply Reply

                Thank you for your reply. I will check that

  • Nishith Shah
    By Nishith Shah  ~  9 months ago
    reply Reply

    Thanks, Wim for a great session!

    I am working on the automation script for one of my react-native application on an iOS real device using Appium. I am facing some issue with Appium.

    When I try to create driver using Script or try to launch the application to locate element using Appium GUI, driver creation is taking around 5 mins.

    Then I checked the FacebookWebDriver log:

    t = 61.51s App animations complete notification not received, will attempt to continue.

    This might be taking too much time to create the driver.

    What should be the best solution to avoid this issue?

    Thanks in Advance!.

    • Wim Selles
      By Wim Selles  ~  9 months ago
      reply Reply

      Hi Nishith,

      What did you do to disable the animations?

       

      • Nishith Shah
        By Nishith Shah  ~  9 months ago
        reply Reply

        The application is developed by other company, should I have to inform them to remove animation same like which are mentioned in the attached PDF?

        • Wim Selles
          By Wim Selles  ~  9 months ago
          reply Reply

          Depends on what you want to achieve. I think your initial issue is that starting the app is taking to long. This is a different issue than the animations.

          You first needs to figure out why it is taking that long.

          • Nishith Shah
            By Nishith Shah  ~  9 months ago
            reply Reply

            Actually, the application is launching in time but somehow driver creation is taking too much time. Even, manually I tried and application behavior is better.

            Following is the log of FacebookWebDriver:

            t = 61.50s App event loop idle notification not received will attempt to continue.
            t = 61.51s App animations complete notification not received will attempt to continue.

            This seems that App animations are not completing in time and it will try after few minutes and successfully creating driver after 5 mins.

            • Wim Selles
              By Wim Selles  ~  9 months ago
              reply Reply

              I've never had that problem, but maybe this helps (form the last appium pro newsletter) https://appiumpro.com/editions/latest

              On iOS, we're not in quite as fortunate a situation. We can reduce system animations somewhat, but we can't turn them off completely, and we can't even reduce them programmatically---at least not very quickly. The way to "disable" animations on iOS is as follows:

              1. Open Settings
              2. Tap "General"
              3. Tap "Accessibility"
              4. Tap "Reduce Motion"
              5. Flip the switch to "On"

              As you can tell by the name of the setting we're dealing with, we're only "reducing" the motion involved in certain transitions on the device. Since this all takes place in the Settings app, we can actually use Appium to take these steps by writing an Appium script to find and tap the appropriate elements. However, doing so would obviate any benefit of time saved due to minimized animations, unless you have a lot of tests and can do this only one time in the device setup routine before testing begins.

  • Naresh Jain
    By Naresh Jain  ~  1 year ago
    reply Reply

    Thanks, Wim. We are interested in this topic. But need some time to finalize. Please stay tuned.

    • Wim Selles
      By Wim Selles  ~  1 year ago
      reply Reply

      Hi Naresh,

      Just curious, but the list has now been published with all the talks and I haven't got any response back on your comment / got a rejection for the talk. I assume that it didn't fit into the program.

      If not, can you also give some feedback on what you all missed so I can do better next time?

       

      Tnx

    • Wim Selles
      By Wim Selles  ~  1 year ago
      reply Reply

      Hi Naresh Jain

       

       

      Thx for the update, I'll be waiting

  • Anand Bagmar
    By Anand Bagmar  ~  1 year ago
    reply Reply

    Hi Wim,

    What is the approximate split between slides and code that you will be showing? Also, do you have any sample slides you can share on the same, or similar topic?

    • Wim Selles
      By Wim Selles  ~  1 year ago
      reply Reply

      Hi Anand,

       

      I'm currently busy with putting the last efforts in the slides for the Appium conf, so I don't have them available yet. What I can share already is the project I created that I would like to use during SeleniumConf 2018. Here you will find the code and a (not so ready) readme, but it can give you idea of the topics I want to cover during the talk for SeleniumConf 2018. You can find the project here, it's already linking to 1 of the subjects called animations.

      I think I would have a 60-40 split between talk and code examples. The code examples will also cover the demo. It could also be that it will become 40-60, but that will come out of the preparation.

      Hoping to have answered all your questions. If you have more, feel free to ask.

       


  • Liked Eran Kinsbruner
    keyboard_arrow_down

    Eran Kinsbruner - Strategy for testing progressive web apps using Selenium & Appium

    Eran Kinsbruner
    Eran Kinsbruner
    Global Evangelist
    Perfecto
    schedule 1 year ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    While mobile native apps provide great user experience, and RWD site offer a similar experience across both mobile and web, there is a new and emerging method of developing digital apps, that is called PWA (progressive web app).

    Since this app type is new and works on both mobile and web, but adds unique capabilities when consumed on a mobile device like push notifications, no or limited network connectivity, and more, the testing strategy needs to adjust.

    In this session, Eran Kinsbruner will walk through the fundamentals of PWAs, and what are the main differences, pro's and con's between these apps, RWD, and Native apps. IN addition, Eran will provide a test methodology that can help teams who adopt this technology to get started and cover the unique capabilities of these apps, like Service Workers, Manifest file testing, and more.

  • Liked Amir Rozenberg
    keyboard_arrow_down

    Amir Rozenberg - Best practices embedding quality in devOPS using Selenium

    45 Mins
    Talk
    Beginner

    Most teams would consider quality activities in cycle as a burden that will cause delays and extra work. The outcome is buggy releases to market, negative impact on the product brand and the business.

    In reality, Selenium and other open source components make for a fantastic framework to establish solid, reliable test automation. Being able to achieve the necessary coverage reliably is realistic. Fast feedback loop enables developers to correct defects within minutes of code commit, optimizing time spend by devs. These tools can be used from the requirements/design at the initiation of the sprint, through coding, to include production availability and responsiveness.

    In this session Amir Rozenberg, director of product at Perfecto, will offer best practices in placing this methodology in place. The audience will learn:

    • What are the main challenges for organizations transforming their test practice into agile?
    • How to break old notions and put an agile quality process in place? what are the technological and organizational changes that would assist in this transition?
    • What are some success and failure stories from real world examples: hotel chain, health insurance company and top retailer
  • Liked Smita Mishra
    keyboard_arrow_down

    Smita Mishra - DEBUGGING DIVERSITY

    Smita Mishra
    Smita Mishra
    CEO
    QAZone Infosystems
    schedule 1 year ago
    Sold Out!
    45 Mins
    Talk
    Advanced

    For many years, we have heard discussions around diversity. You may be tempted to think of just one kind of diversity: Where we have marches in the streets, organizations protesting for their rights, new laws being passed, and new organizations being created.

    We see something similar in the software testing industry. We see organizations being created to support diversity. We see articles and focus groups dedicated as well. We are even seeing conferences dedicating specific segments of their program to women in testing and selections being made based on diversity. We have listened to the strong opinions from both sides of the discussion. We have heard their cases, and very likely, we have agreed with some of the points at every angle.

    And then there are other kinds of diversities we deal within Software Development and Software Testing. More emanating due to the very nature of the work. Diversity in work could mean whole different world for the line of business. As with the other diversity – we have the protests, debates, and disagreements at work too, but it is important that we understand what is the core problem that we are trying to solve. And are we at the end of day adding value to the business?

    There are some underlying factors that could help both the situation and be our guiding force to make the system more productive.

    In this session, Smita Mishra, will provide a new and enlightening perspective on the diverse world of software testing. She will share her discussions, research, and findings from all angles and leaders within the software testing community. You will learn both the myths and facts around the need for diversity in our industry. And most importantly, you will leave this session with a new way of thinking around how the future looks for diversity in the workplace.

    Note : Can do as a 20 minute talk too