Welcome!

Microservices Expo Authors: Yeshim Deniz, Kevin Benedict, Liz McMillan, Elizabeth White, Jyoti Bansal

Related Topics: Microservices Expo

Microservices Expo: Blog Feed Post

Web Browser Automation Tools

There are many Web Browser Automation Tools, both paid and free / open source

Web Browser Automation is a process where certain steps in the web browser are performed repetitively to ensure the correct operation of the web application’s functionality. It may be applied for QA testing in the development process and for control over Information System accessibility and performance during implementation. The second becomes more and more important since current market trends indicate that just having a good service is not enough; the service should also be highly accessible and effective. With Web Browser Automation Tools it is possible to check accessibility and performance by periodically running some transaction scenarios for certain services.

There are many Web Browser Automation Tools, both paid and free / open source. The main purpose of these tools is to record a specific transaction scenario for a browser, play it back by injecting JavaScript into web pages and then to provide the corresponding results. The tools vary in many characteristics: OS platform support, supported programming languages, SSL support, whether it uses a real web browser or simulates the real browser’s behavior, etc. Below are presented a relative comparison of some popular free/open source tool’s characteristics.

Tool Simulation Supported Browsers Supported Languages Test Recorder
Selenium No Firefox, IE(partially), Opera (partially), Chrome (partially)[1] C#, Java, Perl, PHP, Python, Ruby Yes
Watij No On Windows only IE, On Linux only Firefox,
On Mac only Safari
java No
Windmill No Python and JavaScript Python, JavaScript, Ruby Yes
Watir No On Windows only IE, Watir Web Driver -IE/FF/Chrome/Safari Ruby Yes
Watin No IE, Chrome, Firefox .net platform languages Yes
Sahi No IE, Safari, Firefox, Chrome, Opera Java, Javascript Yes
Canoo WebTest Yes No need Javascript, Python Yes
CasperJS Yes No need Javascript Yes

Selenium’s different products are compatible, at least partially, with a variety of different browsers, but all of them are fully compatible with Firefox.


Aside from their variation in functionality, these tools have another essential difference. Some of them are headless, which means that they simulate browser behavior. For example, the CasperJS tool uses WebKit engine capabilities to simulate certain test cases. On one hand, headless tools are more productive, but on the other hand, the simulation may generate different results than those of the real browser.
Different tools have their specific advantages. Some of them work with different browsers without significant deviation or trouble; others provide higher performance, etc. There are many articles/posts comparing the pros and cons of web automation tools, but it would also be interesting to compare their performance. We have tested 3 different tools: Selenium, Watij and Casperjs on the same host with the following parameters: Windows 7 32 bit, 4 Gb RAM and the Intel i5 CPU. From these 3 tools, Selenium may currently be the most popular and richly featured, and it offers several products such as IDE, API, Remote Control server (to accept HTTP requests for the browser), Grid server (to test different browser instances running on remote machines), etc. Casperjs is a headless Phantomjs based tool and the Watij is Watir’s java version based on JXbrowser (a rich web browser component to integrate to Java).

To test the tools, we used 45 transaction instances with the same scenario of 7 steps (navigation, clicks, login, logout, etc.). A single transaction execution period was 5 minutes and the overall test duration was 20 minutes. Each tool was tested 2 times: first by running with 1 thread and then with 5 threads. The test results are shown below:
Tool Num. of tests Browsers App run duration Num. of threads Test frequency (min) Transaction step count Num. of tests running during 20 mins Avg. exec time for 1 test (sec)
Watij 45 IE 20 min 5 5 7 34 29.7
Watij 45 IE 20 min 1 5 7 32 33.2
Selenium 45 IE 20 min 5 5 7 - -
Selenium 45 IE 20 min 1 5 7 68 17.6
CasperJS 45 NA 20 min 5 5 7 204 17.1
CasperJS 45 NA 20 min 1 5 7 68 17.2

