Make Back End Data Accessible to Your Functional Testers Using BlazeMeter
Generating synthetic data can be very useful in many testing scenarios, but there comes a time when you need to use your own back end data to test.
Many applications are driven by data. Think about an application where the options displayed are dictated by the type of account or user that has logged in. Or a telecommunications site that shows special offers to customers depending on their location, their plans, or their user profile. In these cases, it is necessary to have data that can specifically test these scenarios.
Introducing BlazeMeter’s Integration with TDM Find and Reserve
BlazeMeter can now connect to your backend databases via your Test Data Manager (TDM) system and easily make your test data accessible to your functional testers. The ability to expose backend data at the point of test creation speeds up the pathway to automation.
Testers can essentially do self-service test data generation at the time of test creation. They can access test data that has been made available and properly created following appropriate data privacy regulations and protocols by test data engineers in their organization. This gives them confidence that their testing covers real world scenarios.
Once you are connected to the TDM system, it is easy to create data parameters for your test and add test data. It is also possible to add filters on the test data to further refine the data for the test. Let’s see how it works.
Getting Started with TDM Find and Reserve
The BlazeMeter scriptless UI lets you easily generate UI functional tests without needing to code. These tests can be generated through recordings with the BlazeMeter Chrome extension, directly in the BlazeMeter scriptless drag and drop UI or automatically from a model. For more information on this topic, read my blog: Using Model-Based Testing to Generate BlazeMeter GUI Functional Tests.
Test Data can be created in the Test Data Panel via the following methods:
- Using Find and Reserve
- From an existing or newly created spreadsheet
- Synthetically by using the built-in TDM functions
- Hard coded
We will focus on creating test data using Find and Reserve in this blog.
1. Once you have created your GUI functional test, click Test Data and Go to the Attach section of the test data menu. Select “TDM Find and Reserve Model”.
Selecting this option brings up a dialog with all of the available Find and Reserve Models. The models are organized by TDM server and project. Configuring multiple instances of TDM is supported and your data model can include data from different TDM instances and different backend databases.
2. Click the checkbox next to your chosen model name and select the appropriate environment.
Once this is complete, the model data is added to the test data panel. Each model is shown in the panel in collapsed form by default.
3. Click the arrow to expand the model to show the data parameters available for use in the test. It is also possible to change the environment for the data model in the data panel by using the dropdown box.
4. Click on the eye icon to see the data for that model.
This is data that has been curated via TDM from the back-end database/s. In this case, we have the account number, balances and opened data date available for our test. Each of these columns represents a data parameter that can be added to the scriptless test. The parameter names match the columns names, so account_Account_Number, account_Current_Balance, account_Date_Opened are all the names of parameters that would be used in the functional GUI test. These columns map to the backend databases tables and their columns.
5. The data parameter can be easily added to the appropriate test steps by using the clipboard icon to copy and paste it into the test step action.
6. Click the preview button to display one of the values for the parameter. In the screenshot below, the account_Account_Number parameter value is shown. The preview button lets the user understand what type of data to expect for a particular Find and Reserve parameter.
By default imported Find and Reserve parameters do not have filters applied to them. The * notation indicates that any value can be returned from the data set for a particular parameter. It is worth noting that this data is not reserved and remains available to all testers. GUI functional tests iterate over all of the data by default and depending on the size of the Find and Reserve data model, this could be quite a lot of data. BlazeMeter has built in options to manage this scenario. BlazeMeter includes settings to determine the number of data iterations that will run each time a test is executed. In addition, data filters provide an excellent way of limiting the data to a meaningful subset.
7. Click on the preview for the account_Current_Balance=* to see a value of 1727.69. Since there is no specific data criteria applied, any of the values from the account_Current_Balance field can be returned in the preview and used while executing the test.
Filters can be imagined as ad-hoc SELECT database queries with specific WHERE clauses. Filters are very helpful when you have specific tests that require more granular data to run. Logical operators such as greater than, less than and equal to can be used in filters.
8. Add a filter to set the account_Current_Balance to less than or equal to 1000 so only data values that meet this criteria will be returned. After applying the filter, clicking the preview button gives a value of 120.97 which is less than 1000.
9. Set the parameter value and operator to filter.
Once the filter is set the preview button will only return data that fits the criteria.
Execute Your Tests with the Right Data Set
BlazeMeter’s ability to execute tests with data variations makes this integration very powerful for testing. It is easy to generate both positive and negative tests using test data variations of back-end data made available by the new Find and Reserve functionality. In addition, filters make it possible to create boundary test cases with appropriate data allowing for better and more through test coverage.
Have you ever been in a testing situation where your own test data was required over synthetic data? If so, give this integration a try and sign up for a free BlazeMeter account today!