Our pytest failure summary until recently showed only Assertion errors when there was a failure. Even though we printed active logs displaying the failed steps on the console and in the log file, we realized that a more useful failure summary would greatly assist in investigating the error and speeding up our possible future actions. This is how the failure […]
Creating a custom pytest plugin for better failure summary
Update BrowserStack session with test run status
At Qxf2, we’ve been using BrowserStack for a long time and have also integrated it with our automation framework. We noticed that there aren’t many guides on how to upload logs to BrowserStack and update the test run status in a BrowserStack session. In our previous post, we explained how to upload test logs to a BrowserStack session. Now, in […]
Creating Asynchronous Automation test using Playwright & pytest
Qxf2 explored an advanced capability with Playwright recently – writing asynchronous tests. Given our admiration for pytest we picked the Playwright-pytest plugin for our research. While we were impressed with the pytest integration, we noticed the official and community documentation only featured synchronous examples using pytest. This post will hopefully bridge this gap. We figured working on fitting pytest with […]
Update LambdaTest test session with test run status
In this post, we will show you how to update the test run status on LambdaTest. Although there are many articles online about integrating LambdaTest for running automation tests, most of them do not discuss how to update the test run status and importance of it. This post is a follow up to running test automation on LambdaTest using pytest. […]
Upload test terminal logs to BrowserStack
Qxf2 engineers have used BrowserStack for many years. We added it to our testing framework too. When we check test failures, we use the video from BrowserStack. But seeing the log messages from our framework also helps. Developers find it easier to fix problems when they can see the logs. We noticed that adding this feature made developers more likely […]
Run automation tests on LambdaTest using pytest
Qxf2 has been using popular cross-browser tools like BrowserStack and Sauce Labs for long. Recently, we integrated the LambdaTest tool also with our Page Object Model Framework. So we thought to write about it. In this post, we will guide you through the process of running automation tests on LambdaTest using pytest. We will cover everything from setting up your […]
Asynchronous API Automation testing using Qxf2’s Framework
You can now create asynchronous API automation test using Qxf2’s API Automation Framework. In this post we will go about explaining: – Why we need Async? – How we modified our Synchronous framework to support Asynchronous HTTP calls – How to create an Async API Automation test using our framework – Cases where Async is not the right fit Note: […]
Replay.io with Selenium Python
At Qxf2, we recently explored a tool called Replay, and got a chance to play with some of it’s features and get a feel of the tool as a whole. For starters Replay.io is a tool designed to help developers or testers record, replay, and debug browser sessions by capturing every interaction and event that occurred in the session. For […]
Metamorphic testing with SHAP Analysis
Artificial Intelligence and Machine Learning (AI/ML) have become a part of everything we do in our daily work. From personalised recommendations to automated decision-making, these technologies are everywhere. As AI/ML systems become more advanced, it’s crucial to ensure they are reliable and accurate. In this blog, we’ll explore simple and effective testing strategies to help improve these products, making them […]
Working with WebView context in Android mobile automation test
Qxf2 had created an Android mobile app recently to help testers practice mobile test automation. As a next step, we wanted to provide a sample mobile test that comes out of the box with our framework. We worked on automating a scenario – click on options in the mobile app one after another and validate the URL opened in the […]