Using the right automation testing tools is incredibly beneficial to your software testing efforts and delivery success. Right set of tools will have a greater impact on the efforts we put on development & maintenance of automation frameworks. Here is the list of tools that I found and currently using for UI Automation, API Automation and Performance testing. There are other great tools out there in the market but this article doesn't include or compare with them as this list is purely opinionated.
UI Automation
Cypress is a powerful testing tool that needs no introduction if you have been developing frontend apps recently. The cypress home page starts with the coolest testing quote:
The web has evolved. Finally, testing has too.
With its features, cypress truly stands for what it says.
cypress-io / cypress
Fast, easy and reliable testing for anything that runs in a browser.
Documentation | Changelog | Roadmap
The web has evolved. Finally, testing has too.
Fast, easy and reliable testing for anything that runs in a browser.
Join us, we're hiring.
What is Cypress?
Installing
Install Cypress for Mac, Linux, or Windows, then get started.
npm install cypress --save-dev
or
yarn add cypress --dev
or
pnpm add cypress --save-dev
Contributing
Please see our Contributing Guideline which explains repo organization, linting, testing, and other steps.
License
This project is licensed under the terms of the MIT license.
Badges
Configure a badge for your project's README to show your test status or test count in the Cypress Cloud.
Or let the world know your project is using Cypress with the badge below.
[![Cypress.io](https://img.shields.io/badge/tested%20with-Cypress-04C38E.svg)](https://www.cypress.io/)
Cypress makes tests easier as it is interactive and runs alongside your application. This means that the Cypress test runner has full access to your code, and doesn’t run externally like Selenium frameworks do.
API Automation
Our application is powered by numerous micro-services that are communicating with each other through an API interface. Having automated API testing became paramount for us as they represent the entire application logic. Following the traditional approaches to test the API's will no longer work. We need the next-gen tool that aligns with the world of micro-services. After a lot of exploration, we decided to go with PactumJS. Considering its features, I believe it is the most underrated open source testing tool available in the market.
PactumJS
REST API Testing Tool for all levels in a Test Pyramid
PactumJS is a REST API Testing Tool used to automate e2e, integration, contract & component (or service level) tests.
Documentation
This readme offers an basic introduction to the library. Head over to the full documentation at https://pactumjs.github.io
Need Help
We use Github Discussions to receive feedback, discuss ideas & answer questions.
Installation
# install pactum as a dev dependency
npm install --save-dev pactum
# install a test runner to run pactum tests
# mocha / jest / cucumber
npm install --save-dev mocha
or you can simply use
npx pactum-init
Usage
…As most of out tech stack was in Node.js, it was simple for developers to contribute to API testing. Instead of having unit tests, developers started writing component tests for their services.
Performance Testing
For performance testing we want a tool that is scriptable, version controlled and easy for users to adapt. As all our services communicate over HTTP, we don't need a tool that supports wide range of protocols. Keeping that in mind, we came across k6. It is a developer-centric, free and open-source load testing tool built for making performance testing a productive and enjoyable experience.
Like unit testing, for performance
Modern load testing for developers and testers in the DevOps era.
Download · Documentation · Community Forum · Public Roadmap
k6 is a modern load-testing tool, built on our years of experience in the performance and testing industries It's built to be powerful, extensible, and full-featured. The key design goal is to provide the best developer experience.
Its core features are:
- Configurable load generation. Even lower-end machines can simulate lots of traffic.
- Tests as code. Reuse scripts, modularize logic, version control, and integrate tests with your CI.
- A full-featured API. The scripting API is packed with features that help you simulate real application traffic.
- An embedded JavaScript engine. The performance of Go, the scripting familiarity of JavaScript.
- Multiple Protocol support. HTTP, WebSockets, gRPC, Browser, and more.
- Large extension ecosystem. You can extend k6 to support your needs. And many people have already shared…
Both our UI and API Automation testing tools are in JavaScript. With k6, all our testing needs are met by a single programming language.
Cypress, PactumJS & k6 are the open-source automation testing tools that we have considered as the top 3 for year 2022.
Top comments (1)
I agree Cypress is best in class. Playwright is catching up...