Alex Tyler

Alex Tyler

1590377696

Distributed Testing with Docker and Selenium Grid

Reducing test execution time is key for software development teams that wish to implement frequent delivery approaches (like continuous integration and delivery) or accelerate development cycle times in general. Developers simply cannot afford to wait hours on end for tests to complete in environments where frequent builds and tests are the norm. Distributing tests across a number of machines is one solution to this problem.

This article looks at how to distribute automated tests across a number of machines with Selenium Grid and Docker Swarm.

We’ll also look at how to run tests against a number of browsers and automate the provisioning and deprovisioning of machines to keep costs down

#docker #selenium grid #programming

What is GEEK

Buddha Community

Distributed Testing with Docker and Selenium Grid

Getting Started with Selenium Grid Browser Testing

When performing cross browser testing manually, one roadblock that you might have hit during the verification phase is testing the functionalities of your web application/web product across different operating systems / devices / browsers are the test coverage with respect to time. With thousands of browsers available in the market, automation testing for validating cross browser compatibility has become a necessity.

Referring to automation and considering our love for open-source softwares, it is inevitable to turn a blind eye from one of the most renowned test automation framework called “Selenium”. We have covered automation testing with Selenium WebDriver for cross browser testing previously on our blog where we discussed different variants of Selenium i.e IDE, RC, WebDriver etc and ran our first automation script.

In that article we emphasized the limitation of working with Local Selenium WebDriver. With ‘Local Selenium WebDriver’, you can perform browser compatibility testing ‘only’ on the browsers that are installed on the machine (where testing is performed) i.e. your testing effort is limited to only a certain combination of (device + operating system + browser).

Verification of your web-application/web product with the ‘local’ version of the Selenium WebDriver is not a scalable approach. Some of the problems that you encounter with this kind of setup are:

  • How to verify functionalities on platforms/operating systems which are not installed on the machine? i.e. even if it is a dual-boot machine, you will still have the problem.
  • How to perform automated cross browser testing on browsers with different versions? e.g. your machine can have Firefox version 64.0, but you want to perform the testing on Firefox version 36.0.
  • How to perform cross browser testing of a website on multiple number of browsers? e.g. your machine may not have Opera installed but for the purpose of testing, you would need to install these browsers (unnecessary disk space consumption).
  • How to attain the best performance i.e. parallelization while performing the tests on local machine?

Though local Selenium WebDriver is ideal for testing on a smaller scale, the necessary amount of ‘scalability’ & ‘performance’ can be achieved after you setup a ‘Selenium Grid’.

This article is a Selenium Grid tutorial where you would realize how web-developers and software testers leverage the power of the Selenium Grid setup to perform automated cross browser testing. I will demonstrate you with an example scenario.

We will be making use of the following languages, frameworks & tools (IDE) to write better automation code.

  • Programming Language – Python (Download Link)
  • Test framework – pytest
  • Web application framework – Selenium
  • Integrated Development Environment – Eclipse version 4.90 (Download Link), PyCharm – Community Edition (Download Link)

What Is Selenium Grid?

Selenium Grid is a testing tool (which is a part of the Selenium Suite) that is based on the ‘client-server’ architecture. In Selenium Grid terminology, Client machine is termed as ‘Hub’ and server(s) are termed as ‘Nodes’.

Selenium Grid setup allows you to execute cross browser testing through a variety of different machines across different browsers (as well as different versions of browsers) & different operating systems. Hence, it brings the require amount of ‘parallelism’ & ‘distribution’ to your test execution environment.

A Selenium Grid setup can have only one Hub and ‘n’ number of nodes. The primary job of the ‘hub machine’ is to distribute the test case supplied to the ‘node machine’ which matches the capabilities/requirements required for executing the test case for performing cross browser testing. We would discuss more Hub & Node (which are the core components for the setup of Selenium Grid infrastructure) in further sections.

There are two versions of Selenium Grid available, namely Selenium Grid 2.0 & Selenium Grid 1.0. Selenium Grid 2.0 is most popular amongst automation testers since it supports Selenium RC (Remote Control) and Selenium WebDriver scripts.

Why Selenium Grid Setup Is A Smart Call To Make?

There are a number of benefits of Selenium Grid setup. Here, we have a look at some of the top advantages of Selenium Grid setup as a part of your test execution strategy for performing cross browser testing.

  • Reduced Execution Time – Selenium Grid setup can be used to execute multiple test cases on different browsers (and browser versions) and operating systems. You can also run multiple instances of Selenium RC along with the test configuring combinations. As the tests are executed in ‘parallel’ (scattered across different machines), the overall time consumed for cross browser testing trims down significantly.
  • Scalable & Maintainable – As we know, Selenium Grid setup reduces the amount of time required for ‘parallel testing’ by a huge margin, the entire solution is highly scalable. If you want to perform testing on a ‘new node’ (which could be Operating System/Browser), all it needs are few minor tweaks in the code with respect to the addition of capabilities, and your solution for the new node is ready.
  • Perform Multi-Combination Testing – Using the Hub & Node feature of Selenium Grid setup, you can perform multi-OS, multi-browser, and multi-device verification of your source code.

