%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const assert = require('assert'); const http = require('http'); const { PerformanceObserver } = require('perf_hooks'); const entries = []; const obs = new PerformanceObserver(common.mustCallAtLeast((items) => { entries.push(...items.getEntries()); })); obs.observe({ type: 'http' }); const expected = 'Post Body For Test'; const makeRequest = (options) => { return new Promise((resolve, reject) => { http.request(options, common.mustCall((res) => { resolve(); })).on('error', reject).end(options.data); }); }; const server = http.Server(common.mustCall((req, res) => { let result = ''; req.setEncoding('utf8'); req.on('data', function(chunk) { result += chunk; }); req.on('end', common.mustCall(function() { assert.strictEqual(result, expected); res.writeHead(200); res.end('hello world\n'); })); }, 2)); server.listen(0, common.mustCall(async () => { await Promise.all([ makeRequest({ port: server.address().port, path: '/', method: 'POST', data: expected }), makeRequest({ port: server.address().port, path: '/', method: 'POST', data: expected }), ]); server.close(); })); process.on('exit', () => { let numberOfHttpClients = 0; let numberOfHttpRequests = 0; entries.forEach((entry) => { assert.strictEqual(entry.entryType, 'http'); assert.strictEqual(typeof entry.startTime, 'number'); assert.strictEqual(typeof entry.duration, 'number'); if (entry.name === 'HttpClient') { numberOfHttpClients++; } else if (entry.name === 'HttpRequest') { numberOfHttpRequests++; } assert.strictEqual(typeof entry.detail.req.method, 'string'); assert.strictEqual(typeof entry.detail.req.url, 'string'); assert.strictEqual(typeof entry.detail.req.headers, 'object'); assert.strictEqual(typeof entry.detail.res.statusCode, 'number'); assert.strictEqual(typeof entry.detail.res.statusMessage, 'string'); assert.strictEqual(typeof entry.detail.res.headers, 'object'); }); assert.strictEqual(numberOfHttpClients, 2); assert.strictEqual(numberOfHttpRequests, 2); });