As you can see, the test results for Selenium with IE browser are absent. The problem was that the Selenium couldn’t run several transaction tests at the same time. Instead of opening several browser instances, it mixes all of them in one browser instance. However, it doesn’t have this kind of problem when working with Firefox or Chrome. For example, running the Selenium with the same conditions but on the Firefox browser, the following results were obtained: average execution time of 1 test is 15.1 seconds, the number of tests run during 20 minutes is 50. The average running time of one transaction test for these tools is not greater than that of the others. The other 2 tools spent a substantial amount of overhead time communicating with the server, starting browser instances, etc.

Examining the performance of selected Web Automation Tools shows that they differ not only in terms of functionality, but that they also behave differently in different conditions (depending on OS, browser type, multithread or singlethread). The main limitation we noticed with Selenium is that it’s primarily designed for Firefox. All of its products support Firefox, and as we have already seen it has problems working with IE. On the other hand the Casperjs is headless and is Webkit based, so it will not work on IE only sites, for example. Meanwhile, Watij works with only one unique browser type per OS (IE on Windows, Firefox on Linux and Safari on Mac). Working with different transaction scenarios simultaneously is much more productive with the headless tools since they consume less time.

 

Read the original blog entry...

More Stories By Hovhannes Avoyan

Hovhannes Avoyan is the CEO of PicsArt, Inc.,

