You are currently viewing How to Set Up Centralized Test Data Management in Frameworks

How to Set Up Centralized Test Data Management in Frameworks

When building an automation framework, one common mistake is spreading test data across multiple files or scripts. This makes maintenance hard and increases the chances of data mismatches.

The best solution is Centralized Test Data Management — a method where all your test data is stored and accessed from one place. It improves consistency, reusability, and helps scale your framework easily.

What Is Centralized Test Data Management?

Centralized Test Data Management (CTDM) means keeping all your test-related data — like input values, credentials, environment details, and expected results — in a single source or repository.

This can be a:

  • JSON file

  • Excel sheet

  • Database

  • Properties or YAML file

  • Or even a data API

With this, your framework can easily fetch data dynamically, making your scripts cleaner and more flexible.

Why It’s Important

  1. Reduces Duplication: You don’t need to repeat the same data in multiple test cases.

  2. Improves Consistency: All test cases use the same data format and source.

  3. Easier Maintenance: Changing one data value updates all related tests.

  4. Supports Multiple Environments: You can switch between QA, Stage, and Production easily.

  5. Enables Data-Driven Testing: Ideal for running the same test with multiple datasets.

How to Set It Up in Your Framework

Let’s see how to create a simple centralized test data setup in a Java + TestNG + Cucumber framework.

Step 1: Create a Data Folder

In your project structure, add a folder like:

src/test/resources/testdata/

Step 2: Store Data in a Central File

Example: TestData.json

{
“login”: {
“username”: “testuser”,
“password”: “Test@123”
},
“search”: {
“query”: “Playwright automation”,
“filter”: “latest”
}
}

Step 3: Create a Utility Class to Read Data

import java.nio.file.*;
import org.json.simple.*;
import org.json.simple.parser.*;

public class TestDataManager {
private static JSONObject data;

static {
try {
String content = new String(Files.readAllBytes(Paths.get(“src/test/resources/testdata/TestData.json”)));
JSONParser parser = new JSONParser();
data = (JSONObject) parser.parse(content);
} catch (Exception e) {
e.printStackTrace();
}
}

public static String getData(String section, String key) {
JSONObject sectionData = (JSONObject) data.get(section);
return (String) sectionData.get(key);
}
}

Step 4: Use It in Your Test

String username = TestDataManager.getData(“login”, “username”);
String password = TestDataManager.getData(“login”, “password”);

Step 5: Keep Data Environment-Specific

You can create multiple JSON files like:

  • TestData_QA.json

  • TestData_Staging.json

  • TestData_Prod.json

Then load them based on the environment:

String env = System.getProperty(“env”, “QA”);
String filePath = “src/test/resources/testdata/TestData_” + env + “.json”;

Benefits of This Approach

  • Single Source of Truth: One file for all test data.

  • Easy Updates: Just change the value in the central file.

  • Environment Flexibility: Switch between test environments easily.

  • Supports Reusability: Any test class can access data without duplication.

Bonus: Integrating with AI or APIs

You can go one step ahead and use AI or APIs to fetch test data dynamically.
For example, connect your framework to an AI-based data generation API or a central database to create test data on the fly.

🔗 Explore AI Test Data Generation Techniques

Conclusion

Setting up Centralized Test Data Management helps create a more organized, scalable, and maintainable automation framework. It saves time, reduces errors, and makes it easier for teams to collaborate.

Start by moving your test data to a central file or database, then slowly extend it with environment-based and AI-powered data.

Leave a Reply