What Is Test Data? How to Prepare For Scenarios With BlazeMeter
February 10, 2022

What Is Test Data? How to Prepare For Scenarios With BlazeMeter

Announcements

Software testing involves functional testing to ensure that the interface works correctly as well as performance testing to ensure that the application responds under load. When you create your tests, it is essential that you take every possible scenario into consideration. High quality test data can help ensure maximum test coverage. In this blog, I’ll explain what test data is, how synthetic test data generation works, and how to leverage test data into your BlazeMeter performance tests.

Table of Contents:

What is Test Data?

Test data is the data that is used for testing a particular part of an application and can be used for various types of tests.  This data can be obfuscated production data or synthetic data and the type of test will dictate the data requirements. 

As an example, when testing a new user registration form, synthetic data would allow testers to simulate multiple varieties  of names, addresses, date of birth, etc and validate that the system responds correctly during the registration process.

However, if a test involves using data that already exists in the application database (i.e. accessing an existing user’s order history to validate that the interface responds correctly), then obfuscated data must first be loaded into the test environment, and made available to the testing tools.

Synthetic Test Data Generation

Synthetic test data generation can be used to dynamically create data that looks like real production data. User data from production environments frequently include Personally Identifiable Information (PII), and synthetic data generation allows testers to create test data without exposing real user data to developers or testers.

This approach removes any issues with compliance.  Synthetic data generation also lets testers create any amount of test data required on demand as well as create data to cover additional test cases where the data does not currently exist.

To synthetically generate data you’ll need the appropriate data generation tools and a data entity that represents the data requirements. I will cover the topic of data entities later in this blog. 

Using existing data

Certain tests require access to existing production data..  To ensure that no sensitive data is exposed, the data needs to be cleaned and obfuscated before being made available to the testing team. This can be achieved with a mixture of subsetting and masking test data before making it available to the testing teams. 

Data Entity Principles

A data entity consists of the test data requirements and the corresponding data generation rules that can be used to create different types of test data. The following table shows a selection of the different types of data generation rules.  These rules can also be combined to create more complex data, such as combining a first name with a last name and an email domain to form an email address. 

Data Generation types:

Type

Description

Patterned

Generate a random string of characters /  numbers based on a predefined pattern.

Realistic

Names, addresses from a predefined dataset of data.

Sequential

Sequential data based on a data pattern.

Random

Random string of characters or numbers.

Null

Include Null values in data.

Calculations

Perform common mathematical operations (such as add, multiply, divide, modulo), convert bases, or generate random numbers.

Dates

Identify the day of the week or the name of the month, generate random dates and times, or generate dates and times within ranges.

Credit Cards

Generate random but valid credit card numbers and globally unique identifiers.

Addresses

Common example strings to help you generate realistic test data, Street Names, Cities, States and  zip codes.

Names

Common example strings to help you generate realistic test data, such as first , last names and titles.

…..

 

The following table shows some examples of test data created from synthetic data generation rules.

examples of test data created from synthetic data generation rules

Once the data entity definition has been defined, it can either be used to generate bulk data on demand and loaded into a CSV file or other formats. These data entities can be leveraged by BlazeMeter functional and performance tests directly to generate test data automatically upon test execution.

Synthetic Test Data and Performance Tests

JMeter performance tests can be updated to utilise test data from an associated CSV file.  When this type of test is used to create a performance test in BlazeMeter, a test data panel is displayed showing all the CSV files that are referenced in the JMeter tests via CSV data set configs

The CSV file definition can be updated either with a fixed CSV file or synthetic data generation parameter/data entity. The following screen shows the selection options in BlazeMeter.

test data selection options in BlazeMeter

Individual parameters utilize data generation functions to generate the relevant data. The data generation rule can be of multiple types which we discussed earlier in this blog and a complete list of the functions can be found in the BlazeMeter guide

Parameters can be grouped into data Entities allowing them to be used across the BlazeMeter platform. Data Entities are groups of parameters that can be used to support predefined use cases. 

A typical use case is to complete a registration form and the test data required would be Names, Addresses, Date of birth …. As you can see in the example below, we have defined a range of parameters including names and addresses, but we have also combined them to create a valid email address. 

creating a valid email address

BlazeMeter test data is not limited to JMeter tests. It can also be used for any other test type that supports CSV files and is supported on the BlazeMeter platform, as well as a direct integration with Taurus scripts as you can see in the following screenshot.

creating a valid email address

Once you have defined all of the data parameters that match your requirements, you can use the Data Entity control to save it to the BlazeMeter workspace. Once the data entity has been saved to the workspace, it can be used in performance and functional tests (mock services coming soon).  The data entity can also be exported and imported to move the data entity between accounts and workspaces. 

imported and exported test data

Bottom Line

This blog post has demonstrated how you can leverage test data in your BlazeMeter performance tests. Explore this feature further by trying out BlazeMeter for yourself. 

START TESTING NOW