@MicroservicesExpo Stories
All clouds are not equal. To succeed in a DevOps context, organizations should plan to develop/deploy apps across a choice of on-premise and public clouds simultaneously depending on the business needs. This is where the concept of the Lean Cloud comes in - resting on the idea that you often need to relocate your app modules over their life cycles for both innovation and operational efficiency in the cloud. In his session at @DevOpsSummit at19th Cloud Expo, Valentin (Val) Bercovici, CTO of Soli...
The evolution of JavaScript and HTML 5 to support a genuine component based framework (Web Components) with the necessary tools to deliver something close to a native experience including genuine realtime networking (UDP using WebRTC). HTML5 is evolving to offer built in templating support, the ability to watch objects (which will speed up Angular) and Web Components (which offer Angular Directives). The native level support will offer a massive performance boost to frameworks having to fake all...
Microservices are a very exciting architectural approach that many organizations are looking to as a way to accelerate innovation. Microservices promise to allow teams to move away from monolithic "ball of mud" systems, but the reality is that, in the vast majority of organizations, different projects and technologies will continue to be developed at different speeds. How to handle the dependencies between these disparate systems with different iteration cycles? Consider the "canoncial problem" ...
Both SaaS vendors and SaaS buyers are going “all-in” to hyperscale IaaS platforms such as AWS, which is disrupting the SaaS value proposition. Why should the enterprise SaaS consumer pay for the SaaS service if their data is resident in adjacent AWS S3 buckets? If both SaaS sellers and buyers are using the same cloud tools, automation and pay-per-transaction model offered by IaaS platforms, then why not host the “shrink-wrapped” software in the customers’ cloud? Further, serverless computing, cl...
The rise of containers and microservices has skyrocketed the rate at which new applications are moved into production environments today. While developers have been deploying containers to speed up the development processes for some time, there still remain challenges with running microservices efficiently. Most existing IT monitoring tools don’t actually maintain visibility into the containers that make up microservices. As those container applications move into production, some IT operations t...
For organizations that have amassed large sums of software complexity, taking a microservices approach is the first step toward DevOps and continuous improvement / development. Integrating system-level analysis with microservices makes it easier to change and add functionality to applications at any time without the increase of risk. Before you start big transformation projects or a cloud migration, make sure these changes won’t take down your entire organization.
Hardware virtualization and cloud computing allowed us to increase resource utilization and increase our flexibility to respond to business demand. Docker Containers are the next quantum leap - Are they?! Databases always represented an additional set of challenges unique to running workloads requiring a maximum of I/O, network, CPU resources combined with data locality.
As software becomes more and more complex, we, as software developers, have been splitting up our code into smaller and smaller components. This is also true for the environment in which we run our code: going from bare metal, to VMs to the modern-day Cloud Native world of containers, schedulers and micro services. While we have figured out how to run containerized applications in the cloud using schedulers, we've yet to come up with a good solution to bridge the gap between getting your contain...
An overall theme of Cloud computing and the specific practices within it is fundamentally one of automation. The core value of technology is to continually automate low level procedures to free up people to work on more value add activities, ultimately leading to the utopian goal of full Autonomic Computing. For example a great way to define your plan for DevOps tool chain adoption is through this lens. In this TechTarget article they outline a simple maturity model for planning this.
The rapid growth of hyperscale IaaS platforms that provide Serverless and Software management automation services is changing how enterprises can get better Cloud ROI. Heightened security concerns and enabling developer productivity are strategic issues for 2017. The emergence of hyper-scale Infrastructure as-a-Service (IaaS) platforms such as Amazon Web Services (AWS) that offer Serverless computing, DevOps automation and large-scale data management capabilities is changing the economics of so...
"We got started as search consultants. On the services side of the business we have help organizations save time and save money when they hit issues that everyone more or less hits when their data grows," noted Otis Gospodnetić, Founder of Sematext, in this SYS-CON.tv interview at @DevOpsSummit, held June 9-11, 2015, at the Javits Center in New York City.
Updating DevOps to the latest production data slows down your development cycle. Probably it is due to slow, inefficient conventional storage and associated copy data management practices. In his session at @DevOpsSummit at 20th Cloud Expo, Dhiraj Sehgal, in Product and Solution at Tintri, will talk about DevOps and cloud-focused storage to update hundreds of child VMs (different flavors) with updates from a master VM in minutes, saving hours or even days in each development cycle. He will also...
Thanks to Docker, it becomes very easy to leverage containers to build, ship, and run any Linux application on any kind of infrastructure. Docker is particularly helpful for microservice architectures because their successful implementation relies on a fast, efficient deployment mechanism – which is precisely one of the features of Docker. Microservice architectures are therefore becoming more popular, and are increasingly seen as an interesting option even for smaller projects, instead of being...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace....
SYS-CON Events announced today that CA Technologies has been named “Platinum Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business – from apparel to energy – is being rewritten by software. From ...
SYS-CON Events announced today that Fusion, a leading provider of cloud services, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Fusion, a leading provider of integrated cloud solutions to small, medium and large businesses, is the industry’s single source for the cloud. Fusion’s advanced, proprietary cloud service platform enables the integration of leading edge solutions in the cloud, including cloud...
SYS-CON Events announced today that Outlyer, a monitoring service for DevOps and operations teams, has been named “Bronze Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Outlyer is a monitoring service for DevOps and Operations teams running Cloud, SaaS, Microservices and IoT deployments. Designed for today's dynamic environments that need beyond cloud-scale monitoring, we make monitoring effortless so you...
Cloud Expo, Inc. has announced today that Andi Mann and Aruna Ravichandran have been named Co-Chairs of @DevOpsSummit at Cloud Expo 2017. The @DevOpsSummit at Cloud Expo New York will take place on June 6-8, 2017, at the Javits Center in New York City, New York, and @DevOpsSummit at Cloud Expo Silicon Valley will take place Oct. 31-Nov. 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, Cloud Expo and @ThingsExpo are two of the most important technology events of the year. Since its launch over eight years ago, Cloud Expo and @ThingsExpo have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, I provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading the...
TechTarget storage websites are the best online information resource for news, tips and expert advice for the storage, backup and disaster recovery markets. By creating abundant, high-quality editorial content across more than 140 highly targeted technology-specific websites, TechTarget attracts and nurtures communities of technology buyers researching their companies' information technology needs. By understanding these buyers' content consumption behaviors, TechTarget creates the purchase inte...