UNPKG

@alphabin/trx

Version:

TRX reporter for Playwright tests with Azure Blob Storage upload support

128 lines (127 loc) 4.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SystemCollector = void 0; const os_1 = __importDefault(require("os")); const exec_util_1 = require("../utils/exec.util"); const logger_util_1 = __importDefault(require("../utils/logger.util")); /** * Collector for system metadata */ class SystemCollector { /** * Collects system metadata */ async collect() { try { // Get hostname const hostname = this.getHostname(); // Get CPU information const cpu = await this.getCpuInfo(); // Get memory information const memory = this.getMemoryInfo(); // Get OS info const osInfo = `${process.platform} ${process.arch}`; // Get Node.js version const nodejs = process.version; // Get Playwright version let playwright = 'unknown'; try { // Try to require from peer dep or dev dep // eslint-disable-next-line @typescript-eslint/no-var-requires playwright = require('@playwright/test/package.json').version; } catch { // fallback } // Get browser info from env const browser = process.env.BROWSER || process.env.PLAYWRIGHT_BROWSER || 'unknown'; const browserVersion = process.env.BROWSER_VERSION || 'unknown'; return { hostname, cpu, memory, os: osInfo, nodejs, playwright, browser, browserVersion }; } catch (error) { logger_util_1.default.error('Failed to collect system metadata', error); return {}; } } /** * Gets the hostname */ getHostname() { try { return os_1.default.hostname() || 'unknown'; } catch (error) { logger_util_1.default.debug('Failed to get hostname', error); return 'unknown'; } } /** * Gets CPU information */ async getCpuInfo() { try { const cpus = os_1.default.cpus(); const count = cpus.length; // Get CPU model from the first core let model = count > 0 ? cpus[0].model : 'unknown'; // On Linux, try to get a more detailed CPU model using lscpu if (process.platform === 'linux') { try { const lscpuOutput = await (0, exec_util_1.execCommand)('lscpu | grep "Model name" | cut -d ":" -f 2'); if (lscpuOutput) { model = lscpuOutput.trim(); } } catch (error) { // Fallback to the OS-provided model logger_util_1.default.debug('Failed to get detailed CPU info from lscpu', error); } } return { count, model }; } catch (error) { logger_util_1.default.debug('Failed to get CPU info', error); return { count: 0, model: 'unknown' }; } } /** * Gets memory information */ getMemoryInfo() { try { const totalMemoryBytes = os_1.default.totalmem(); // Convert to human-readable format (GB) const totalMemoryGB = Math.round(totalMemoryBytes / (1024 * 1024 * 1024) * 10) / 10; const total = `${totalMemoryGB}GB`; return { total }; } catch (error) { logger_util_1.default.debug('Failed to get memory info', error); return { total: 'unknown' }; } } } exports.SystemCollector = SystemCollector; exports.default = SystemCollector;