Skip to main content
Glama
ooples

MCP Console Automation Server

parameterized-test-demo.ts3.43 kB
/** * Parameterized Test Demo * * Demonstrates data-driven testing with multiple datasets. */ import { DataParameterizer } from '../src/testing/DataParameterizer.js'; import { TestDataLoader } from '../src/testing/TestDataLoader.js'; import { TestDefinition } from '../src/types/test-framework.js'; import * as path from 'path'; async function main() { console.log('=== Parameterized Test Demo ===\n'); // 1. Create instances const loader = new TestDataLoader(); const parameterizer = new DataParameterizer(); // 2. Load test data from CSV console.log('Loading test data from CSV...'); const fixturesPath = path.resolve(process.cwd(), 'data/fixtures'); const testData = await loader.loadCSV(path.join(fixturesPath, 'test-data.csv')); console.log(`Loaded ${testData.length} test cases\n`); // 3. Create a test definition const testDef: TestDefinition = { name: 'API Health Check Test', description: 'Test API endpoints with various inputs', assertions: [], timeout: 10000, retry: 0, }; // 4. Run with different strategies console.log('--- Strategy: ALL (run all datasets) ---'); const resultAll = await parameterizer.runParameterized( testDef, testData.slice(0, 5), { strategy: 'all' } ); const summaryAll = parameterizer.summarizeResults(resultAll); console.log(`Total: ${summaryAll.total}`); console.log(`Passed: ${summaryAll.passed}`); console.log(`Failed: ${summaryAll.failed}`); console.log(`Pass Rate: ${(summaryAll.passRate * 100).toFixed(1)}%`); console.log(`Avg Duration: ${summaryAll.avgDuration.toFixed(2)}ms\n`); // 5. Run with first-failure strategy console.log('--- Strategy: FIRST-FAILURE (stop on first failure) ---'); const resultFirstFailure = await parameterizer.runParameterized( testDef, testData.slice(0, 10), { strategy: 'first-failure' } ); const summaryFirstFailure = parameterizer.summarizeResults(resultFirstFailure); console.log(`Executed: ${resultFirstFailure.results.length} out of 10`); console.log(`Pass Rate: ${(summaryFirstFailure.passRate * 100).toFixed(1)}%\n`); // 6. Run with random sample console.log('--- Strategy: RANDOM-SAMPLE (sample 3 random datasets) ---'); const resultSample = await parameterizer.runParameterized( testDef, testData, { strategy: 'random-sample', sampleSize: 3 } ); const summarySample = parameterizer.summarizeResults(resultSample); console.log(`Sampled: ${resultSample.results.length} datasets`); console.log(`Pass Rate: ${(summarySample.passRate * 100).toFixed(1)}%\n`); // 7. Show individual results console.log('--- Individual Results (first 5) ---'); resultAll.results.slice(0, 5).forEach((result, index) => { const dataset = resultAll.datasets[index]; console.log(`\nDataset ${index + 1}: ${dataset.test_name}`); console.log(` Status: ${result.status}`); console.log(` Duration: ${result.duration}ms`); }); // 8. Identify failed datasets const failed = parameterizer.getFailedDatasets(resultAll); if (failed.length > 0) { console.log('\n--- Failed Datasets ---'); failed.forEach(({ index, dataset }) => { console.log(` ${index}: ${dataset.test_name}`); }); } else { console.log('\nAll tests passed!'); } console.log('\n=== Demo Complete ==='); } // Run the demo main().catch((error) => { console.error('Demo failed:', error); process.exit(1); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ooples/mcp-console-automation'

If you have feedback or need assistance with the MCP directory API, please join our Discord server