One point stop for all Mobile Application Testing and Internet of thing knowledge. The key Idea is to share my core experience, information,skills and technical expertise with reference to Native,Hybrid,Web Apps and IOT along with the latest trends,tips and tricks.
Wednesday 11 August 2021
Introduction to Appium Desktop Inspector| Get to know about various options like Select elements, swipe by coordinates, record script, find elements etc
Monday 2 August 2021
Introduction to Appium For Mobile Testing |Testing iOS,Windows and Android Apps
In this video we are going to see "Why Appium and Benefits of using Appium"
Introduction to Appium
For specific information about what it means for Appium to "support" its platforms, and automation modalities, please see the platform support doc.
Watch below video for understanding appium architecture:
Thursday 22 July 2021
Appium: Native Context and Web-view context for Hybrid application | Entering the web view context
One of the core principles of Appium is that you shouldn't have to change your app to test it. In line with that methodology, it is possible to test hybrid apps the same way you can with Selenium for web apps. There is a bit of technical complexity required so that Appium knows whether you want to automate the native aspects of the app or the web views. But, thankfully, we can stay within the Selenium WebDriver protocol for everything.
Once the test is in a web view context the command set that is available is the full Selenium WebDriver API.
Entering the web view context
Here are the steps required to talk to a web view in your Appium test:
- Navigate to a portion of your app where a web view is active
- Retrieve the currently available contexts
- This returns a list of contexts we can access, like 'NATIVE_APP' or 'WEBVIEW_1'
- Set the context with the id of the context you want to access
- This puts your Appium session into a mode where all commands are interpreted as being intended for automating the web view, rather than the native portion of the app. For example, if you run getElementByTagName, it will operate on the DOM of the web view, rather than return native elements. Of course, certain WebDriver methods only make sense in one context or another, so in the wrong context you will receive an error message.
- To stop automating in the web view context and go back to automating the native portion of the app, simply set the context again with the native context id (generally 'NATIVE_APP') to leave the web context and once again access the native commands.
Automatically entering the web view context on session start
If your application begins in a web view, and you do not want to automate the native application before entering it, you can have Appium automatically enter the web view context on session initialization by setting the autoWebview desired capability to true.
Tuesday 13 July 2021
Android Uiautomator2 | Finding Elements using UiAutomator
From Appium official Github page about what they say:-
Appium's flagship support for automating Android apps is via the UiAutomator2
driver. (New to Appium? Read introduction to Appium drivers). This driver leverages Google's UiAutomator2 technology to facilitate automation on a device or emulator.
Development of the UiAutomator2 driver happens at the appium-uiautomator2-driver repo.
Older Android-based drivers include: * The UiAutomator Driver
Requirements and Support
In addition to Appium's general requirements:
- Java 8 installed and configured correctly for your platform
- Mac, Windows, or Linux OS with the ability to run the Android SDK
- The minimum required Android SDK Build Tools version is 24
Further, the UiAutomator2 driver does not support Android versions below 5.0 (Lollipop, API level 21). If you are automating such versions, consider using the UiAutomator driver;
Below is the video tutorial on how to find elements using UiAutomator
Tuesday 6 July 2021
Automate Android , iOS, Windows UWP with Appium | Creating Desired Capabilities
Automating mobile apps
If you're interested in automating your web app in Mobile Safari on iOS or Chrome on Android, Appium can help you. Basically, you write a normal WebDriver test and use Appium as the Selenium server with a special set of desired capabilities.
Desired Capabilities are keys and values encoded in a JSON object, sent by Appium clients to the server when a new automation session is requested. They tell the Appium drivers all kinds of important things about how you want your test to work. Each Appium client builds capabilities in a way specific to the client's language, but at the end of the day, they are sent over to Appium as JSON objects.
Desired Capabilities can be scripted in the WebDriver test or set within the Appium Server GUI (via an Inspector Session)
Let’s consider an example of Desired Capabilities in Appium represented as a JSON object.
{ “platformName”: “Android”, “platformVersion”: “11.0”, “deviceName”: “Samsung A50”, “automationName”: “Appium”, “app”: “path for the app under test” }
In this video, we are going to create desired capabilities for Android, iOS, and Windows App. We are also going to see how to find the UDID of the iOS device and simulator. And how to find the bundle ID.
Thursday 10 June 2021
How to Install Parallels Virtual Machine (VM) Desktop 16 for Mac Step-by-Step process | Reproduce bug VM |
Sometime we need to reproduce issue on Windows and we don't have it since we are working on Mac machines.
In this video we will see how we can install Parallel virtual machine to reproduce any issue on Windows 10 Parallels Desktop 16 for Mac Run Windows on Mac Access Microsoft Office for Windows and Internet Explorer Fast—run Windows apps without slowing down your Mac Develop & test across multiple OSes in a virtual machine for Mac Quickly move files, apps and more from a PC to a Mac* Parallels Desktop lets you use Windows side-by-side with OS X on your Mac. #1 choice of Mac users to run Windows on Mac without restarting. http://parallels.com/products/desktop/Tuesday 1 June 2021
Software Testing Strategy Document
Monday 17 May 2021
React Native Automation Feasibility using Detox and Cavy | One Pager
React Native Automation Feasibility using Detox and Cavy:
Mobile App Testing Interview Question: Mobile Application Testing Interview |Ministry of Testing Meetup |Testing Android & iOS Apps | Testing Native & Testing React Native
Detox – The most difficult part of automated testing on mobile is the tip of the testing pyramid - E2E. The core problem with E2E tests is flakiness - tests are usually not deterministic. We believe the only way to tackle flakiness head on is by moving from black box testing to gray box testing.
Cavy – Similarly cavy is also specifically developed for React Native mobile automation, but the automation tool is not that mature and it depends on refs to perform tests.
Tool | Detox | Cavy |
Company | By Wix | By Pixielabs |
Maturity Status | More Stable and Mature | Bit Buggy |
What can be automated | Can be used to automate react Native, Native and Hybrid apps | Can be used to automated React Native App.For native apps we need to native JS hooks (Appium). |
Grey,white or black box? | Gray Box not Black Box | White box |
Fast | Uses Async Function i.e.no need to wait for the action to be performed till the element in not available. | Doesn’t uses async funtion |
Under the hood | Uses Earlgrey and Expresso in the hood, therefore we can rely on ID, label and other matchers. | Depends on refs |
Both the Detox and Cavy are open source but the detox community is highly active and they are adding new functionality every now and then.
Detox rather acts as an aggregator (or even a platform) for two Whitebox frameworks that are Earlgrey and (soon) Espresso. It provides higher level APIs in JavaScript that interact with the two libraries to make tests on both platforms by only writing them once.
Automation Detox supports:
- Full native iOS applications
- Full native Android applications (soon)
- Full React Native applications
- Hybrid Native / React Native applications
Detox APIs are based on three:
1. Matchers like
await element(by.id('img')).tap();
2. Actions
await element(by.text('For rent')).tap();
3. Expectations
await expect(element(by.text('For rent'))).toBeVisible();
POC link for Detox:https://github.com/saifsms91/DetoxAutomationPoc
Wednesday 5 May 2021
How To Write BUG REPORT In Software Testing | Manual Testing | Real website demo
Writing a good and actionable bug report is one of the most important skills for the tester.
How it helps developers exactly:
· tells about issues that they ain’t aware of
· helps determine new features that they may not have thought of
· helps get a feel as to how their customers use the software, so they can make it better.
So what should an ideal bug report look like? While there might be small variations depending on the type of application, it narrows down to a few important attributes:
· BugCaseId
· Priority
· Description/Bug Summary
· Pre-requisites
· Bug Steps
· Expected Result
· Actual Result
· Status
· BugTest Executed By
· Browser/Device
In this video I have touched all the important aspect of writing a good and concise bug report.
How to answer mobile interview questions,read here: Mobile Application Testing Interview |Ministry of Testing Meetup |Testing Android & iOS Apps | Testing Native & Testing React Native
Interview Experience with AMAZON for the role of Quality Assurance Tester
This role was for Digital/ IoT/Mobile Application based testing :) Amazon is a dream company and everyone wants to work for that company a...
Popular Posts
-
How to Create New AVD (Virtual Device) In Emulator in Android Studio and Install Apk We start AVD in Emulator to test our Android App. AVD...
-
The @BeforeTest methods run after each Test methods . @BeforeTest can be used for creating an initial data set up and prior to running other...
-
Locator strategies supported by Appium: In the video we will see how to find element in different os Android and iOS when doing mobile autom...
-
TestNg provides an option to include or exclude Groups, Test Methods, Classes and Packages using include and exclude tags by defining in tes...
-
In this video we are going to see what is hard assertion in testng Hard Assertion The Default build mechanism of assert is Hard assertion,...
-
What Is TestNG.Xml? TestNG.xml file is a configuration file that helps in organizing our tests. It allows testers to create and handle multi...
-
We are going to understand some of the important Concepts in rest API for sample example I have added a screenshot from Postman which is a p...
-
@BeforeClass: The annotated method will be run before the first test method in the current class is invoked. @AfterClass: The annotated meth...
-
@BeforeTest: This will be executed before the first @Test annotated method. It can be executed multiple times before the test case. @AfterTe...
-
Commonly asked selenium interview questions I will keep updating the list . I have added the answer along with the questions but feel free ...