In this post, we will present a way to auto-generate robust and short XPaths for the two most common HTML elements automation interacts with – buttons and input elements. We have tested this against more than 50 commonly used websites like Facebook, LinkedIn, Citibank, IRCTC, etc. Why this post? The foundation for robust GUI automated checks is writing good element […]
Auto-generate XPaths using Python
Tesults: better reporting for automated tests
We wanted a good way to report the test results from our automation framework. So, when Tesults approached us to integrate with our Selenium, Python-based automation framework we were pleased. In this post, we are going to show you how automation can update test results directly on to Tesults. Why this post? If you have ever built a automated testing […]
Building your own docker images for different browser versions
When any application is deployed the software needs to be tested across multiple platforms and different versions of browsers. It’s tough to maintain environments with different versions of browsers. One approach is to use cloud solutions like Sauce Labs or BrowserStack which provides multi-version-browser support. But in case if you want to build your own environment which is easy to […]
SSH using Python Paramiko
Recently, as part of an automated test, we needed to SSH into a server, toggle a service and then check the response on a web application. We used the Python module Paramiko. We ended up writing simple wrappers around the most common actions test automation may need to perform over SSH. In this post, we will share the same. We […]
Parsing Google Calendar events with Python
This post will show you how to use Python to parse Google Calendar events. Google’s API documentation is good but we haven’t found a realistic example anywhere. So we are sharing what we have. In this post, you will learn to look for all-day events with the word ‘PTO’ in the event title. Overview Here are the steps we will […]
Easily Maintainable API Test Automation Framework
For a long time, Qxf2’s API tests were not really object-oriented. We were relying on (at best) a facade pattern or (at worst) the God class anti-pattern. Our colleague, David Schwartz of Secure Code Warrior, helped us make our API automation framework more object-oriented and easier to maintain. Thanks, Dex, for all the guidance, examples, code, code reviews and for […]
Scraping websites using Octoparse (no programming!)
Did you know you can scrape data from webpages without writing a single line of code? In this post, we will talk about a tool called Octoparse. We used Octoparse to scrape data from a list of URLs, without any coding at all. Data is valuable and it’s not always easy to get the correct data from the web sources […]
Qxf2 has open sourced a Python-based automation testing framework
We have open-sourced our test automation framework. You can now write Selenium and Appium tests in Python using the Page Object pattern. Our Pythonic web, mobile and REST API test automation framework will help you get started with QA automation quickly. It comes with many useful integrations like – email, Slack, TestRail, BrowserStack, Sauce Labs, etc. You can find it […]
A configurable pothole for testing autonomous cars – Part 4
This is our last post in a four-part series about building a configurable pothole for testing autonomous cars. We built the configurable pothole prototype with five independent Scotch Yoke units controlled by servo motors and an Arduino UNO. For more background, please read the previous post of this series where we discuss how to interface Scotch Yoke units with Arduino UNO and […]
A configurable pothole for testing autonomous cars – Part 3
This is our third post about building a configurable pothole to test autonomous cars. We are making the configurable pothole with five independent Scotch Yoke units controlled by servo motors and an Arduino UNO. For more background, please read the second post of this series where we discuss two methods which convert angular movement to linear movement, why we selected […]