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”).
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.
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.
With growing demand in the market, enterprise mobility has undergone a paradigm shift. Speed, quality and user-friendliness are the need of the hour for modern enterprises. Mobile apps have become a major source of revenue boosters for enterprises today.
It is a well-known fact today that the numbers of platforms and device types are more varied now than ever before. Customers continue to demand the latest devices, features and functionality, as well as increased mobility and accessibility. With the proliferation of mobile and portable device platforms and the Internet of Things, the workload of developers, and especially testers, has greatly increased. As traditional testing practices of manual app testing prove unable to keep up with the demand, businesses of all types are experiencing significant product delivery delays and, in some cases, costly product defects. Naturally, there is a growing demand for more efficient and cost-effective testing across all platforms.
Appium: Addressing the complexities of mobile app testing
To address the demands of complex testing needs, an effective mobile app testing platform is needed which is secure, supports functional and automated testing without losing an eye on the speed and quality. So, in this era where consumers have adopted smartphones, use multi-platforms to access mobile devices, do you think your app is delivering the best experience to your users? If not, then Appium is the solution. Appium is an open source, cross-platform mobile automation tool to automate the test for native, hybrid and mobile web apps.
Appium being one of the best solutions for automation comes with support for Android and iOS real devices. In fact, it also comes with support for simulators and emulators. At its core, it an HTTP server written in node.js. It has similar working as Selenium which actually perceives HTTP requests from selenium client libraries and handles those requests in different ways depending upon the platforms.
Being the best and widely used option available today in the market, it is widely adopted by modern enterprises to create a comprehensive mobile automation framework. With a growing user base and a stronger community, it is easier to adopt and implement which is why enterprises are adopting it on a very large scale. The best thing about Appium is that it lets you write in any language supported by Selenium using WebDriver API.
While testing an Android app, Appium automates it with the help of UIAutomator library, a part of Android SDK. This actually makes the learning and implementation easier for Selenium users. Having the capabilities to test on both Android and iOS devices makes it the best cross-platform mobile app test automation tool. Automation scripts can be run on real Android and iOS devices using the WebDriver JSON Wire protocol.
Appium starts a test case on the device that spawns a server and listens for proxy commands. On iOS, Appium proxies command to a UIAutomation script running in instruments.
Source: cloud.netlifyusercontent.com
Appium: Why should you Choose?
Opens the door to cross-platform mobile testing which means the same test would work on multiple platforms.
Unlike other tools, it doesn’t require any third-party code to compile into your app to make it automation friendly.
Enables a variety of frameworks and programming languages by wrapping the vendor-provided frameworks in the WebDriver API that specifies a client-server protocol.
For a tester, the programming language and the whole experience would remain same irrespective of the automating platform as all complexities are under the hood of Appium server
Possible to Execute multiple tests on multiple platforms without the need to manage them.
Able to run test sequences with hundreds of test cases, across multiple platforms.
Enables the view and share of device interactions with colleagues using in real-time built-in collaborative screen casting
On-demand testing and leverage results directly
It supports automation frameworks like JUnit and TestNG
Appium has some challenges when it comes to scaling up with continuous integration. pCloudy brings to you a solution for this where you can automate your app tests with zero learning. Sign up on pCloudy and automate your tests on Appium for faster and better delivery of apps.
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.
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:
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.
pCloudy understands that businesses need their apps to be rolled out faster than before, without bugs, crashes, functionality issues, UI glitches, memory drainage and well, everything wrong with every app you uninstalled on your phone within minutes of using them.
We simplify testing. More importantly, this platform will equip, enable and guide you to provide single-click access solutions to the battling issues that can easily drive a developer nuts. This platform allows you to test real Android and IOS devices directly from your browser using real Mobile Devices to click-and-perform Manual and Automated Testing for maximum coverage.
Here are the most frequently used App Testing Use Cases you might be interested in.
When it comes to the more favorable app in the market, the true measure of a developer’s success is the app’s retention rate. An app has to have the right mix of touch, feel and design for the best user experience that represents your business value; as well as the functionality and performance true to the needs of the user and his device health.
With touch devices everywhere now, more than 3 million apps for those devices are available for download and the numbers keep on increasing. App users are increasingly demanding too. When reports have shown that Android users are far more likely to uninstall apps than iOS users for a number of reasons, it becomes easier to collate it with the information that currently Android users are more than four times the market share of iOS devices. Both have a duopoly of 99.6 percent in smartphones. At the same time, unlike iOS, Android is pretty fragmented. Which means, your app must be compatible with tons of device versions and Android versions.
Hence, more and more businesses need to churn out apps for their growing users, and developers having to churn out more and more apps faster, with qualitative inspection of each application that shouldn’t lag, crash, have bugs or glitches, drain phone memory or battery and work anywhere in the world from a smartphone. Added to that, 70 percent of apps get deleted by users within a couple of minutes of their installation.
That’s a tall order! And technology is the only way to sway the game in our favor.
If your app has to compete on the qualitative level of a 5 star rated app in the app store, it needs a thorough and quick check before you hit the launch button. In-house testing within companies can only do so much, there aren’t enough device in-house, there is a lack of right tools or the testing cycles take far too long to make it to the market before ten new apps pop up in the app store. Low ratings, mean low revenue.
How pCloudy is changing the game
Machines and intelligent technology are the newest recruits to the workforce in the world. We at pCloudy have always worked with an approach to apply technology to exponentially enhance the ability of individuals, teams, and businesses.
pCloudy’s helps you create the magical combination of your internal workforce and intelligent platform. With pCloudy, your teams get a wide spectrum of the latest Android and iOS devices in the market to maximize testing coverage, cognitive software bots to run quick, thorough checks on your App and the power of the crowd so that you are aware of what your users think about your app.
pCloudy has developed a Single Click App certification feature within its platform enabling testers to deliver on faster test cycles for users whose attention span is shorter & shorter with every bug, crash, drain or slip that an app can suffer from. Reality check is critical for every developer. So is the need for it to be quicker.
Today pCloudy is working with global companies who have often realized not just the growing potential of the market, but also the need for a crucial wing for testing with pCloudy’s platform. This is probably due to a growing desire from companies across sizes to fully understand the buyers experience consistently.
Watch out this space as we unveil the power of pCloudy’s Test Cloud over next couple of weeks.
Mobile is the key to the digital world in today’s era. The rise of Mobile Internet has ensured that we all are going to make most of our digital decisions on a Mobile device (primarily using an App). Mobile Apps are going to be everywhere.
One of the biggest challenges for App Development teams is to ensure that their Apps works on the variety of devices. They need their apps tested on multiple devices before it is released to the market, simply because of the plethora of devices available in the market.
Each mobile from each OEM (Original Equipment Manufacturer) with different specifications is a unique device where the application should be tested.
Practically it is not possible to test the application on each and every mobile device available in the market. But the app must be tested on a large set of the devices depending on the market segment of App under test.
Introduction:
pCloudy is a cloud-based remote mobile app testing platform which allows testing of Android and iOS mobile applications on remote REAL devices. It allows the user to do Manual testing and also facilitate to run test automation on multiple devices in parallel.
It provides a whole lot of statistics like session video, device logs, Screenshots, data usage, memory usage, CPU usage, battery consumption and frame rendering count. The devices are also equipped with Real Operator SIM’s to make MO/MT calls and can receive and send SMS.
Preparing for Manual Test
Before we start the test on pCloudy, we recommend uploading the test application, test data or even test suites to the cloud drive provided by pCloudy. This is the secured location for each user.
Click on the Upload button and select the file from your local system through file explorer. After selecting the file select upload and the file will be uploaded to your cloud drive.
You can also manage the cloud drive by download. These applications can be installed on the devices as explained below.
Performing Manual Test remotely
Based on test requirement, you can search for any specific device by using the filters provided at pCloudy.
(Note: Click on any image for enlarged view)
You can access any device for Instant Access. Also, you can book the device for a longer duration for your planned testing using “Book your Device” link.
After selecting the device just click on the “Connect to a device” button to connect to the device. The below device page will be displayed with all the supported features.
The device is displayed in the middle pane with some features on the right, left and top pane.
The Left pane where the device information is displayed, followed by other tabs like App/Data, Device Settings, Debug and Automation
The top pane with handy features & a timer to show the remaining time & wake up the device and release the device back to the cloud.
The right pane to view the device logs and Performance vitals for application under test.
How to Install the application on the Remote Mobile device?
Install from my App data – enables user to upload app on device.
Push to Device – This feature allows you to transfer your test data to the device.
Upload App – Upload and install an app from your local system.
Once the application is installed you can test the application on REAL Remote Device the way you test the application with the phone in hand. You can use the mouse to give touch gestures to the device. You can click the button, drag the screen or double tap the image.
While doing functional testing on the remote device, you can also monitor the device logs next to the device. Please start the logs from the right page and start monitoring the logs next to the device.
All Mobile App Testing tools at one place: One of the biggest advantages of pCloudy platform is it provides performance statistics like Memory Usage, CPU Usage, Battery usage, Data usage & frame rendering count of the application under test without any extra efforts by the test engineer.
To view this vital statistic on pCloudy platform, please select Performance tab -> Choose an APP -> Select the application under test.
Start navigating through the application to complete the function test flow.
On the right pane, you will start seeing the important vitals of the performance.
On the left pane, you can expand the device settings. All the important frequently used applications are made available to use on the device.
You can perform below actions on the remote device:
Reboot the device remotely
Toggle the Wi-Fi connection
Adjust the volume of the device
Manage the Apps
Open Developers options
Open Play store
Open Device settings
Use Set Phone Location
If your application under test is a location aware app and if it reads the geo-location from the device to provide the necessary results, “Set Phone Location” feature can be used to inject any location on the earth to the device and the device will be teleported to the selected location.
Once you select the “Set Phone Location”, the platform shows the google maps and you can select the location of your choice on this map. The same location is injected to the device.
Other key features during manual tests
You can capture high-resolution screen shots with the skin of the device
Change the orientation of the device to Landscape and portrait
Open the browser from the list of preinstalled browsers
Use the extended keyboard if you want to enter some text on the device. However, for Android ver 5.0 and above you can directly enter the text from your system keyboard.
Check the stack trace (crash logs) if the application is crashed
You can navigate the application with the buttons
Zoom in/out the device shown on the screen
Reset the zoom level to bring the device to default size
Extend the session if the device is available
Wake up the device from sleep mode or push the device to sleep mode
Release the device back to the cloud
Reporting
Under reports folder, you can see the entire device session data for all the devices you used. You can find Videos & Logs (by default platform generates), screen shots and performance data if selected by the user.
Running test automation remotely
pCloudy platform supports test automation on multiple devices in parallel. Below test frameworks are supported for Android platform.
You just need to select the Test platform, Choose the application under test, Test Suite, time to run on single device and test cycle name.
The biggest advantage of this platform is it generates performance vitals for your test automation scripts without you adding any hooks in your scripts. Otherwise, you will be using multiple mobile App testing tools to achieve the same result.
Once the above data is provided, user can select the devices on which the test automation to be run. Once the devices are selected, the user can schedule the test cycle.
The platform will book the devices on your behalf and will start the test automation as soon as the devices are available. Once the execution is over, the user will be notified with an email and user can see the test reports.
APPIUM Test Automation
You can run the Appium test automation scripts directly from Eclipse or Android Studio. The platform provides the plugin for both the IDE’s. Simply copy a small piece of code to your driver code and run the project, select the devices on which this tests to be run.
The “LIVE VIEW” feature will allow you to monitor the test automation runs through video streaming on the platform.
LIVE VIEW
Live view – To see the automation happening on devices
Automation Test Reports
All the test automation reports will be available under Reports folder.
The reports will open in another tab with video, logs and performance data.
To view the performance data for each device, please click on the device icon for each device.
Opkey Integration
pCloudy has seamless integration with OpKey, which is a zero code multi-channel automation tool. A unique combination of Mobile App Testing Tools for manual and Automation testing.
OpKey allows single click recording and generation of automated scripts for Mobile Apps.
You can run the automated scripts on multiple devices on pCloudy directly from OpKey interface.
The quality of App is extremely important for its success in the market. Right devices and right mobile App testing tools are critical ask from every Mobile Dev and Test team. pCloudy with its comprehensive set of devices and tools could be a perfect companion to every Developer and Tester.
TestNG is a testing framework inspired from JUnit and NUnit but introducing new functionalities that make it more powerful and easier to use.
It is an open source automated testing framework; where NG of TestNG means Next Generation. TestNG is similar to JUnit, especially when testing integrated classes.
TestNG eliminates most of the limitations of the older framework and gives the developer the ability to write more flexible and powerful tests with help of easy annotations, grouping, sequencing & parameterizing.
Benefits of TestNG
There are number of benefits but from Selenium perspective, major advantages of TestNG are:
It gives the ability to produce HTML Reports of execution
Annotations made testers life easy
Test cases can be Grouped & Prioritized more easily
Parallel testing is possible
Generates Logs
Data Parameterization is possible
Architecture of the testNG framework
pCloudy
pCloudy platform provides single click access to real Android and IOS devices directly from your browser. Use these real Mobile Devices to click-and-perform Manual Testing and execution of Automation Testing for your App. Integrate our platform with CI for continuous Automation Testing and test your App on multiple real Mobile Devices with every change of your App.
Now it’s very much simple to integrate your existing TestNG project with pCloudy.
It can be a big challenge to build a large scale Mobile Testing Lab from scratch. Look around you and you will see that with every single day, companies in adding mobile apps in their business strategy and with it the mobile app dev and testing market is becoming increasingly competitive, dynamic and fast paced. Older testing methods are becoming obsolete and the utter multiplicity of mobile platforms, devices and networks have made it important for any company to choose the right solution (Mobile Testing Lab) in order to strengthen themselves in the market.
While creating a testing program for these mobile applications can seem like a relentless chore and a massive undertaking, it doesn’t really have to be. Here are a few considerations to choose the right lab strategy for testing your mobile apps.
Key Considerations:
• Compatibility of Device OS, Screens and OEMs: The sheer number of different device variants, OS versions and screen resolutions form a large set of factors even though each of them are significant in their own rights. In 2012 there were about 4,000 Android device models on sale. 2015 saw about 24,093 distinct Android devices. Question is, can the lab I choose, cover maximum number of devices and come close to 100 percent of my end users’ device base?
• Device Control Infrastructure: After you select your target devices, it is also key to look at the other parts of a reliable architecture of your hardware. Regardless of the technology to be used in building the device lab, one needs servers to control and take care of managing devices and execute tests. Moreover, it is crucial for these servers to collect, process and store results of the tests seamlessly and without interruption.
A snapshot of Infrastructure needed to create a Mobile Device Lab
Facebook Device Lab Infrastructure
Click Here to know about pCloudy Device Cloud Infrastructure
• Wi-Fi Infrastructure: This is another very crucial area that is often ignored when creating large-scale test lab. As the number of device in a WiFi network adds up, so do problems when all these devices transferring data at the same time. Most WiFi access points are not designed for this kind of bandwidth and you are bound to see different types of timeouts on server responses.
• Importance of Automated Testing: The very obvious benefit of automation of testing of mobile devices on the cloud is that through this one can carry out tests on a wider range of OS and devices in a much shorter time and with lesser life-cycle management investment. This not only significantly reduce QA spending, it also expands coverage and speeds up the resolution of issues. You can use a single script and apply the same on different devices and operating systems.
Integration with CI/CD pipeline:
Today, almost all organizations have mobile apps and for some, the mobile app is their only way of interacting with customers. With this increasing emphasis on mobile, the pressure to routinely update mobile apps means embracing Continuous Integration (CI) and Continuous Delivery (CD) methodologies. Any Mobile Labs has to support the CI/CD process.
1. Using Real Devices: Some Devs/testers are using emulation technology for compatibility testing. However, it has been proven beyond doubt that testing on emulators is often not reliable. Real devices help you and your team to find real bugs in your App before customers do. It is only way to have a confident App release and increase the chances of success of your test lab.
2. Tackling Multiple Devices: With thousands of different devices, it can be a bit overwhelming when building a mobile testing lab that encompasses the coverage of testing in all of them. Luckily, the major mobile operating systems use logical screen sizes which are mapped to physical screen, hence, the representative devices will get the necessary coverage. The test strategy is not to test absolutely everything, but to test the crucial elements that are most represented in the popular devices in the market, and add or subtract devices as they come in and out.
3. Using a Secure Mobile Device Testing Cloud: Using a secure cloud is vital to enterprises, especially if they aren’t located under the same roof. Testing real devices for everything can become really costly and time consuming. Using a testing cloud keeps your budget in check, reduced project cost and thus helps achieve high return on investment. Be it public cloud for small businesses, or large enterprise projects that demand a private cloud infrastructure, high performance and security are essentials to have complete control over the cloud.
4. Automation Strategy: Creating Regression Automation suites once Application is ready is a passé. Agile methodology and CI/CD process demands automation creation in parallel to development. Automation strategy should be built keeping above aspect in mind.
Here is a depiction of what the automation process should look like.
As part of Automation Strategy, Mobile Testing Lab should provide the capability to allow automation run on multiple devices in parallel.
5. Increase Lab efficiency by integrating with your existing tool ecosystem: A lab is as good as how well can it be integrated within existing ecosystem. Can it integrate with your Test Management system or can it log bugs automatically after a failure? Can it integrate with your build management tool for CI process? Here is a depiction of how “Test Tools” fit in the larger ecosystem.
Conclusion: A well thought strategy for setting up of Mobile Testing Lab is a necessity for every organization undertaking Mobility projects. In current times, organizations have plethora of choice related to setting up of Mobile Testing Lab. They can choose to setup an In-house lab or use a private-hosted service or use a cost effective Public Cloud lab.
Would you like to know more about Lab options with pCloudy? Click Here
Comments closed
Request a Demo
Perfect Your App's Digital Experience with Pcloudy
Your 30 minutes demo includes:
Commitment free consultation on your top testing challenges
Live demo of our functional & app performance testing
Get a practical implementation plan with clear ROI milestones
Expert guidance on using AI to transform your testing efficiency