Selenium Grid
Selenium Grid can be a bit daunting to get up and running. Starting it is quite easy, but using it effectively can require pulling in third-party tools. In this workshop we’ll cover how to run your grid effectively, using best practices culled from several large grid installations.
Outline/Structure of the Workshop
- Describe what the grid is intended to solve, then get into how it solves it
- Going deeper into the funnel, how does it get its instructions, and how does it pass them to the nodes?
Set-up
- We’ll start with the conventional setup of hub and node servers running on the same box, for simplicity.
- Different options and flags that can be used when starting the hub/node processes
- What kinds of logging do the nodes/hubs do that can help in debugging and investigating problems?
- What is Docker?
- How do you setup standalone & grid:hub-node using docker?
- Using docker-compose to simplify docker grid setup process
Running
- How do you run a test in a container?
- How do you run a test against the docker grid setup?
- How do you look at the logs of tests running in a container?
Advanced Grid:
- How to build your own docker image with custom browser versions
- Creating a hybrid Selenium Grid (docker + a local IE/Safari node).
- Integrating Selenium Grid to the CI pipeline (Jenkins).
- Setting up a UI manager for all your docker installations
- How do you scale containers?
- Running tests in parallel against a scaled Selenium Grid
Extras:
- Selenium Grid on Amazon ECS using ecs-selenium
- Overview of third-party tools: Zalenium, SeleniumGridScaler, selenium-grid-extras, just-ask
Learning Outcome
- What Selenium Grid is and are its capabilities
- How to run a grid
- How to scale nodes
- How to debug
- How to build own docker images for custom browser requirements
Target Audience
Anyone who wants to learn about Set up, debug and Scaling Selenium Grid
Prerequisites for Attendees
Selenium(mandatorily) - As we will focus only on Grid and won't cover how to write a script.
Docker
Windows: https://docs.docker.com/engine/installation/windows/
This will include installing Hyper-V
Mac: https://docs.docker.com/engine/installation/mac/
- This will include installing the latest version of VirtualBox
Linux Distributions: https://docker.github.io/engine/installation/linux/
- The requirements will vary depending on the flavor of Linux being used
Selenium-server-jar (latest): https://goo.gl/SP94ZB
You will also need the browser drivers and language bindings necessary for your target configuration, listed on this page: http://www.seleniumhq.org/download/
Optional
- If you intend to work with an auto-scaling Grid, an AWS account with full EC2 permissions.
- It is also recommended that you have Eclipse or IntelliJ, a github account, and an open USB port so participants can share files using a thumb drive.
schedule Submitted 5 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Naresh Jain / Manoj Kumar / Marcus Merrell / Simon Stewart / Titus Fortner - Q&A with the Selenium Committee
Naresh JainFounderXnsioManoj KumarVP, Developer RelationsLambdaTestMarcus MerrellDirector of Technical ServicesSauce LabsSimon StewartProject LeadThe Selenium ProjectTitus FortnerSr. Solution ArchitectSauce Labsschedule 5 years ago
45 Mins
Keynote
Intermediate
Q & A with the Selenium Committee. Naresh Jain would moderate this panel.
-
keyboard_arrow_down
Diego Molina - The Holy Trinity of UI Testing
45 Mins
Talk
Intermediate
Sometimes it is hard to know what to test in a web application, and the first step before testing is defining what we want to test. This may sound trivial, but in reality this is often not done properly. We tend to oversee the obvious and we test without knowing what we want to accomplish.
What do we want to achieve? Validate user behaviour? Check if the page design is responsive on different devices? Or maybe to know that our web application looks like we expect.
When we know the purpose of our test, we can start planning, coding, executing and improving our tests. But most importantly, we will know what approach we can use to develop the test.
Functional, layout and visual testing are the three pillars of the UI testing trinity. We can use these approaches to develop focused tests, tests that are asserting a specific aspect of our web application.
But how can we identify what approach to use? When should we combine them? There is an information overflow that presents a huge variety of tools that can help us to test through any of these approaches. Sadly, this large amount of information is making us focus more on the tools instead of focusing on the testing strategy.
The intention of this talk is to break in pieces the process of identifying how to develop a focused test, and more importantly, to understand when it makes sense to combine functional testing with layout or visual testing, and what to consider before using layout or visual testing.
The talk will then go deeper through scenarios and code examples that show how to create layout and visual tests. It will also discuss scenarios where a functional test is not enough, or where a visual test is better than a layout test. This talk’s main goal is to offer a different perspective when testing a web application through the UI testing trinity.
If you are interested in how to integrate layout or visual testing to your current workflow, you should attend this talk!
Note: Thanks to the feedback I got after presenting this topic at SauceCon 2018, I have been able to make nice improvements to the content that will be helpful for the attendants.
-
keyboard_arrow_down
Rajdeep Varma - Android Application Backdoor via Appium
45 Mins
Demonstration
Advanced
Application Backdoor via Appium
There's a shift towards open-source mobile test automation tools happening today among developers and QAs. Whether it be Appium, Calabash or anything else: all are good, with some major limitations.
While a chosen tool may work well when you first start using it, things can quickly get out of hand with changing business requirements. We started using Calabash at Badoo when there was no Appium. Given the capability of Appium to drive the whole device, we started automation of new apps with Appium. However, we realized a powerful feature was missing in Appium for Android! : The ability to call Application code from automation code like Calabash Backdoors.
As Appium UiAutomator server is based on instrumentation, we modified it such that we could instrument our app under test. This gave us the power to access context of Application under test and invoke public methods of Activity using reflection APIs. We use these methods to setup app state, seed DB OR even enable/disable some client-side A/B tests. This makes our application more testable and our tests more predictable.
This talk is going to be about how I achieved the above solution and benefits of backdoors.
There will be a small demo and code!
-
keyboard_arrow_down
Anton Angelov - Infinite Improbability Testing- Execute All Tests in Parallel
45 Mins
Talk
Intermediate
100000 tests executed under half an hour - sounds like a myth? Well, we made it, and I'm going to tell you a story how we got there. Through surveys, we discovered that many companies desire to utilize the benefits from parallel tests execution to optimize their software development process. However, they struggle with the process. Lack of available tooling, documentation, tests data arrangement/deletion, handling E2E tests specifics like browsers, emulators, etc. We were one of this companies. Because of that, we created an open-source tool for the job. Throughout the presentation, you will find statistics where, depending on the type of the tests, the tests execution can speed up from 4- 40 times which makes the run of the 100000 tests possible for 27 minutes.
It will be shown how to utilize the tool, its various features and where/when it is appropriate to use it. Also, you will find example solutions to most of the common challenges in executing tests in parallel. We believe that in the near future the parallel tests execution will be a necessity, much like unit tests or continuous integration now. This will be one of the pillars for the companies to improve their competitiveness and effectiveness.
-
keyboard_arrow_down
Manoj Chiruvella - Smart Test Failure Analysis with ELK (Elastic Search, Log Stash & Kibana)
20 Mins
Talk
Advanced
In contemporary test automation world, we are running 1000's tests every day. Even though most of our test cases are reliable and stable, debugging failures will consume lot of time, if not handled appropriately. This is an effort to reduce the analysis of failures and come up with probable root cause for each and every failure.
In this talk, we will explore all the approaches we have taken to drastically reduce the time to debug the failures & let you concentrate more on adding new tests. We will also talk about the approaches which could not yield results for us initially & why. We will look into building a failures' dashboard, driven by pattern based classification of logs(both server & automation tool) with reporting.
-
keyboard_arrow_down
Nalilnikanth Meesala / Srinivasan Sekar - New hope in Selenium Docker
Nalilnikanth MeesalaSr. Quality AnalystThoughtWorksSrinivasan SekarLead ConsultantThoughtWorksschedule 5 years ago
45 Mins
Demonstration
Advanced
Idea behind this talk is to describe how to create a short lived containers for each test and scale to large Selenium Cluster using Selenoid. What is standard Selenium architecture and why it is not suitable for big clusters, Also states issues in maintaining a large Docker Selenium Grid / Selenium Clusters. In this session we will also be talking about the challenges we faced in using official selenium docker images and how we scaled up regression execution time from 3:3 (3 hours to 3 mins). Followed by a demo of how Selenoid server solves the problem with docker. How it works, how to use inside big Selenium cluster, where else it could be used.
-
keyboard_arrow_down
Syam Sasi / Jerry Zhao - How to build a device lab in your office in 48 hours!
45 Mins
Talk
Intermediate
Continuous testing is an integral part of continuous delivery pipeline. When it comes to mobile application, the testing become increasingly complex.
As part of our internal quarter hackathon at Carousell, we developed an automation testing framework and device lab in 48 hours which has both parallel and distributed mode of running.
We will share about how you can set up a similar device lab in your organization and the best practices to be followed.
-
keyboard_arrow_down
Michael Palotas - Enterprise Automation with Selenium - and how it (mostly) has little to do with Selenium itself
45 Mins
Talk
Intermediate
An increasing number of enterprises are moving to Selenium for their GUI automation. The focus for most teams is the creation and authoring of automated tests. When automation projects become difficult to maintain or fail all together, people often point the finger to “Selenium”. From experience, Selenium is usually not the problem in getting an enterprise grade test automation solution off the ground.
When looking deeper, the absence of basic software development approaches / best practices and the lack of a solid approach to building / buying and managing the cross browser test execution infrastructure are the main reasons for failure.
This talk showcases:
- Practical examples of how test automation with Selenium is a software development and infrastructure project, which needs to be treated and staffed as such.
- The major pitfalls, which can prevent teams from building a scalable and reliable automation solution with the Selenium tool family.
- How to apply patterns and approaches in making test automation with Selenium a full success.
-
keyboard_arrow_down
Dharmender Srivastav - Develop Securely with Zaplenium
45 Mins
Talk
Intermediate
Zaplenium simply means ZAP + Selenium and named after the integration of both to ensure application security while it's being developed. ZAP provide client API's that help to capture URL's by spidering and scanning over the pages those are interacted in user flows. With ZAPlenium the tests can be targeted to certain areas of application where selenium helps in navigating to those areas and target ZAP to spider over those and scan them. Also, Zaplenium will help defining the assertions those can come handy while we integrate this in CI/CD pipelines.
Participants will be able to define security sanity suite to their build pipelines. With code change the security can be tapped for any High, Medium and Low risks. Session will make use of open source technologies i.e. OWASP ZAP and Selenium to define tests with assertion.
Security Tool: OWASP ZAP
Functional Tool: Selenium Web driver