#selenium #selenium-grid #test-automation #tutorial #testing #selenium-webdriver #good-company #qa

Anthony  Dach

Anthony Dach

1627025027

What's New in Selenium 4?

The newly released Selenium 4 is creating a lot of buzz and the complete testing community is looking forward to exploring its updated features.

Selenium has gone through a tremendous evolution since its introduction and that’s the reason today it is the most popular and powerful automation testing tool. The newly released Selenium 4 is creating a lot of buzz and the complete testing community is looking forward to exploring its updated features.

Before we dive into Selenium 4, let’s have a brief introduction to its previous versions. Selenium 1 was declared as the free open source automation testing framework in the year 2004 consisting of selenium IDE, RC, and web driver. Whereas, the Selenium 2 released in 2011 consisted of the IDE, Web driver, and Grid. The RC server was merged with the web driver, as the web driver facilitated easy automation scripting for the browsers. Selenium 3 was officially released in 2016. One of the most noticeable changes in selenium 3 was the replacement of the selenium core with the web driver-backed option, the introduction of the gecko driver, and W3C web driver integration.

With the aim of executing much seamless, accurate and faster test automation, Selenium 4 was released on 24th April 2019. So let’s unleash all the major features of selenium 4 which sets it apart from the earlier versions delivering better test automation. There are a lot of exciting features in Selenium 4 across the complete suite i.e. Selenium IDE, Webdriver and Grid. In Selenium 4 though the Webdriver captures the spotlight, we will cover the updated features of selenium IDE and selenium grid. So first of all let’s define the different user groups for the Selenium suite.

Selenium is a suite of tools that caters to the various requirements of the project such as:

  • Selenium IDE (Integrated Development Environment) Supports Rapid test development. This record/run tool helps in preparing test cases. Selenium IDE is an easy-to-use tool from the Selenium Test Suite which is used for developing automated test cases for web applications.
  • Selenium Webdriver provides flexible and seamless automation through a friendly and flexible API. It can perform automation in almost all programming languages.
  • The grid helps in providing automation testing by distributing and running the test cases in multiple machines simultaneously.

Let us explore the features of Selenium 4 across the different Selenium Tools.

#selenium #automation testing #selenium automation #selenium automated testing #selenium test automation #selenium 4

Brain  Crist

Brain Crist

1600776000

Why Selenium Grid Is Ideal For Automated Browser Testing?

Manual cross-browser testing is neither efficient nor scalable as it will take ages to test on all permutations and combinations of browsers, operating systems, and their versions. Like every developer, I have also gone through that ‘I can do it all phase’. But if you are stuck validating your code changes over hundreds of browsers and OS combinations then your release window is going to look even shorter than it already is. This is why automated browser testing can be pivotal for modern-day release cycles as it speeds up the entire process of cross-browser compatibility .

#performance #cross browser testing #selenium automation testing #test automation tools #selenium - web browser automation #selenium grid

Anthony  Dach

Anthony Dach

1624261887

6 Popular Challenges In Automation Testing using Selenium

Selenium is one of the most popular automated testing frameworks, with a market share of about 26.4% in the software testing tools category. This open-source testing framework enables you to automate user actions on your software application under test.

Using this free testing framework, you can also verify & validate your software products across multiple browsers. Additionally, you can create Selenium test scripts using various programming languages such as C#, Java, Python, etc.

The Selenium automation software consists of a host of software tools to cater to an organization’s different quality engineering needs. These are:

  1. Selenium IDE (Integrated Development Environment)
  2. Selenium RC (Remote Control)
  3. Selenium WebDriver
  4. Selenium Grid

Even though Selenium is among the most preferable web-app testing frameworks, it is not completely flawless. This automation framework has its fair share of challenges that developers face while working with it. Let us discuss some of the most common challenges and how you can tackle each of them.

#selenium #selenium-webdriver #selenium-automation-testing #test-automation #software-testing-tools #deployment-challenges #software-quality-assurance #software-testing

Anthony  Dach

Anthony Dach

1624433642

Jenkins Integration: Selenium Grid

  • Selenium Grid is a tool that we can use for testing, automating web applications, and run them on remote machines. We can run our tests to integrate them with CI/CD tools such as Jenkins. In this blog, we will see Jenkins Integration with Selenium Grid.

Why is Jenkins integration required?

  • Test automation helps us with continuous defects, errors, and bugs as early as possible. If we catch the issue earlier then it is cheaper to fix it.
  • With CI/CD integration we can run our tests after every build or after a set interval of time which will help us identify any issues.
  • It is always faster to test the service manually or to run the regression manually. As it will run automatically without any human intervention. And a report will be generated at the end of it.
  • So, that we can see if any tests are failing or not. If failing they can be easily fixed.

Requirements

  • Jenkins
  • JDK
  • Maven
  • Selenium project

#quality assurance (qa) #testing #jenkins #selenium #selenium grid #selenium webdriver #ui testing #webdriver