We decided to classify the best and most used test frameworks in the industry. There are 5 in number, all open-source, meaning you have no financial reason not to try them.
Curiosity is good when it helps you learn. Start with this 10-minute reading, see what tool you want to deepen and do it the next time you have some free time.
1. Selenium: www.seleniumhq.org
Used by over 20,000 companies, Selenium is probably the most popular open-source testing framework for web application automation.
Some reasons why we also use it, at Academia Testarii, in the practical parts of the courses:
- It is the basis of other testing tools, cross-platform and cross-browser
- Supports a wide range of programming languages: C #, Java, Python, PHP, Ruby, etc.
- It is flexible and easy to maintain, it is extensible through a wide range of libraries and APIs
- Allows you to write more advanced test scripts
- Offers a record & play tool – Selenium IDE – that allows writing tests without learning a scripting language
- Provides a programming interface – Selenium Web Driver – which requires a basic knowledge of a programming language
At the courses of Academia Testarii, we use it for several main flows: to automate the library application in carrying out actions such as renting books, adding them, creating new books, etc.
2. Appium: www.appium.io
Designed to test mobile applications, Appium starts from the idea that you don’t have to recompile the application or modify it in any way to test it. It is as easy to install and use as the Selenium WebDriver, and the available documentation is plentiful.
Most companies that develop mobile applications use Appium. Why wouldn’t he do it? It’s open-source, easy to use and integrated with Selenium WebDriver and in addition:
- Allows testing on multiple platforms (iOS, Android, Windows, Mac) using the same API
- Reuses the code in the iOS, Android and Windows test suites
- Use simulators (iOS) and emulators (Android)
- Works with native, hybrid, mobile and desktop web applications
- It is based on client / server architecture
3. Apache JMeter: www.jmeter.apache.org
Specially built for performance testing, JMeter is used by over 9,000 companies. JMeter is easy to use because of the interface (GUI), but also because it makes it easy to define elements and write test scenarios.
It can be used to test performance on both static and dynamic resources, and:
- Test the performance of different types of applications / servers / protocols: Web, SOAP, FTP, LDAP, TCP, e-mail protocols, shell scripts, Java objects
- Generates test reports and being 100% developed in Java, it can be ported / used on any operating system
- Provides scripting support. However, it is not mandatory for writing tests
- It facilitates customization through data analysis and visualization plugins
- It’s easy to integrate with Maven, Graddle and Jenkins
4. Postman: www.getpostman.com
It is a powerful REST HTTP client, which helps you build requests for a web server and shows you the answer you received. Postman facilitates testing, developing and documenting APIs, allowing users to quickly group simple and complex HTTP requests. It is available as both Google Chrome Packaged App and browser application.
It is a very simple tool to use, intuitive and equipped with functionalities that make the life of any tester easier:
- Automatically save requests
- Organizes tests in collections and test environments
- Execute pre-conditions
- Validate tests
- Generates reports
- Allows the team to actively collaborate
- Allows documentation of APIs
5. Cucumber: www.cucumber.io
It is a BDD (Behavior Driven Development) tool, used to write acceptance tests for web applications and which:
- Allows reuse of code in tests
- It was extended to Java framework, being initially implemented in Ruby
- Allows use of the code together with Selenium, Watir, Capybara
- Works with languages such as Python, PHP, Perl, .NET, Scala, Groovy
Here’s an example of a syntax:
- # feature/hello_cucumber.feature - Feature: Hello Cucumber - As a product manager - I want our users to be greeted when they visit our site - So that they have a better experience - - Scenario: User sees the welcome message - When I go to the homepage - Then I should see the welcome message
The key word here is feature, which refers to the description of the characteristics of a project.
We can use the practice of Agile to describe these characteristics:
- Feature: - As a - I want to - So that
Cucumber is a tool that focuses on the user experience and can be understood by anyone.
In the end, the natural question we ask ourselves is whether you have anything to add to this list.
What is your favorite testing framework? Which testing tool do you want to delve into in the future?
Source : Translated from the article published on Academia Testarii website by George Stan on the 24th May 2018 – Link original article