Suyash Dubey | Posted on | 2 min Read

[xyz-ihs snippet=”quickLinks-Appium”]
 
Appium is an open source mobile app UI testing framework. You can test all types of mobile apps and perform automation test on physical devices as well as on emulators and simulators. Appium mobile testing does not have a dependency on mobile device OS and it supports cross-platform app testing as a single API works for both Android and iOS. Appium supports many popular languages like C, PHP, Python, C#, Java, Ruby, JavaScript, etc.
 

What is Appium Mobile Testing?

 
When Appium is installed then a server is set up on your machine that exposes the REST API. It receives a command request from the client and executes that command on Android or iOS mobile devices. Then it responds back with an HTTP response. It uses mobile test automation frameworks like Apple instruments or UIAutomator2 to drive the UI of apps.
 

Approaches to Test Automation

 
There is two approaches for mobile test automation, Image-based and Object-based approach. Let’s understand both in detail.
 

Image-Based Approach for Test Automation

 
This technique of object identification is based on the image processing attributes of the objects in the Application Under Test (AUT). Example: Automate user options like “click, type, drag-drop, mouse actions, etc.”
 

Visual verification of the expected output

 
• Not dependent on the platform underneath
• Can be used to automate emulators as well as a real device.
 
Image based approach

The object-based approach of test automation

 
This technique of test automation is based on recognizing the nativity of the objects in AUT. This nativity reorganization process for each individual object in the application is carried out using different attributes that are assigned to the object.
 
It is used to extract the application object identifier with its properties from the actual native operating system source code, just like the developer used. This is an accurate and fast method to recognize the buttons, lists and other objects used by the application.
 
One drawback of the object-based approach is that the recognition of the individual attributes of the object involved restricts these techniques ability to function in test scenarios that require third-party application access. This reduces the automation coverage of utilizing this technique.
 
Object based approach

Which approach should we choose?

 
As we have seen, both approaches have their pros and cons. To get better results, you can merge both approaches and think about devising a hybrid test automation solution.
 
The combination of OCR (image based) and native (object-based) approach allows users to build a single script that will be portable across different devices. It will make your automation robust and efficient and allows the users to confidently detect the relevant native and GUI defect within the mobile application.
 

Appium Overview and Architecture

 
Appium is an HTTP server that manages WebDriver sessions. On iOS devices, Appium proxies command to a UI automation script running on Mac Instruments environment. Apple provides an application called instruments which are used to do a lot of activities like profiling, controlling and building iOS apps. It also provides an automation component where you can write some commands in JavaScript which uses UIAutomation APIs which interact with the app user interface. Appium mobile automation uses these same libraries to automate iOS apps.

Appium Overview and Architecture

The Webdriver Script sends a command in the form of HTTP (JSWP) to the Appium Server. Then the Appium Server will then decide as per the request which driver should be initiated. So, in this case, the Appium Server will initiate the XCUITest driver and it will pass the request to the WebdriverAgent which is an IPA (WebdriverAgent.xcproj) developed by Facebook. WebdriverAgent is responsible to send the command to the Application Under Test (AUT) to carry out the actions in the app. Then the response will be sent to the Webdriver Script through the Appium server.
 
Only iOS 9.3 and above version are supported by the XCUITest Driver. You can find all the capabilities for XCUITest Driver in the link mentioned below.

https://github.com/appium/appium-xcuitest-driver

UI Automation Server flow diagram

The situation is very similar in the case of Android where Appium proxies command to a UIAutomator2 test case running on the device. UIAutomator2 is Android’s UI automation framework which supports running JUnit test cases directly into the device into the command line. It uses Java as the programing language but Appium will make it run from any of the web drivers supported languages.
 
To answer the question “what is Appium automation?”, let’s have a look at the Appium philosophy.
 
Appium philosophy
Appium mobile testing is required for proper execution of continuous integration as it speeds up the overall testing process. Appium mobile testing helps to run the repetitive test which would take more time to perform manually. This is why appium mobile testing is the preferred choice for the developers when it comes to test automation.
 
