Expanding the aura of automation, when it comes to mobile.
This talk will answer the questions "Will you be able to run your automation scripts without connecting the USB cable to your device in a limited range?"
If we have to ask ourselves where is the mobile and when is it required? So the answer would be its 'Everywhere'!!
It's next to possible to imagine a day without looking at mobile or using apps for that matter- Google, Facebook, Whatsapp, etc.
When it comes to using it so testing comes hand-in-hand with it. As we develop applications over a mobile device, be it any platform ios, Andriod and windows we shall also think about usability and end-to-end testing.
In this talk, we will discuss how Appium worked as a bridge between devices and controllers.
Outline/Structure of the Demonstration
- Interaction of Selenium and Appium with the mobile device.(5mins)
- Setting the Location of the Application-under-Test.(5mins)
- Challenges faced.(5mins)
- Configuration and set-up required to run scripts using appium.(5mins)
- Wireless connection setup of a mobile device with the system.(5mins)
- How the script will execute on the wireless connected mobile device using appium.(5mins)
- Walk-through of the project via code snippet/ Demo.(15mins)
Learning Outcome
- Automate Web, Hybrid and Native mobile applications.
- Overcoming the challenges which come in wired mobile testing.
- Resolution of real-time issues that we get due to the broken connection.
- Support for multiple platforms at one time.
- Discussion over the real-time user issues while testing mobile apps.
Target Audience
Any person having prior knowledge of QA Automation.
Prerequisites for Attendees
Basic knowledge and interest in automated testing and how to write automated tests, various automation framework design and techniques.
Links
Repo URL- https://github.com/shubhi2203/selenium_conf_2020
Personal blog - http://khyatisehgal.wordpress.com/
LinkedIn profile - https://www.linkedin.com/in/khyatisehgal
SlideShare:- https://www.slideshare.net/KhyatiSehgal1/
Personal website- http://khyati2010.wix.com/khyatisehgal
https://about.me/khyatisehgal
Git repo- https://github.com/shubhi2203/selenium_conf_2020
Talks presented-
- Building an automated CSS testing workflow in UNICOM Next Generation Testing
- Design Patterns in web testing automation with WebDriver
- Continuous Integration using Thucydides(BDD) with selenium
Featured Helium blog- http://blog.xebia.in/index.php/2014/06/27/fabricating-web-automation-more-classic-with-helium/
schedule Submitted 3 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Virender Singh - Rise of Shadow DOM - Lets solve it through WebDriver
45 Mins
Demonstration
Beginner
Shadow DOM is kind of web standard that developers use to encapsulate their custom HTML code and style components so that no other global style components can override their code. It ensures that a component will work in any environment, even if other CSS or JavaScript is run on the page i.e. Shadow DOM hides away the complexity of the components from the rest of the page because it renders separately from main DOM.
Selenium legacy selectors are not able to interact these custom elements under the shadow DOM so we need java script to interact with shadow DOM elements and we also require JavascriptExecutor interface for their execution.
We will also talk about the WebdriverIO tool v5.5.0, which implicitly support Shadow DOM elements.
-
keyboard_arrow_down
Shama Ugale - Webdriver connector for Botium - Tool for testing Conversational UI
45 Mins
Demonstration
Beginner
Last year was dominated by the smart devices & voice based home assistants. These use the conversational interfaces unlike other applications to interact, built using advanced algorithms, ranging from natural language processing to AI/ML techniques. They are constantly learning by themselves improving the interactions with the user bringing up the challenge of non-deterministic output. To such interfaces, natural language is the input & we humans love having alternatives & love our synonyms, express using emojis gifs & pictures. Testing in this context moves to clouds of probabilities.
Unfortunately Selenium cannot be used to automate such systems and hence Botium was designed.
In this session I will cover the Selenium driver for Botium to automate E2E tests on Web UI and mobile along with testing strategy, testing NLP models & automating these tests to the CI/CD build pipelines with a DialogFlow based 'Coffee-Shop bot' as an example during my demo. -
keyboard_arrow_down
Amit Rawat - Is Puppeteer better than Selenium
45 Mins
Demonstration
Intermediate
Puppeteer is a Node js library (developed by Google Chrome team) to control Chrome and Firefox and is getting lot of traction recently because of its amazing capabilities. It has already become so popular that it has got 50K+ stars on Github against Selenium's 15K+ stars.
In the last Google I/O event, this tool's capability has been showcased and it has been perceived as the next generation Web Test Automation Tool.
Is Puppeteer better than Selenium? The answer is 'No', and I will cover 'why' in detail during this talk. I will show some live examples to demonstrate that Selenium can also do all those advance things which Puppeteer promises to do.
-
keyboard_arrow_down
Christian Bromann - The Nuts and Bolts of WebdriverIO
90 Mins
Workshop
Beginner
There are thousands ways if not more to setup your automation testing environment. It is often crucial when it comes to stability and maintainability. While you can build a custom framework that fits your needs there are often already sophisticated setups or frameworks available that get you up and running very quickly.
WebdriverIO is one of these frameworks that is written in Node.js. It gets you up and running within minutes and allows you to scale up your test suite while maintaining your execution time by running tests in parallel. With its huge project community it is an ideal choice for small as well as big projects that use modern frameworks such as React, Angular or Vue.js.
In this workshop you will learn everything you need to know to run a successful, stable and maintainable WebdriverIO framework. It starts with an introduction to the project and the basic concepts and will end with a sophisticated framework that includes testing strategies like Frontend Performance Testing as well as complex browser interaction with Puppeteer.
-
keyboard_arrow_down
Khyati Sehgal / Shubhechchha Rai - Applying software craftsmanship to the evolving world of automation.
Khyati SehgalDelivery Lead3 Pillar GlobalShubhechchha RaiAutomation Quality Analyst3 pillar globalschedule 3 years ago
45 Mins
Demonstration
Beginner
Software Craftsmanship is a practice of continuous development and helping others learn the craft. As the world is evolving towards the era of scripting language, we will be sharing our experience of how we have grown as a team of all QA with programming language background to the niche typescript world contributor.
During this talk, we will be focussing on the shift of existing selenium to the actual implementation of Protractor test API. How and when to use a protractor? When to pick protractor as an automation tool for building a framework.By the end of the session, one will be able to understand how can we start working on end to end tests for any JavaScript and TypeScript based application using Protractor, Cucumber framework, and Page Object Model design pattern.
We will also talk about configuration files, cucumber, typescript, promise handling in protractor.
-
keyboard_arrow_down
SWAPNA Narayanan - How to build a simple automation tool for your organization
45 Mins
Case Study
Intermediate
Ever wondered how to develop a simple automation tool using selenium ?
Create a simple automation tool for your organization in no time. This presentation demonstrates multiple ideas to build a script less automation tool from scratch in most simple ways through multiple architectural designs and diagrams.
Why we need a tool on top of selenium ?
Selenium is a powerful automation tool to automate any application. It can be clubbed with Appium, Jmeter etc for additional coverage.
Functional , Web ,Mobile and Performance testing coverage can be managed this way.
Problem statement:
We need people with some coding skills to write the test cases and execute them in selenium / Appium. When it comes to building scalable and reusable frameworks, we need automation experts.
I have seen a lot of teams from my e-commerce, Insurance and banking domain backgrounds with great domain expertise and no or minimal coding exposure .They are keen to explore and utilize the power of automation for the redundant regression tasks.
Solution :
A script-less automation tool will fill the gap in the above scenario.
For any off the shelf tool there is a high cost involved.
If the tool is built internally , comparatively very less cost is involved.
More over, many additional functionalities like meaningful reports, AI metrics, NLP capabilities, integration with Test management tools etc can be integrated according to the requirements.
The scope of this session starts here. This session will inspire you and gives you many ideas on creating tools for your need to get maximum ROI and build the gap between core domain experts and automation testing.
Beneficiaries :
Product owners , business analysts , functional experts who can start writing test cases on a daily basis , leveraging all the opportunities that selenium offers to the fullest, without actually writing a single line of code.
What to expect from this session ?
I will walk you through my experiences and the knowledge we gained as a team while we worked on building multiple automation tools.
Different architectural diagrams that can be handy when you actually start to think and implement an automation tool project will be discussed.
Ideas on different implementation capabilities using different Front end technologies and database designs will be discussed.
Demo of an internal tool developed will complete the session
-
keyboard_arrow_down
Vishal Srivastava / Khyati Sehgal - Setup Grid Infra with AWS Nodes & Autoscaling of AWS Nodes
Vishal SrivastavaSenior QA Lead3PILLAR GLOBALKhyati SehgalDelivery Lead3 Pillar Globalschedule 3 years ago
45 Mins
Demonstration
Intermediate
When it comes to creating a project we always search for ideas that are open-source, easily scalable, ready to use.
We as humans always have a tendency to grow and expand and when it comes to customizable infrastructure it's a big Yes.
In this talk, we will be focussing on how we can save the cost of actual servers with easily scalable and manageable open-source software using an open-source tool - selenium grid. How we set up the nodes and hub altogether to make cross-browser, multi-platform execution takes place.
-
keyboard_arrow_down
Argneshu Gupta - Get rid off Xpath in iOS Native App Automation
45 Mins
Demonstration
Beginner
It is always challenging for us while dealing with Xpath and Css in iOS Mobile Automation.Even we can't think to do iOS native app mobile automation without them .
So problems we need to face are
- High Maintenance
- High Execution Time
- Complex installation
- Additional Web server
Do we have some solutions for this problem - The answer is Yes !!! -> KIF(Keep It Functional)
-
keyboard_arrow_down
Prateek Sethi - Enhance Test Automation ROI with Docker based Selenium Environment
90 Mins
Workshop
Intermediate
Quick Description :
To support the continuously evolving software industry, DevOps and Agile practices have established themselves as a big helping hand. With ever-increasing large scale digital transformation projects, organizations realize that the only way to shorten the product development cycles is to automate the processes involved in the delivery pipeline.
There are many tools and technologies to establish DevOps, but one of the most important ones is containerization, which gives flexibility in application packaging and automating a number of processes involved in the delivery pipeline. Containers have all the needed configurations and dependencies, for faster delivery of committed items to the customer. Docker is an open-source solution that makes it easier to create, deploy and run applications securely using containers. Therefore, quick feedback and testing applications with different environments can be achieved using Selenium with Docker.
My Proposal :
We can reduce the significant effort in provisioning, maintaining, running the Test Automation on different environment setup using, Docker with Test Automation. Some of the benefits are:
Benefits of using Docker with Selenium:
- Test an application on multiple browsers and their different versions without installing them on multiple machines
- To test multiple application builds concurrently without updating the code for different environments
- To test your applications on multiple devices/OS/Browser combinations on a single machine.As Selenium within Docker will make it much quicker to test different environments by using the preconfigured containers.
- Also, I will cover topics like how to set up the Selenium multi-environment setup using Docker concepts like Compose file, etc.
Best practices using Selenium with Docker
- Common Dos and Don'ts for this setup.
- How to avoid over maintenance of your Test Harness.
- Infrastructure setup
Increase the power of your Test Automation Setup with Kubernates:
How to handle Selenium grid-based dockerize nodes with Kubernates.
-
keyboard_arrow_down
Sahib Babbar / amrit singh - An extensible architecture design for cross-platforms/technologies to maximise product automation coverage
Sahib BabbarModule Lead - Quality Assurance3Pillar Globalamrit singhSDETHIKEschedule 3 years ago
20 Mins
Case Study
Intermediate
"Are you working for a product where you're struggling to automate the module(s) which you actually think can not be automated?"
Considering you have a product running on different browsers, different OS and/or different platforms and for this, you have written automation scripts in different technologies. So, following are the pain points which we are going through: -
-
Automation candidates test-scripts can’t be automated
-
Lower automation coverage
-
Lesser auto-tests => more manual work.
-
Lessor auto-tests => more regression time.
-
No with-in sprint automation.
-
Urge for the quick solution to cater to cross-technology and cross-platform automation scripts.
So, based on the above points, we came up with the automation architecture in such a way which serves the purpose in the following manner:
- Able to add more automation coverage in another layer of testing.
- Able to make a call from any platform (mobile or web) with any technology like Java, Swift, C#, etc.
- More automation coverage = Lesser manual effort during regression or Smoke testing.
Extensible Web Services Architecture Diagram
Extensible Services Components:
- Application: Responsibility: Application is the main Spring Boot Application and has the following responsibilities:
- Triggers auto-configuration
- Component scanning
- Controllers: Responsibility: Controllers are the Rest Controllers has the following responsibilities:
- For restful services creation for CRUD operations
- All the requests and response from the external automation framework is being catered via controllers
- Services: Responsibility: Services is the Business Logic layer where the CRUD operations can be performed based on the extended web-service calls. These operations can be performed on the product’s existing APIs and/or database using the data-access layer, below are the key responsibilities:
- Business use-case based CRUD operations on the product database
- Business use-case based CRUD operations on product existing web-services
- Authentication of the product can be done internally via services based on credentials supplied from the controller params.
- DAO: Responsibility: DAO is the Data Access Layer where the CRUD operations can be performed on the product database.
Some of the actual problems and the solution:
Problem#1: Alerts - Dismiss for Today flow
-
We have to wait for 24h to verify that the alerts section is displayed again
-
Cannot run the same test on both platforms (web/mobile)
-
Cannot run the same test twice in the same day
Solution: Unsupress the suppressed dialogue box by calling the extensive API can resolve the problem so that on re-run the automation it would not fail.
Problem#2: Tasks read status, once selecting a task, it is marked as read and cannot check it again.
Solution: Unread the task with simple extensive API call with taskId as a parameter
Implementation and usage
We have the implementation done on a product, and is utilized by 4 external automation frameworks, as below:
- API Automation Framework (Java)
- Web Automation Framework (.Net)
- Android Mobile Automation Framework (Java)
- iOS Mobile Automation Framework (Swift)
We can walk through with the implementation approach, as a
- Producer: How we actually produce the HTTP response for a test scenario via API call requested by the consumers.
- Consumer: How our consumers (external automation framework) can get the HTTP Response, they can use at their end to get the work done.
Time break-up and the speakers:
- Introduction about the case-study 3min - Sahib
- Problem and solution 5min - Amrit
- Architecture diagram walk-through 5min - Sahib
- Demo 5min - Amrit (running the demo) / Sahib (explaining the demo)
- Q/A 2min (Both)
-
-
keyboard_arrow_down
Ishan Mittal / Shubhechchha Rai - Reduce test scripts execution time by Deeplinks
Ishan MittalSr. Software Engg.Gspann TechnologiesShubhechchha RaiAutomation Quality Analyst3 pillar globalschedule 3 years ago
45 Mins
Tutorial
Intermediate
This Talk will be having :
What Deep link is & How we can make effective use of these links to reduce the overall execution time of our scripts.
Why we should use deep link ??
There are some scenarios where we have to follow some navigation steps to reach the actual page for validation. Deeplinks helps us to skip this unnecessary navigation and lends directly to required page and hence reduce execution time of our Test case script. We use Mainly for:
- Reduce execution time
- Reduce the amount of failures that are caused due to navigation through the app
Description:
Deeplink helps us to directly lend on required page.Deep linking is a fancy way to refer to a URL that points to a specific part of an app. It’s analogous to a URL that points to a subfolder of a website. For example if I wanted to send you a message page of linkedin, I would send you a URL that immediately brought you to the message page, not send you to the home page to navigate to it yourself from there.
Eg: We have following flow of our app:
Page A > . Page B > Page C > Page D and we have validation test on Page C only.
So rather than going through Page A to Page B to page C, We can directly lend to Page C using Deeplinks & hence reduce the time efforts.Where can we use deeplinks?
These links are most suitable for mobile app Testing (iOS and Android)
Case Study:
I tried this strategy in one e commerce website Test case steps:
Scenario Used –
- Create user via api with saved CC, saved shipping address and added products in basket
- Navigate to home page and sign in (Deeplink used)
- Navigate to basket (Deeplink used)
- Navigate to checkout and place order (using UI )
- Navigate back home page from order confirmation page (Deeplink Used)
We came up with following time difference:
- Execution time without deeplink – 5 min 01 sec
- Execution time with deeplink – 3 min 46 sec
For this sample script which will be mentioned above, difference in the execution time(1 min 15 sec) is significant.
We'll also showcase the code snippet for this.
-
keyboard_arrow_down
amrit singh - Is “FLAKINESS” hampering your test automation execution?? No Worries “AI (test.ai)” is here.
20 Mins
Talk
Intermediate
Every time you see flaky scripts you keep wondering what should I do .Should I change my locator strategy or should I use “Thread.sleep(“wait a minute should i really use this.. A big pause in your mind.”)” . Trust me flaky scripts are worst nightmares.
So here I will be sharing my journey how I have used test.ai in appium automation scripts and how I have converted my flaky scripts to green colour .
Apart from this I will also be talking about how you can integrate this in your appium automation framework.And how you can train this AI plugin according to your need.
As a bonus those who hate flakiness I will be talking about some limitations of this and where not to use in your scripts.