In this article, we will compare two Selenium Recorders: Selenium IDE and TestProject’s Selenium AI-Powered Test Recorder. Both are top-notch codeless automation tools.
- Selenium IDE is part of Selenium’s family that includes Selenium WebDriver and Selenium Grid.
- TestProject is a free automation platform for testing web, mobile, and API (that also provides advanced scripting capabilities via their open sourced OpenSDK supporting Java, Python and C# for those who want to code instead of using their Test Recorder).
A codeless automation tool records a user’s behavior to create a test flow. After recording the test flow, we can execute the flows at any time. A few benefits of test recorders consist of:
- No required programming skills
- Test Scripts are created easy and fast
- Functional testers can quickly evaluate the functionality
Selenium IDE is an on ramp to Selenium WebDriver for software engineers interested in writing UI automation code. In the same way, TestProject’s Smart Test Recorder is an on ramp to creating automation Test Scripts. We can generate code for Java and C#. Also, the open sourced OpenSDK allows us to write pure Selenium API commands using Java, Python, or C#. By the end of this article, you will see why TestProject’s AI-powered Test Recorder is a powerful codeless tool in our automation industry.
Here’s a table comparing Selenium IDE vs. TestProject features:
|
|
|
Reusable Steps | ✔ | ✔ |
Multiple Locators | ✔ | ✔ |
Assertions | ✔ | ✔ |
Dynamic Wait | ✔ | ✔ |
Generate Code / Export | ✔ | ✔ |
Continuous Integration | ✔ | ✔ |
Cross Browser Testing | ✔ | ✔ |
Integrations / Plugins | ✔ | ✔ |
Record Web | ✔ | ✔ |
Record Mobile | ✔ | |
Data-Driven Testing | ✔ | |
Automatic Generated Reports | ✔ | |
Screenshots | ✔ | |
Addons | ✔ | |
Share Test/Collaboration | ✔ | |
Control Structures | ✔ | |
Command Line Runner | ✔ |
Table of Contents – Selenium IDE vs. TestProject Selenium AI-Powered Test Recorder
- Record Web and Mobile
- Multiple Locators
- Dynamic Wait Statements
- Reusable Steps
- Assertions
- Generate Code
- Screenshots
- Reports
- Integrations & Plugins
- Addons
- Shared Test
Record Web and Mobile
Selenium IDE and TestProject’s Smart Recorder allow us to test a website. That’s very good! In addition to Web Testing, we can also create Mobile Tests using the TestProject Smart Recorder. It supports Android and iOS devices.
With Selenium IDE, Test Scripts are recorded using Firefox and Chrome. It’s an extension that starts with a prompt asking what would you like to do?
- Record a new test in new project
- Open an existing project
- Create a new project
- Close Selenium IDE
After selecting ‘record a new test’, we enter the Project Name and Base URL, and then Start Recording.
With TestProject, the first step is to install an agent that provides access to all browsers and devices connected to the machine. It’s a wrapper for Selenium and Appium. Before creating our test, the Smart Recorder is similar to Selenium IDE. We start with a project which helps manage all tests and designed around collaboration. The next step is to create a test by selecting the test type: Mobile, Web, and Code.
Multiple Locators
Element locators help find elements on a page. Selenium IDE and TestProject support backup locators. An advantage codeless automation has over coded automation is to record with multiple locators. TestProject has a Self-Healing AI feature built into the Smart Recorder. Multiple element locators such as XPath, CSS Selectors, etc. are generated while recording a test. Therefore, our test will not fail if the value of an element is dynamic or changes on a page. More benefits of the Self-Healing AI feature include support for:
- iFrames
- Pop-Ups
- Custom Attributes
- Multiple Windows/Tabs
- Hovering Menu Items
Dynamic Wait Statements
Dynamic Wait Statements are important when executing an automation Test Script. A failure is likely to happen due to fast execution when an element is not visible or page is not fully loaded. There are many reasons to have a codeless tool that adapts to an application. Selenium IDE and TestProject’s Smart Recorder both offer a way to dynamically wait for a statement.
With TestProject, there are several ways to add an Explicit Wait and Adaptive Wait. Explicit Wait pauses execution until time has expired or an expected condition is met. Adaptive Wait knows when to execute the next action when the correct condition is met. Here’s a screenshot showing how to pause a step and add an Adaptive Wait.
Reusable Steps
Reusable steps make it easier to maintain our test. If anything changes in a step then an update is required in one location rather than multiple locations. Also, reusable steps are handy if the same steps are created in multiple tests. For example, most Applications Under Test (AUT) has steps for logging into the application. We can take those login steps then create 1 login test. Afterwards, the login test can be implemented as a step in every test requiring a user to login.
The reusable steps feature prevents maintenance nightmare from updating each test. Here’s a screenshot of TestProject’s Example page and a couple of Smart Recorder screenshots. The Smart Recorder screenshots show how a separate test can include a Login Test, then opened so the steps are updated in the original test.
Selenium IDE also has a way to reuse steps for our test. We can execute a test from within a different test using a command called run. It is a helpful command that’s designed to execute a Test Case from the current project.
In addition to the run command, we have the option of using a store command to save a variable for re-use. The following are screenshots displaying how to implement both commands (run and store) via TestProject’s Example page.
The Test Case for Login TestProject has 4 steps for logging into the application. Steps 2 and 3 have a variable in the Value column. The variables ${name} and ${password} will be called by name from each test implementing the reusable steps.
Test Cases Credentials Valid and Credentials Invalid reuse the login steps from Login TestProject. The first 3 steps insert store and run Commands.
- store (steps 1 and 2) – contains text to be verified in the Target column and variable name in the Value column.
- run (step 3) – calls the reusable steps for logging into TestProject.
Assertions
Assertions are used to validate if the Test Script passed or failed. Our Test Script passes if the actual and expected result have the same value. When it comes to testing, a validation step is one of the most important components. How would we know if the application is working as expected if there isn’t a validation step?
Selenium IDE provides assertion statements within the Command dropdown. TestProject’s Smart Recorder allows validations when selecting a field, and then a validation type. The following are screenshots displaying how to implement an assertion.
With Selenium IDE:
With TestProject:
Generate Code
Generating code is when a codeless automation tool records a test, and then provides the steps via coded language like Java. It’s a great start if a person without programming knowledge wants to begin learning how to read code. Also, the generated code can help the automation team with programming knowledge. For example, one of my projects had a functional team to record the steps, then export the code. The code was passed to the automation team as a base test.
The steps from Selenium IDE and TestProject’s Smart Recorder are generated into Test Scripts for Selenium WebDriver. Since TestProject is built on top of Selenium and Appium, we also have the benefit of coded Test Scripts for Mobile. The following screenshot shows how to right-click a Smart Recorder Test, then select Generated Code for some pure Selenium API commands.
Screenshots
The Smart Recorder lets us decide when or if we want to capture a screenshot. A benefit of capturing the screenshot is validating the page. It’s an effective way to help debug our test. The following are 5 options for capturing a screenshot using TestProject’s Smart Recorder.
- Use Test Default
- Always
- Failure
- Never
- Success
Reports
Reports help us to debug and understand the quality of our application. With TestProject, a report is automatically generated after executing a test. We have the option of downloading, emailing, or viewing the report in TestProject’s platform. The following are different types of reports supplied by TestProject.
- Velocity provides the number of executed test and ratio of failed to pass runs.
- Distribution provides the number of tests run on each agent.
- Platforms provide a way to view how our test perform across each platform.
- Trends provide a way to view the passed and failed runs of each job.
- Targets provide the passed or failed test on each device.
- Individual Run Report provides a dedicated drill down report per each test and per each step, with all the details you need.
Integrations & Plugins
Integrations and Plugins allow both tools to enhance their testing capabilities. Selenium IDE permits plugins through User Customizations and 3rd Party Integrations.
- User Customizations grant the ability to add or modify custom commands.
- 3rd Party Integrations license a connection with 3rd Party providers.
TestProject is comparable to Selenium IDE. It integrates with other technologies as well. Some of the most technologies are:
- qTest is a Tricentis product designed to boost efficiency, establish collaboration, and remove QA bottlenecks.
- Jenkins is an automation server that empowers software engineers to build, test, and deploy their software.
- Sauce Labs allow users to run their test (web & mobile) in the cloud on different browsers and operating systems.
- BrowserStack is a cloud platform that allow testing on many browsers, operating systems, and mobile devices.
- TeamCity is a build management and continuous integration server that provides TestProject a simple way to execute jobs, update applications, data sources and generate configuration for the agent.
- Slack is a communication tool that allows notifications regarding our test automation.
Addons
An Addon is a collection of actions that extend our recorded test. If needed, the Addons also extend a coded test. Since TestProject believes in collaboration, an addon can be published by our testing community. They are available for the following platforms:
- Web
- Android
- iOS
There are hundreds of Addonsת so TestProject provides a way to search and/or filter by platform. After installing the addon, we open the Smart Recorder, hover an element, then include the addon in our test with one click. The Addons can be element based or non-UI based:
- Element based Addons provide extended functionality on customized UI elements.
- Non-UI based Addons combine steps within your test such as File operations, REST API commands, image comparison, etc.
It’s free to sign up and get access to the full library of Addons.
Shared Test
Sharing Is Caring – TestProject created a Share Center that allows us to share our test with everyone (teammates, clients, and friends) across the globe. They can also share their test with us. All we need is an email address or get a direct link to the test. It’s recommended for teams to promote full collaboration. For example, check out David Goichman, a Senior Solution Engineer at TestProject, who shared 13 example tests from his blog called Automating End To End API Testing Flows.
The following video demonstrates how you can share a test and how someone can share a test with you.
That completes the comparison of Selenium IDE vs TestProject Selenium AI-Powered Test Recorder. Both tools are valuable to our automation community. TestProject extends Selenium, and adds more features for testing web, mobile, and API.
Happy Testing! 😉