In the next blog, we will learn more about Appium mobile testing and how to install/configure the Appium setup on a windows machine.

 
Related Articles:

  • How to use Appium Inspector for Test Automation
  • Appium Setup for Windows
  • Starting Appium Server and launching the app from code
  • How To Install Appium On A Mac Machine
  • Appium vs Espresso: The Most Popular Automation Testing Framework in 2019
  • Suyash Dubey | Posted on | 2 min Read

    End to end testing is done to make sure that the application behaves as expected and the flow of actions from starting to end is complete without any issue. To explain with an example, suppose you are the end user and you are using the app to book a flight. So first you will launch the app and click on the flight’s icon on the home page. Then you will enter the destination, date and other required details. Now you will choose your preferred flight, book the seat, enter the passenger details and make the payment. Once this is done, you will get the ticket and a follow-up email on your registered email ID.
     
    Now in this scenario, if the screen takes a lot of time to load the next page or if the book button does not work then this will be an unpleasant experience for the user. So we can figure out if there are any issues from starting to the end of the process. It’s not just about the UI functioning but also the data encryption and security, information flow between other internally used platforms integrated to the app, proper functioning of the firewall and more. This is where end to end testing comes into the picture to make sure that everything works well under any circumstances.
     

    How to Perform End to End Testing

    While performing end to end testing the first thing to do is to analyze the requirements and set up the test environment. Then you need to evaluate the main system with the connected subsystems and define the responsibilities of all systems involved. Make a list of the testing methods and the description of the standards to be followed. Once that is done you can create the test cases and track the requirement matrix. Finally, you need to save the output and input data before testing each system.
     

    Measuring the success of the end to end testing

    To perform end to end testing efficiently and save time and effort, a matrix should be created. Some parameters should be defined to gauge the success of the testing performed. These measurements will help you define the testing matrix:
     
    Test case status: A proper visualization of the test cases prepared can be observed through graphs and compared with the number of tests that were initially planned.
    Tracking Test progress: This measurement will help you to get the details of the tests completed on a weekly basis. It will be easy to keep a track of the test that failed and those that passed.
    Defect details: Tracking of the bugs occurred and the issues surfaced should be done one a weekly basis and keeping a track of the defects that were opened and closed on the basis of priority.
    Environment availability: Here we need to take a note of the amount of time allotted for running a test in an environment and the time actually spent on performing end to end testing.
     

    Best Practices to Perform End to End Testing

    End to end testing can be very time consuming and we can save some time and effort by following some steps. It is always better to plan in advance before initiating the testing process.
     
    Prioritize: Chances of defect increases as the test cases become complex with more components and it becomes difficult to debug them. Therefore it is better to perform unit testing and integration testing to resolve issues that are easier to detect. After initiating the End to end testing you can also start doing smoke and sanity testing to keep an eye on the high-risk scenarios.
    Manage the Environment: The requirements need to be documented and the system administrator needs to be informed about it to meet the requirements before starting the testing. The system setup should be proficient enough to run the test cases and keep your staging environment close to the production.
    Optimize: After test completion, you need to clear the test data so that the environment is restored and can be used for testing again. This will make the environment ready to start at any moment.
    Risk Analysis: Focus on the features that are crucial and on failure can cause a high risk. Prepare a risk assessment matrix which will come in handy in these situations.
    Limit Exception testing: Use low-level unit testing and integration testing for exception scenarios and use end to end testing to deal with typical user scenarios.
     

    Conclusion

    With the rapid enhancements in the app technology and the increasing use of technologies like IOT, the development teams have to make sure that the app has a smooth functionality. The end users can be very choosy in this competitive market and so it’s necessary to perform end to end testing of applications to provide a good user experience.

     
    Related Articles:

  • Start to End Guide for Mobile App Testing
  • 5 Best Practices App Testing Companies Must Follow for Success
  • Top 5 Tips for Successful Mobile Application Testing
  • Mobile Devops+Agile – Challenges and Keys to Success
  • Functional Testing Vs Non-Functional Testing
  • Suyash Dubey | Posted on | 2 min Read

    Software testing has evolved a lot since the time when the waterfall model was used. All the work was done in a sequential manner and only after the development phase was complete the testers used to test the product. Testers used to find bugs but a lot of time and energy was wasted in the process to rebuild and code again.

    Now companies are using an Agile model where the main goal is to find the bugs in continuous development, fix them quickly and release the app faster. There is a need to improve the automated testing process to complement the manual testing. More emphasis has been given to CI, CD, and DevOps to make the software development effective.

    There has been a considerable change in the functioning of testing tools and test automation frameworks. The most important change is the introduction of AI in a test automation strategy.

    According to G2Crowd, AI-powered bots are expected to cut business cost by $8 billion by 2022. Testing bots are already empowering automation testing and will play a major role in reducing the time and effort spent in mobile app testing.

    Let’s have a look at how AI is breaking new ground for test automation.

    1. Running automated tests that matter

    It’s not a good strategy to run your entire test suite due to a very small change in your app that you couldn’t trace. You are probably already generating a lot of data from your test runs if you are doing continuous integration. But it will take a lot of time to go through the data and search for common patterns. So you need to know if you make a small change in code then what is the minimum number of test you need to run to figure out if the change is needed or not.

    2. Reducing maintenance and eliminating flaky test

    We can run several automated tests on a daily basis to ensure the functionalities of the app are still stable. Although, if we find out that half of this test failed. In that case, we would need to spend a lot of time to troubleshoot the failures and investigate the cause. Then there is a need to find ways to fix the failures and then work on the changes.



    software maintainance

    Using AI we can avoid issues and start detecting issues in the test before they even occur. So instead of reacting to it, we can proactively fix tests. AI can figure out which tests are stable or flaky based on the number of test runs and it can tell us what test needs to be modified to ensure test runs are stable. AI can also handle test running on different resolutions and can optimize the wait time used in the test to wait for the page to load.

    3. Dependencies on other modules

    Writing a test for systems having dependencies on other modules is also a challenge. AI can help us to mock responses from a database or server. The AI can start recording server responses once we have written the test and have run them for a period of time. So the next time we run the test it will access the stored responses and will continue to run without any obstacles. This will speed up the process as the delay in response is eliminated and the server or physical database is no more needed.

    4. Learning from production data

    Real user data can be used to create an automated test and with the help of AI, we can observe and learn how the customer is using our product. We can identify common actions such as search option, using filters, login/logout, etc and compile them into reusable components. These components can be used for our test as well. Therefore, we have an actual test written by AI based on the real data along with the reusable components.

    5. Easy execution of tests and speeding up the release

    In automation testing, the time and effort it takes to write and execute a test is a major challenge due to the complexity of the test automation tools, app, and programing language used. To mitigate these problems AI-based tools are being used. The use of dynamic locators and reusable components has made it possible to write and execute a test in hours which earlier used to take a week.

    Conclusion

    The DevOps theory says test early, test often, but this puts a lot of responsibility on the testing team. Also, it’s not feasible for testing teams to spend time to do exploratory testing manually for each new release. AI-based tools can perform codeless automation testing which will save us time and resources and give the testers some space to breathe.

     
    Related Articles:

  • The Role of Artificial Intelligence in Transforming DevOps
  • How to use Appium Inspector for Test Automation
  • Selenium Testing For Effective Test Automation
  • 8 Common Appium Mobile Test Automation Mistakes and How to Avoid Them
  • pCloudy Among Top 3 Test Automation Software
  • Suyash Dubey | Posted on | 2 min Read

    Do you know why Google has selected Gradle as the build system for Android Studio? Many Android developers work in a heterogeneous environment with different technology stacks. Gradle solves some of the hardest problems faced by the developers like how to automate the testing of apps and how to manage dependencies and variations that allow professional developers to develop variations of their app with one click. This is why pCloudy came up with a new update where you can now run Espresso with Gradle on pCloudy devices. Let’s get a brief introduction about Espresso and Gradle before we learn how to run Espresso with Gradle on pCloudy devices.
     
    Espresso is a testing framework for Android which automatically synchronizes your test actions with the UI of your app. It also let the test wait until all the background activities have finished.
     
    Gradle is an open source advanced build tool that allows seamless execution of tasks. It uses domain specific language and it is based on Groovy and Kotlin. It is a plugin based system so if you want to automate the task of building some package from sources then you can write the complete plugging in Java and share it with the world.
     
    Gradle allows efficient and repeatable use of espresso and Test Orchestrator which allows automated yet fine-tuned control of the way you run your test. You can decide which specific test suites to be run to distribute the test cases across different devices. It is preferred by developers as it allows deep unit and functional testing rigs.
     

    Power up your DevOps with Espresso and Gradle on pCloudy

    You would be running Espresso on your machine using Android Studio and Gradle. However, the test would be running on pCloudy device. There is a pCloudy Espresso script that is provided by us and you need to put that espresso script in the workspace of the project. Along with the Gradle script, you will also get a config file. The gradle script will read input parameters from this config file.
     
    Then you run Gradle to invoke the script which will upload your Application APK, test APK and other APK files to pCloudy. It would acquire a device to run your test on, it would execute those tests it will report back the status of what is happening into the Android Studio. After the test cases are run you can see the detailed reports and after that gradle script will release the device for other users to use.
     
    There is a one-time setup that you need to do to place the gradle script in the workspace and you need to fill in the configuration file. So when you run the gradle script it will complete all the task for you and generate the report.
     

    Steps to run Espresso with Gradle on pcloudy

     
    1. Download the espresso starter pack from here and Unzip it
    2. You will find three files,
    a. pCloudy_Espresso.jar
    b. Config.properties
    c. build.gradle.SAMPLE
    (This is a sample build.gradle that shows how to change your build.gradle to add the pCloudy Espresso jar.)
    3. Copy the contents of the file build.gradle.Sample to the build.gradle file of your Android Application to register the new Gradle task and update as appropriate (see the image below)
     
    33

    4. Place the config.properties file in your android workspace in the same directory as your build.gradle file.
     
    sdgef
    5. Update the config.properties file as guided in the comments in the file.

    6. In your Android workspace run the command by typing the name of the gradle task as below.
     
    tttt
    7. Once the test execution is complete you will get a URL of the test execution report. Some fields in the report are empty right now. We will fix them in subsequent phases.
     
    rrr
    The use of gradle has made it easier to run Espresso test on pCloudy devices. We can just use the configuration file and easily run the test scripts on pCloudy devices. This will save time and effort as it further simplifies the app testing process in pCloudy.
     
    You can watch our webinar for more information.

     
    Related Articles:

  • How to Run Espresso Test on Remote Devices
  • Appium vs Espresso: The Most Popular Automation Testing Framework in 2019
  • Run Espresso on pCloudy using pCoudy Utility
  • Automated Testing Using Espresso
  • Espresso with pCloudy.com
  • Priyanka Charak | Posted on | 2 min Read

    Importance of Test Automation

    QA & testing become indomitable especially in the context of API testing. The development teams benefit from automated integration tests at API levels as it helps them in easy integration of apps and higher product adoption rate, ultimately helping the firm increase their profits. API layer is frequently ignored while developing and executing automated tests and mostly end to end user interface driven tests are executed to check if final application works perfectly after integration. API layer is not to be ignored and for a QA strategy to be successful, it should consider API testing as a fundamental part of the overall testing strategy.

     

    Let us understand what API testing means:

     

    Application Programming Interfaces (APIs) are a set of programs that allow two or more software to communicate with each other and be able to exchange data smoothly. In the testing world, testing APIs is different than other types of testing. UI and functional testing is often given importance while API testing is ignored. The foremost responsibility of a tester is to ensure that API testing is performed in order to attain seamless functioning, performance, and the reliability of different data-driven applications and systems by verifying exchanges and communications between applications, systems, databases, and networks.

     

    API Testing Assures

     

    While integration testing has been a component of the test automation pyramid since its inception, it’s also been the most undermined layer in functional test automation. All tests that supercede the scope of an individual unit, and can’t be covered by unit testing are often executed through user interface-driven, end-to-end test scenarios. But while end-to-end tests can be seen as the ultimate integration test, where all components come together, having too many of them leads to test suites that take unnecessarily long to execute, and that are hard to maintain and keep stable. It’s often possible to test important parts of an application’s technical and business logic through an API. To understand the importance of API Testing more in depth, let’s understand the undermentioned benefits of Automated API testing:

     

    1. Wider Scope than Unit testing
    2. More Stability and Speed as compared to end-to-end tests
    3. Introducing API Level Testing more seriously- A significant decision in Automation Testing

     

    Manual Explore Test

     

    Wider Scope than Unit testing:

    Unit tests are often run on small group of components within a single application layer. Issues are often not detected in distributed apps where one application layer ends and the next one begins. In order validate if the components are communicating as desired, API level tests are designed. So, the need of a strong API testing Strategy is of dire importance at the integration level especially when it comes to integrating with external components. Managing the testing environment is a critical task to perform especially when the components are with different teams.

     

    More Stability and Speed as compared to end-to-end tests:

    It is true that end-to-end tests are vaster in scope than API testing. They cover all the layers and components of the application but API tests cope up with its loss with its stability and speed. API tests are certainly faster than the former. End-to-end tests take longer time to load browsers and screens whereas API tests are based on individual request-response interactions (for example in JSON or XML format)which makes the execution faster with shorter feedback cycles. Moreover, user interfaces tend to change frequently due to various user change requests and adherence to advanced front end frameworks API tends to be more stable in terms of Interfaces that yields fewer faults and requires less maintenance.

     

    Introducing API Level Testing more seriously- A significant decision in Automation Testing

    API level integration testing should be a mandatory aspect of any automated testing agenda. It could be an unnerving move for those with no prior expertise in this area. It is mostly the tester’s cup of tea more than the developer’s as it can go beyond the component or application. The absence of user interface can be a blocker in accessing and testing the API. But you can opt from various automated API testing tools available in the market. Tools like RestAssured, SoapUI, and Postman are preferred among the most.

     

    Conclusion

    In the era of Artificial intelligence and IoT, the need for API tests is becoming intense. Automated API Testing strategy is the most effective strategy for faster delivery and reduced human inaccuracies. With the help of the tools, more API test requirements could be covered and API testing could be made more advantageous for secured and quality deployment of mobile applications in shorter time. Why don’t you integrate your automation framework using pCloudy’s API and make your app release faster?

    Try pCloudy for free now.

    Appium Desktop

     

    Appium Desktop is a point-and-click interface for using Appium and inspecting your app’s structure. With this new feature you will be able to run Inspector sessions on pCloudy. You just have to login in to your registered account, set up the desired capabilities for your test appropriately, and you’ll be able to drive your app remotely using Appium Desktop.

     

    Let’s understand this in detail:

    Overview

    Appium Desktop is a new open source GUI application for Windows, Mac, and Linux which gives you the power of the Appium automation server in a more organized manner with a flexible UI. From an Appium Beginner’s perspective – if you want to write test scripts with Appium, you would need 2 things.

     

    First, you would need to start the Appium Server. And second, you would also need a mechanism using which you can identify the controls (buttons, text boxes etc) in the mobile app which you want to automate.

    So Appium Desktop is a combination of two essential components of Appium:

     

    • Appium Server: Server instance for enabling testing (and test automation) of apps.
    • Appium Inspector: For inspecting and getting all the details of UI elements of your apps.

    Advantages of Appium Desktop

    • The Appium Desktop tool enables users to work with Appium on their desktops and use Inspector for yet better analysis of their apps.
    • Allows using desired capabilities and presets configuration for convenient use.
    • Provides the ability to switch between web-view and native app view from inspector.
    • Provides an action recorder and the code generator.

     

    How to install Appium Desktop

    Refer the link given below to know how and from where to install Appium Desktop.

    http://www.automationtestinghub.com/appium-desktop/

     

    Pre-requisites to use the tools effectively

    • Appium Desktop installed on your machine
    • APK or IPA file
    • pCloudy Account

     

    Let’s see the steps in detail

    1.Open Appium Desktop in your system and click on Start Inspector Session as shown in below screenshot.

     

    appium 2

     

    2. Click on Select Cloud Providers.

     

    Appium pCloudy 2

     

    2.1 Click on the pCloudy logo and then click on done.

    appium pCloudy 3

    2.2 You will be directed to the desired capabilities page of pCloudy in Appium Desktop.

    appium pCloudy 4

    2.3 Enter the below mentioned field details

    • pCloudy Host
    • pCloudy User Name
    • pCloudy API Key

     

    appium 5

    2.4 Once field details are inserted, set the Desired Capabilities.

    These are used to inform Appium Server that what kind of platform and application you want to automate. Click here to know about Desired Capabilities.

     

    appium pCloudy 5

    Note:

    By default, Booking duration is 10 minutes. If you wish to change the device duration, you have to change the number of minutes in the desired capabilities. For example, if you to keep the duration for 15 minutes, you have to set desired capabilities as ” pCloudy_DurationInMinutes”, 15 “

     

    3. Click on Start Session once you have entered the field details and set the Desired Capabilities.

     

    appium pCloudy 6

     

    4. Once session has started, login to your registered pCloudy account .

    After login go to Reports section and then go to My Active Session. Click this icon present under Action. You will be directed to LIVE VIEW page.

     

    Live View

    Note:

    Device will be connected as per the set Desired Capabilities. Once your app gets launched on the device you will able to see Appium Desktop view.

     

    5.Click on Select Element to start inspection .

     

    select element

    Example: In the below screenshot “Refuse” has been selected.

     

    Refuse

     

    6.Once you select the element you will be able to see interactions .

     

    Appium Demo

    Note:

    • There are three interaction given in Appium Desktop contributors. These are “Tap”, “Send keys” and “Clear” as shown in the screenshot.

     

    7. According to the selected interaction action will be performed on the device page.

     

    Tap

    As shown in the screenshot Tap has been selected.

     

    8.Click on this X icon to End the session.

     

    End Session

    Note:

    As soon as you end the session device will get released from Live view.

     

    appium 7

    Appium 1.9.0

     

    Having Appium 1.9.0 out, we find it to be a feature release, comprising multiple updates. Some of the key features brought forward in this release update are:

     

    a. Appium users have been facing unlocking device issues with older versions of Appium. This had been a big headache but Appium has resolved this issue with update 1.9.0. Even if the device remains locked, Appium 1.9.0 is very much capable to unlock the device and run your script smoothly.

     

    b. If the object is not identified anywhere in the script, you will be able to locate the error in Appium logs itself.

     

    c. Appium 1.9.0 comes with much faster execution compared to its older versions.

     

    d. The log information is more insightful and detailed than before.

     

    Let us have a look at Feature release updates below:
    (Source: https://github.com/appium/appium/releases)

     

    General

    • Full W3C Specification support.
    • Add full beta of Espresso driver
      for Android automation (used by specifying automationName capability to be
      “Espresso”).
    • Add driver for Samsung Tizen devices
    • Add -image find element strategy,
    • Fix –async-trace server argument, and rename as –long-stacktrace
    • Sample code has been moved into the main repository to aid in maintenance.
    • Fix status retrieval to speed up performance.

    iOS

    • Add support for Xcode 10 beta 5 and iOS 12 beta 5.
    • Add preliminary support for MacOS Mojave beta.
    • Add face id biometric support.
    • Fix retrieval of device time, and add optional format parameter.
    • Do not crash if there is no idevicesyslog when ending session.
    • Handle frames when page changes in Safari.
    • Add desired capabilities:
      • remoteDebugProxy – port or Unix domain socket on which a proxy for the
        remote debugger sits.
      • safariGarbageCollect – turn on/off JS garbage collection in Safari.
      • showSafariNetworkLog – print Safari network logs in the Appium server logs.
      • mjpegServerPort – port to which screenshots can be streamed.
    • Fix handling of settings updates, so simulators are not restarted unnecessarily.
    • Allow pulling of folder from real devices.
    • Add mobile: getContexts execute function, to retrieve meta-information (title,
      url, etc.) about available contexts.
    • Fix certificate retrieval and handling.
    • Fix cookie handling, to allow secure cookies.
    • Fix Safari timeout issues.
    • Add support to retrieve Safari network logs, as safariNetwork log type.

    Android

    • Update Chromedriver to v2.41.
    • Get Chrome version for Webviews in Android 7+, to find correct Chromedriver.
    • Make sure UiAutomator processes are cleaned up during test.
    • Fix handling of autoWebview capability.
    • New desired capabilities:
      • mjpegScreenshotUrl – url to stream screenshots to.
      • chromedriverUseSystemExecutable – boolean flag to use the default Chromedriver
        installed with Appium, avoiding any attempt to find correct Chromedriver.
      • disableWindowAnimation – disable window animations on device (now available
        on UiAutomator and UiAutomator2).
      • pageLoadStrategy – page load strategy for Chromedriver.
    • Allow test-only APKs to be installed.
    • Fix implicit wait handling for finding elements.
    • Better handle Unicode IME installation.
    • Relax package validation logic.
    • Fix error in UiAutomator searches with nested quotes.
    • Perform accessibility refresh when needed on UiAutomator2.
    • Improve logic for determining if apps need upgrade.
    • Fix screen recording to allow longer recordings, up to 30 minutes.

     

    Key challenge with Appium 1.9.0

    Now, we bring to you the challenge area that we have been able to identify with this release.

    • Even after using the capability automationName as uiautomatortool, we were unable to locate the object in >=Android v8.0 devices

    If you have been able to find out any workaround for this issue mentioned above, kindly share it with us in the comments section.

    pCloudy Among Top 3

     

    We are proud to announce that pCloudy has been ranked among the top 3 Test Automation Software products based on the user satisfaction. With this, we have got another feather added in our cap after achieving the 50k milestone. It has become possible only because of your constant trust and support that motivates us to keep growing stronger.

     

    Check out this list of the top Test Automation Software products based on user satisfaction. As per G2Crowd, the product’s satisfaction score is calculated by a proprietary algorithm that factors in real-user satisfaction ratings from review data. Check yourself.

     

    Top 15 Test Automation Testing Platforms

    pCloudy 5.0

     

    pCloudy is a unified mobile app testing platform which is trusted by its users for its excellent performance. We have more than 30,000 users across the globe, and we have received an overwhelming response for our platform. From bot testing to crowd testing, pCloudy has always been a front runner in the market. And with the launch of pCloudy 5.0, we are up for the challenge once again. It is a re-imagined and re-worked upon platform created in-line with intelligence to meet the market demands and accelerate delivery.

     

    Let us have a look at what’s new here:

     

     

     

    Features

     

    a. iOS Connect
    b. Automation Studio
    c. Follow Me

     

    a) iOS Connect: One of the very powerful features that we added is the iOS Connect. The major challenge iOS developers had been facing was the debugging of their iOS apps because of the difficult Apple guidelines regarding building any utility . We are proud to say that we have been successful in cracking that.
    With iOS Connect, you can connect to an iOS Device which is present remotely and access the device as if the device is connected to your computer. With iOS Connect we are bridging the gap for the iOS development life cycle.

     

    iOS Connect

     

    b) Automation Studio: It is another promising feature that can revolutionize mobile app automation. We now have an in-built automation studio in pCloudy platform where you can access the devices to record your test scripts and execute it in parallel on multiple devices without writing any code.

     

    There’s something more to it! If you already have your projects on Appium you can record your new workflows and export it to Appium Java format. This new integration would not only enable every user to start creating Automation scripts but it will also help Appium users to speed up their Automation. This makes pCloudy truly a Unified app testing platform.

     

    Automation Studio Launch

     

    c) Follow me: It is again one of the ‘wow’ features of pCloudy 5.0. This feature can speed up your App Testing exponentially. Follow me allows you to test your apps on 3 unique device while performing your test on only 1 device, thus saving your testing time multi-folds.

     

    Follow Me

     

    Re-Imagined UI

     

    It has been designed to give a leaner, simpler and faster user experience. The look and feel of the pCloudy platform has been transformed keeping in mind the requirements, usability and ease of our users. All the pages have been made more intuitive. To simplify, we have grouped the actions together to save your time in figuring out the next step.

     

    a. True Collaboration
    b. Global File Storage
    c. Comprehensive reports at a single stop
    d. Test Scheduler

     

    a) True Collaboration: We have introduced a powerful feature on our revamped Device Interaction page. Now, you can take the screenshot of the action you are performing and see the screenshot next to the device. But, the icing on the cake is that you can edit the screenshot, save it and log a bug directly to the JIRA enabling true collaboration between the developers and testers.

     

    UI Design

     

    b) Global File Storage: Heeding to the demands of our users we have reduced the clicks to perform any action on the File browsing /storage page. The file uploaded once will be available across all the different locations we have. It will also allow sharing of files across teams.

     

    Global File Storage

     

    c) Comprehensive reports at a single stop: Now, to make the user experience simpler and faster, we have placed all your reports at single stop be it manual or automation across all locations. Not just that, you can see all reports in the same format with much detailed information. Raising bugs after analyzing reports is also possible from here.

     

    comprehensive-reports-at-a-single-stop

     

    d) Test Scheduler: We have re-designed this page based on a Guided interface where the interactions are more thoughtful, straightforward, and guide you to the next step. It needs zero learning to run automation scripts on multiple devices.

     

    Test Scheduler

     

    pCloudy 5.0 is another breakthrough for us. After launching pCloudy 5.0, it is time to get feedback on a larger scale. We’re going to continue improving the UI, the navigation, and add some futuristic features to make your app testing simpler and faster. While we do that, we’d love to continue getting feedback.

    Selenium

     

    All automation development and testing engineers are very well aware of ‘Selenium’ which is the de-facto testing framework for web applications. With the changing mobile landscape, Appium is the most used framework for testing mobile apps. But is it possible to use Selenium for mobile application testing? The direct answer is ‘Not really’ but there is a long and different approach to this answer.

     

    Appium is the most popular mobile application test framework which can be used to test all native, hybrid, and mobile web apps for iOS and Android. It is also used for cross browser testing that involves testing on real devices and real browsers. The fact is that Appium has got its roots from Selenium and it uses JSONWireProtocol to interact with iOS and Android apps using Selenium’s webdriver.

     

    Appium/Selenium Architecture

    In a typical architecture, Appium is an HTTP server written in Node.js that produces and handles multiple WebDriver sessions. Appium starts tests on the device and gets commands from the main Appium server. The server is mainly the same as the Selenium server that gets HTTP requests from Selenium client libraries.

     

    The image below is an example to show how test scripts can run on our pCloudy platform. Don’t forget to watch the video on ‘How to run Appium scripts on pCloudy‘ here.

    Appium pCloudy

    Now that we know a bit about Selenium and Appium testing framework, let us understand the new term in Android app testing – ‘Selendroid’ which is a framework based on Selenium for automated app testing.

     

    In other words, Selendroid is a test automation framework which can interact with multiple devices concurrently that can be tested without any modifications. It is also known as “Selenium for Android” for testing native and hybrid mobile apps and mobile web.

     

    Let us have a look at some of the features of Selendroid:

    a) It is an Open Source and is free to use
    b) It supports all Android versions
    c) It supports Selenium as a scripting language
    d) It supports webdriver compatible languages eg: Perl, Java, C#
    e) It can work on both emulators and real devices
    f) It works on all native, hybrid and web-based apps
    g) It is effective while executing native and cloud-based apps as it supports Selenium grid
    h) It is very easy to implement.
    i) With its feature called ‘Hotplugging’, it can recognize the new devices automatically.
    j) It has a built-in Inspector to simplify test case development.
    k) It can support various Android API versions from Android API 10 to Android API 19.
    l) It can fully support parallel testing by integrating a node into Selenium grid.

     

    Selendroid Architecture:
    Selendroid is based on the Android Instrumentation framework where tests are written using Selenium Webdriver client API, which is also called as Selenium 2 client. Hence, it can be fully integrated with existing Selenium frameworks. It is also compatible with JSON Wire Protocol.
    Let us have a look at the architecture of Selendroid:

    Selenium for Mobile App Testing

    To conclude, Selenium has paved its path as a de-facto web test automation framework and Appium is providing high-level APIs that can be speedily adopted by Selenium developers, and it helps simplify the tests.