Introduction

Handling files and data storage efficiently is essential in test automation. This module covers reading and writing files, working with CSV and JSON data, and automating file-related tasks in JavaScript using Node.js.


Lesson 1: Reading and Writing Files using Node.js fs Module

Concept:
Node.js provides the fs module to handle file operations for storing and retrieving test results and configurations.

Key Topics:

  • fs Module Basics: Understanding Node.js file system operations.
  • Reading Files: Synchronously and asynchronously reading files.
  • Writing Files: Creating and updating files programmatically.
  • File Manipulation: Appending, renaming, and deleting files.

Example:

const fs = require('fs');

// Writing to a file
fs.writeFileSync('testResults.txt', 'Login Test: Passed');

// Reading from a file
let data = fs.readFileSync('testResults.txt', 'utf8');
console.log(data);

Pro Tip: Always use asynchronous file operations (fs.promises) for better performance in large-scale automation.


Lesson 2: Working with CSV Files in JavaScript using Libraries

Concept:
CSV files are commonly used in test automation for data-driven testing.

Key Topics:

  • CSV Libraries: Popular libraries like csv-parser and fast-csv.
  • Reading CSV: Extracting test data from CSV files.
  • Writing CSV: Generating test reports in CSV format.
  • Data-Driven Testing: Using CSV data for automated test execution.

Example:

const fs = require('fs');
const csv = require('csv-parser');

fs.createReadStream('testData.csv')
  .pipe(csv())
  .on('data', (row) => console.log(row))
  .on('end', () => console.log('CSV File Processing Completed'));

Pro Tip: Store test data in CSV format when running multiple test cases with varied inputs.


Lesson 3: Parsing JSON Data in JavaScript for API Testing Preparation

Concept:
JSON is widely used in API responses and configurations in test automation.

Key Topics:

  • JSON Basics: Understanding JSON structure.
  • Parsing JSON: Converting JSON strings to JavaScript objects.
  • Stringifying JSON: Converting JavaScript objects to JSON format.
  • Using JSON in API Testing: Storing and validating API response data.

Example:

let testData = '{ "testName": "Login", "status": "Passed" }';
let parsedData = JSON.parse(testData);
console.log(parsedData.testName); // Output: Login

let jsonString = JSON.stringify(parsedData, null, 2);
console.log(jsonString);

Pro Tip: Use JSON for storing structured test data and API mock responses.


Lesson 4: Introduction to File System Operations in Node.js for QA Tasks

Concept:
Advanced file operations like creating, copying, and monitoring files are useful in automation scripts.

Key Topics:

  • Directory Operations: Creating and managing folders.
  • File Information: Retrieving metadata like file size and modification date.
  • File Copying: Automating test data backups.
  • File Watching: Monitoring changes to test logs.

Example:

const fs = require('fs');

// Creating a new directory
if (!fs.existsSync('logs')) {
    fs.mkdirSync('logs');
}

// Watching a file for changes
fs.watch('testResults.txt', (event, filename) => {
    console.log(`File ${filename} was modified: ${event}`);
});

Pro Tip: Use file-watching techniques to trigger automated log analysis.


Conclusion

This module covered essential file I/O and data persistence techniques in JavaScript for test automation, enabling better test management and reporting.

Key Takeaways:

  • The fs module allows reading and writing files efficiently.
  • CSV files are ideal for data-driven test execution.
  • JSON parsing simplifies API testing and configuration handling.
  • File system operations automate data storage and monitoring tasks.

What’s Next?
In the next module, we will explore Introduction to JavaScript for Selenium – Preparation for UI Automation, where we will cover setting up Selenium WebDriver, interacting with web elements, and transitioning to advanced UI automation strategies.

Visit us at Testamplify | X | Instagram | LinkedIn

Image description