@elastic/synthetics 1.0.0-beta.44 → 1.0.0-beta.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/cli.js +5 -3
- package/dist/cli.js.map +1 -1
- package/dist/common_types.d.ts +2 -1
- package/dist/common_types.d.ts.map +1 -1
- package/dist/core/gatherer.d.ts.map +1 -1
- package/dist/core/gatherer.js +9 -2
- package/dist/core/gatherer.js.map +1 -1
- package/dist/dsl/monitor.d.ts +5 -0
- package/dist/dsl/monitor.d.ts.map +1 -1
- package/dist/dsl/monitor.js +3 -1
- package/dist/dsl/monitor.js.map +1 -1
- package/dist/helpers.d.ts +1 -0
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +3 -1
- package/dist/helpers.js.map +1 -1
- package/dist/options.d.ts +6 -5
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +8 -52
- package/dist/options.js.map +1 -1
- package/dist/plugins/network.d.ts +6 -0
- package/dist/plugins/network.d.ts.map +1 -1
- package/dist/plugins/network.js +85 -59
- package/dist/plugins/network.js.map +1 -1
- package/dist/push/index.d.ts +1 -0
- package/dist/push/index.d.ts.map +1 -1
- package/dist/push/index.js +9 -1
- package/dist/push/index.js.map +1 -1
- package/package.json +8 -7
- package/src/cli.ts +10 -4
- package/src/common_types.ts +5 -2
- package/src/core/gatherer.ts +14 -2
- package/src/dsl/monitor.ts +8 -1
- package/src/helpers.ts +3 -0
- package/src/options.ts +10 -53
- package/src/plugins/network.ts +103 -72
- package/src/push/index.ts +9 -0
package/dist/plugins/network.js
CHANGED
|
@@ -35,6 +35,20 @@ const helpers_1 = require("../helpers");
|
|
|
35
35
|
function epochTimeInSeconds() {
|
|
36
36
|
return (0, helpers_1.getTimestamp)() / 1e6;
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Find the first positive number in an array for Resource timing data
|
|
40
|
+
*/
|
|
41
|
+
const firstPositive = (numbers) => {
|
|
42
|
+
for (let i = 0; i < numbers.length; ++i) {
|
|
43
|
+
if (numbers[i] > 0) {
|
|
44
|
+
return numbers[i];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
};
|
|
49
|
+
const roundMilliSecs = (value) => {
|
|
50
|
+
return Math.floor(value * 1000) / 1000;
|
|
51
|
+
};
|
|
38
52
|
/**
|
|
39
53
|
* Used as a key in each Network Request to identify the
|
|
40
54
|
* associated request across distinct lifecycle events
|
|
@@ -74,7 +88,6 @@ class NetworkManager {
|
|
|
74
88
|
const { product } = await client.send('Browser.getVersion');
|
|
75
89
|
const [name, version] = product.split('/');
|
|
76
90
|
this._browser = { name, version };
|
|
77
|
-
await client.send('Network.enable');
|
|
78
91
|
/**
|
|
79
92
|
* Listen for all network events from PW context
|
|
80
93
|
*/
|
|
@@ -121,7 +134,16 @@ class NetworkManager {
|
|
|
121
134
|
responseReceivedTime: -1,
|
|
122
135
|
resourceSize: 0,
|
|
123
136
|
transferSize: 0,
|
|
124
|
-
timings:
|
|
137
|
+
timings: {
|
|
138
|
+
blocked: -1,
|
|
139
|
+
dns: -1,
|
|
140
|
+
ssl: -1,
|
|
141
|
+
connect: -1,
|
|
142
|
+
send: -1,
|
|
143
|
+
wait: -1,
|
|
144
|
+
receive: -1,
|
|
145
|
+
total: -1,
|
|
146
|
+
},
|
|
125
147
|
};
|
|
126
148
|
if (request.redirectedFrom()) {
|
|
127
149
|
const fromEntry = this._findNetworkEntry(request.redirectedFrom());
|
|
@@ -145,6 +167,37 @@ class NetworkManager {
|
|
|
145
167
|
mimeType: 'x-unknown',
|
|
146
168
|
redirectURL: networkEntry.response.redirectURL,
|
|
147
169
|
};
|
|
170
|
+
// Gather all resource timing information up until the
|
|
171
|
+
// TTFB(Time to first byte) is received
|
|
172
|
+
const timing = request.timing();
|
|
173
|
+
const blocked = roundMilliSecs(firstPositive([
|
|
174
|
+
timing.domainLookupStart,
|
|
175
|
+
timing.connectStart,
|
|
176
|
+
timing.requestStart,
|
|
177
|
+
])) || -1;
|
|
178
|
+
const dns = timing.domainLookupEnd !== -1
|
|
179
|
+
? roundMilliSecs(timing.domainLookupEnd - timing.domainLookupStart)
|
|
180
|
+
: -1;
|
|
181
|
+
const connect = timing.connectEnd !== -1
|
|
182
|
+
? roundMilliSecs(timing.connectEnd - timing.connectStart)
|
|
183
|
+
: -1;
|
|
184
|
+
const ssl = timing.secureConnectionStart !== -1
|
|
185
|
+
? roundMilliSecs(timing.connectEnd - timing.secureConnectionStart)
|
|
186
|
+
: -1;
|
|
187
|
+
const wait = timing.responseStart !== -1
|
|
188
|
+
? roundMilliSecs(timing.responseStart - timing.requestStart)
|
|
189
|
+
: -1;
|
|
190
|
+
networkEntry.timings = {
|
|
191
|
+
blocked,
|
|
192
|
+
dns,
|
|
193
|
+
ssl,
|
|
194
|
+
connect,
|
|
195
|
+
send: 0,
|
|
196
|
+
wait,
|
|
197
|
+
receive: -1,
|
|
198
|
+
total: -1,
|
|
199
|
+
};
|
|
200
|
+
this._calcTotalTime(networkEntry, timing);
|
|
148
201
|
const page = request.frame().page();
|
|
149
202
|
this._addBarrier(page, request.allHeaders().then(reqHeaders => {
|
|
150
203
|
networkEntry.request.headers = reqHeaders;
|
|
@@ -170,68 +223,18 @@ class NetworkManager {
|
|
|
170
223
|
if (!networkEntry)
|
|
171
224
|
return;
|
|
172
225
|
networkEntry.loadEndTime = epochTimeInSeconds();
|
|
226
|
+
// responseEnd is fired after the last byte of the response is received.
|
|
173
227
|
const timing = request.timing();
|
|
174
|
-
const { loadEndTime, requestSentTime } = networkEntry;
|
|
175
|
-
networkEntry.timings = {
|
|
176
|
-
blocked: -1,
|
|
177
|
-
dns: -1,
|
|
178
|
-
ssl: -1,
|
|
179
|
-
connect: -1,
|
|
180
|
-
send: -1,
|
|
181
|
-
wait: -1,
|
|
182
|
-
receive: -1,
|
|
183
|
-
total: -1,
|
|
184
|
-
};
|
|
185
|
-
const firstPositive = (numbers) => {
|
|
186
|
-
for (let i = 0; i < numbers.length; ++i) {
|
|
187
|
-
if (numbers[i] > 0) {
|
|
188
|
-
return numbers[i];
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
return null;
|
|
192
|
-
};
|
|
193
|
-
const roundMilliSecs = (value) => {
|
|
194
|
-
return Math.floor(value * 1000) / 1000;
|
|
195
|
-
};
|
|
196
|
-
if (timing.startTime === 0) {
|
|
197
|
-
// Convert to milliseconds before round off
|
|
198
|
-
const total = roundMilliSecs((loadEndTime - requestSentTime) * 1000);
|
|
199
|
-
networkEntry.timings.total = total;
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
const blocked = roundMilliSecs(firstPositive([
|
|
203
|
-
timing.domainLookupStart,
|
|
204
|
-
timing.connectStart,
|
|
205
|
-
timing.requestStart,
|
|
206
|
-
])) || -1;
|
|
207
|
-
const dns = timing.domainLookupEnd !== -1
|
|
208
|
-
? roundMilliSecs(timing.domainLookupEnd - timing.domainLookupStart)
|
|
209
|
-
: -1;
|
|
210
|
-
const connect = timing.connectEnd !== -1
|
|
211
|
-
? roundMilliSecs(timing.connectEnd - timing.connectStart)
|
|
212
|
-
: -1;
|
|
213
|
-
const ssl = timing.secureConnectionStart !== -1
|
|
214
|
-
? roundMilliSecs(timing.connectEnd - timing.secureConnectionStart)
|
|
215
|
-
: -1;
|
|
216
|
-
const wait = timing.responseStart !== -1
|
|
217
|
-
? roundMilliSecs(timing.responseStart - timing.requestStart)
|
|
218
|
-
: -1;
|
|
219
228
|
const receive = timing.responseEnd !== -1
|
|
220
229
|
? roundMilliSecs(timing.responseEnd - timing.responseStart)
|
|
221
230
|
: -1;
|
|
222
|
-
|
|
223
|
-
networkEntry
|
|
224
|
-
blocked,
|
|
225
|
-
dns,
|
|
226
|
-
connect,
|
|
227
|
-
ssl,
|
|
228
|
-
wait,
|
|
229
|
-
send: 0,
|
|
230
|
-
receive,
|
|
231
|
-
total,
|
|
232
|
-
};
|
|
233
|
-
const page = request.frame().page();
|
|
231
|
+
networkEntry.timings.receive = receive;
|
|
232
|
+
this._calcTotalTime(networkEntry, timing);
|
|
234
233
|
// For aborted/failed requests sizes will not be present
|
|
234
|
+
if (timing.startTime <= 0) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
const page = request.frame().page();
|
|
235
238
|
this._addBarrier(page, request.sizes().then(sizes => {
|
|
236
239
|
networkEntry.request.bytes =
|
|
237
240
|
sizes.requestHeadersSize + sizes.requestBodySize;
|
|
@@ -246,6 +249,29 @@ class NetworkManager {
|
|
|
246
249
|
};
|
|
247
250
|
}));
|
|
248
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Calculates the total time for the network request based on the ResourceTiming
|
|
254
|
+
* data from Playwright. Fallbacks to the event timings if ResourceTiming data
|
|
255
|
+
* is not available.
|
|
256
|
+
*/
|
|
257
|
+
_calcTotalTime(entry, rtiming) {
|
|
258
|
+
const timings = entry.timings;
|
|
259
|
+
entry.timings.total = [
|
|
260
|
+
timings.blocked,
|
|
261
|
+
timings.dns,
|
|
262
|
+
timings.connect,
|
|
263
|
+
timings.wait,
|
|
264
|
+
timings.receive,
|
|
265
|
+
].reduce((pre, cur) => ((cur || -1) > 0 ? cur + pre : pre), 0);
|
|
266
|
+
// fallback when ResourceTiming data is not available
|
|
267
|
+
if (rtiming.startTime <= 0) {
|
|
268
|
+
const end = entry.loadEndTime ||
|
|
269
|
+
entry.responseReceivedTime ||
|
|
270
|
+
entry.requestSentTime;
|
|
271
|
+
const total = roundMilliSecs((end - entry.requestSentTime) * 1000);
|
|
272
|
+
entry.timings.total = total <= 0 ? -1 : total;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
249
275
|
async stop() {
|
|
250
276
|
/**
|
|
251
277
|
* Waiting for all network events is error prone and might hang the tests
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/plugins/network.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAIH,2CAAqC;AAErC,wCAA0C;AAE1C;;;;GAIG;AACH,SAAS,kBAAkB;IACzB,OAAO,IAAA,sBAAY,GAAE,GAAG,GAAG,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACU,QAAA,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAM/D,MAAa,cAAc;IAML;IALZ,QAAQ,CAAc;IACtB,gBAAgB,GAAG,IAAI,GAAG,EAAiB,CAAC;IACpD,OAAO,GAAuB,EAAE,CAAC;IACjC,YAAY,GAAkB,IAAI,CAAC;IAEnC,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC;;;;;OAKG;IACK,WAAW,CAAC,IAAU,EAAE,OAAsB;QACpD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACpB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CACH;YACD,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAA,YAAG,EAAC,4CAA4C,CAAC,CAAC;QAClD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAClC
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/plugins/network.ts"],"names":[],"mappings":"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"}
|
package/dist/push/index.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export declare function loadSettings(): Promise<ProjectSettings>;
|
|
|
6
6
|
export declare function validateSettings(opts: PushOptions): void;
|
|
7
7
|
export declare function catchIncorrectSettings(settings: ProjectSettings, options: PushOptions): Promise<void>;
|
|
8
8
|
export declare function pushLegacy(monitors: Monitor[], options: PushOptions, version: number): Promise<void>;
|
|
9
|
+
export declare function warnIfThrottled(monitors: Monitor[]): void;
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/push/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/push/index.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAqB,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/push/index.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAqB,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAY5D,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAYpE,wBAAsB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,iBAiDnE;AAoCD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,UAU1D;AAID,wBAAsB,YAAY,6BAajC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,QA6BjD;AAgBD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,WAAW,iBA0BrB;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,iBAgChB;AAGD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,QAKlD"}
|
package/dist/push/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.pushLegacy = exports.catchIncorrectSettings = exports.validateSettings = exports.loadSettings = exports.formatDuplicateError = exports.push = void 0;
|
|
6
|
+
exports.warnIfThrottled = exports.pushLegacy = exports.catchIncorrectSettings = exports.validateSettings = exports.loadSettings = exports.formatDuplicateError = exports.push = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* MIT License
|
|
9
9
|
*
|
|
@@ -224,4 +224,12 @@ async function pushLegacy(monitors, options, version) {
|
|
|
224
224
|
(0, helpers_1.done)(`Pushed: ${(0, colors_1.grey)((0, helpers_1.getMonitorManagementURL)(options.url))}`);
|
|
225
225
|
}
|
|
226
226
|
exports.pushLegacy = pushLegacy;
|
|
227
|
+
// prints warning if any of the monitors has throttling settings enabled during push
|
|
228
|
+
function warnIfThrottled(monitors) {
|
|
229
|
+
const throttled = monitors.some(monitor => monitor.config.throttling != null);
|
|
230
|
+
if (throttled) {
|
|
231
|
+
(0, helpers_1.warn)(helpers_1.THROTTLING_WARNING_MSG);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
exports.warnIfThrottled = warnIfThrottled;
|
|
227
235
|
//# sourceMappingURL=index.js.map
|
package/dist/push/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/push/index.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,oDAA4B;AAC5B,0CAAkD;AAClD,uCAAkC;AAClC,yCAA0C;AAC1C,uCAKmB;AACnB,4CAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/push/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elastic/synthetics",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.46",
|
|
4
4
|
"description": "Elastic synthetic monitoring agent",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"archiver": "^5.3.1",
|
|
44
|
-
"commander": "^
|
|
45
|
-
"deepmerge": "^4.
|
|
44
|
+
"commander": "^10.0.1",
|
|
45
|
+
"deepmerge": "^4.3.1",
|
|
46
46
|
"enquirer": "^2.3.6",
|
|
47
47
|
"esbuild": "^0.16.10",
|
|
48
48
|
"expect": "^28.1.3",
|
|
@@ -52,14 +52,14 @@
|
|
|
52
52
|
"pirates": "^4.0.5",
|
|
53
53
|
"playwright-chromium": "=1.32.3",
|
|
54
54
|
"playwright-core": "=1.32.3",
|
|
55
|
-
"semver": "^7.
|
|
56
|
-
"sharp": "^0.
|
|
55
|
+
"semver": "^7.5.0",
|
|
56
|
+
"sharp": "^0.32.0",
|
|
57
57
|
"snakecase-keys": "^4.0.1",
|
|
58
|
-
"sonic-boom": "^3.
|
|
58
|
+
"sonic-boom": "^3.3.0",
|
|
59
59
|
"source-map-support": "^0.5.21",
|
|
60
60
|
"typescript": "^4.8.4",
|
|
61
61
|
"undici": "^5.21.2",
|
|
62
|
-
"yaml": "^2.
|
|
62
|
+
"yaml": "^2.2.2"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@types/jest": "^28.1.8",
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
"husky": "^4.3.6",
|
|
73
73
|
"is-positive": "3.1.0",
|
|
74
74
|
"jest": "^28.1.3",
|
|
75
|
+
"jest-junit": "^15.0.0",
|
|
75
76
|
"lint-staged": "^10.5.3",
|
|
76
77
|
"prettier": "^2.7.1",
|
|
77
78
|
"rimraf": "^3.0.2",
|
package/src/cli.ts
CHANGED
|
@@ -43,6 +43,7 @@ import {
|
|
|
43
43
|
loadSettings,
|
|
44
44
|
validateSettings,
|
|
45
45
|
catchIncorrectSettings,
|
|
46
|
+
warnIfThrottled,
|
|
46
47
|
} from './push';
|
|
47
48
|
import {
|
|
48
49
|
formatLocations,
|
|
@@ -79,7 +80,6 @@ program
|
|
|
79
80
|
)
|
|
80
81
|
.option('--inline', 'Run inline journeys from heartbeat')
|
|
81
82
|
.option('-r, --require <modules...>', 'module(s) to preload')
|
|
82
|
-
.option('--no-headless', 'run browser in headful mode')
|
|
83
83
|
.option('--sandbox', 'enable chromium sandboxing')
|
|
84
84
|
.option('--rich-events', 'Mimics a heartbeat run')
|
|
85
85
|
.option(
|
|
@@ -119,10 +119,13 @@ program
|
|
|
119
119
|
.option(
|
|
120
120
|
'--throttling <config>',
|
|
121
121
|
'JSON object to throttle network conditions for download and upload throughput in megabits/second and latency in milliseconds. Ex: { "download": 10, "upload": 5, "latency": 200 }.',
|
|
122
|
-
parseThrottling
|
|
123
|
-
|
|
122
|
+
parseThrottling
|
|
123
|
+
)
|
|
124
|
+
.option(
|
|
125
|
+
'--no-throttling',
|
|
126
|
+
'Turns off default network throttling.',
|
|
127
|
+
parseThrottling
|
|
124
128
|
)
|
|
125
|
-
.option('--no-throttling', 'Turns off default network throttling.')
|
|
126
129
|
.addOption(playwrightOpts)
|
|
127
130
|
.version(version)
|
|
128
131
|
.description('Run synthetic tests')
|
|
@@ -208,6 +211,9 @@ program
|
|
|
208
211
|
validateSettings(options);
|
|
209
212
|
await catchIncorrectSettings(settings, options);
|
|
210
213
|
const monitors = runner.buildMonitors(options);
|
|
214
|
+
if ((options as CliArgs).throttling == null) {
|
|
215
|
+
warnIfThrottled(monitors);
|
|
216
|
+
}
|
|
211
217
|
monitors.push(...(await createLightweightMonitors(workDir, options)));
|
|
212
218
|
await push(monitors, options);
|
|
213
219
|
} catch (e) {
|
package/src/common_types.ts
CHANGED
|
@@ -221,7 +221,6 @@ export type CliArgs = BaseArgs & {
|
|
|
221
221
|
pattern?: string;
|
|
222
222
|
inline?: boolean;
|
|
223
223
|
require?: Array<string>;
|
|
224
|
-
headless?: boolean;
|
|
225
224
|
sandbox?: boolean;
|
|
226
225
|
richEvents?: boolean;
|
|
227
226
|
capability?: Array<string>;
|
|
@@ -255,7 +254,11 @@ export type ProjectSettings = {
|
|
|
255
254
|
};
|
|
256
255
|
|
|
257
256
|
export type PlaywrightOptions = LaunchOptions &
|
|
258
|
-
BrowserContextOptions & {
|
|
257
|
+
BrowserContextOptions & {
|
|
258
|
+
testIdAttribute?: string;
|
|
259
|
+
actionTimeout?: number;
|
|
260
|
+
navigationTimeout?: number;
|
|
261
|
+
};
|
|
259
262
|
export type SyntheticsConfig = {
|
|
260
263
|
params?: Params;
|
|
261
264
|
playwrightOptions?: PlaywrightOptions;
|
package/src/core/gatherer.ts
CHANGED
|
@@ -34,6 +34,9 @@ import { PluginManager } from '../plugins';
|
|
|
34
34
|
import { log } from './logger';
|
|
35
35
|
import { Driver, NetworkConditions, RunOptions } from '../common_types';
|
|
36
36
|
|
|
37
|
+
// Default timeout for Playwright actions and Navigations
|
|
38
|
+
const DEFAULT_TIMEOUT = 50000;
|
|
39
|
+
|
|
37
40
|
/**
|
|
38
41
|
* Purpose of the Gatherer is to set up the necessary browser driver
|
|
39
42
|
* related capabilities for the runner to run all journeys
|
|
@@ -43,7 +46,7 @@ export class Gatherer {
|
|
|
43
46
|
|
|
44
47
|
static async setupDriver(options: RunOptions): Promise<Driver> {
|
|
45
48
|
log('Gatherer: setup driver');
|
|
46
|
-
const { wsEndpoint, playwrightOptions
|
|
49
|
+
const { wsEndpoint, playwrightOptions } = options;
|
|
47
50
|
|
|
48
51
|
if (Gatherer.browser == null) {
|
|
49
52
|
if (wsEndpoint) {
|
|
@@ -63,8 +66,17 @@ export class Gatherer {
|
|
|
63
66
|
...playwrightOptions,
|
|
64
67
|
userAgent: await Gatherer.getUserAgent(playwrightOptions?.userAgent),
|
|
65
68
|
});
|
|
66
|
-
|
|
69
|
+
// Set timeouts for actions and navigations
|
|
70
|
+
context.setDefaultTimeout(
|
|
71
|
+
playwrightOptions?.actionTimeout ?? DEFAULT_TIMEOUT
|
|
72
|
+
);
|
|
73
|
+
context.setDefaultNavigationTimeout(
|
|
74
|
+
playwrightOptions?.navigationTimeout ?? DEFAULT_TIMEOUT
|
|
75
|
+
);
|
|
67
76
|
|
|
77
|
+
// TODO: Network throttling via chrome devtools emulation is disabled for now.
|
|
78
|
+
// See docs/throttling.md for more details.
|
|
79
|
+
// Gatherer.setNetworkConditions(context, networkConditions);
|
|
68
80
|
if (playwrightOptions?.testIdAttribute) {
|
|
69
81
|
selectors.setTestIdAttribute(playwrightOptions.testIdAttribute);
|
|
70
82
|
}
|
package/src/dsl/monitor.ts
CHANGED
|
@@ -40,7 +40,9 @@ export type SyntheticsLocationsType = keyof typeof LocationsMap;
|
|
|
40
40
|
export const SyntheticsLocations = Object.keys(
|
|
41
41
|
LocationsMap
|
|
42
42
|
) as SyntheticsLocationsType[];
|
|
43
|
-
export const ALLOWED_SCHEDULES = [
|
|
43
|
+
export const ALLOWED_SCHEDULES = [
|
|
44
|
+
1, 3, 5, 10, 15, 20, 30, 60, 120, 240,
|
|
45
|
+
] as const;
|
|
44
46
|
|
|
45
47
|
export type MonitorConfig = {
|
|
46
48
|
id?: string;
|
|
@@ -51,6 +53,11 @@ export type MonitorConfig = {
|
|
|
51
53
|
enabled?: boolean;
|
|
52
54
|
locations?: SyntheticsLocationsType[];
|
|
53
55
|
privateLocations?: string[];
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated This option is ignored.
|
|
58
|
+
* Network throttling via chrome devtools is ignored at the moment.
|
|
59
|
+
* See https://github.com/elastic/synthetics/blob/main/docs/throttling.md for more details.
|
|
60
|
+
*/
|
|
54
61
|
throttling?: boolean | ThrottlingOptions;
|
|
55
62
|
screenshot?: ScreenshotOptions;
|
|
56
63
|
params?: Params;
|
package/src/helpers.ts
CHANGED
|
@@ -300,6 +300,9 @@ export function getNetworkConditions(
|
|
|
300
300
|
};
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
+
export const THROTTLING_WARNING_MSG = `Throttling may not be active when the tests run - see
|
|
304
|
+
https://github.com/elastic/synthetics/blob/main/docs/throttling.md for more details`;
|
|
305
|
+
|
|
303
306
|
const dstackTraceLimit = 10;
|
|
304
307
|
|
|
305
308
|
// Uses the V8 Stacktrace API to get the function location
|
package/src/options.ts
CHANGED
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
import merge from 'deepmerge';
|
|
27
27
|
import { createOption } from 'commander';
|
|
28
28
|
import { readConfig } from './config';
|
|
29
|
-
import {
|
|
30
|
-
import
|
|
29
|
+
import type { CliArgs, RunOptions } from './common_types';
|
|
30
|
+
import { THROTTLING_WARNING_MSG, warn } from './helpers';
|
|
31
31
|
|
|
32
32
|
export function normalizeOptions(cliArgs: CliArgs): RunOptions {
|
|
33
33
|
const options: RunOptions = {
|
|
@@ -101,7 +101,6 @@ export function normalizeOptions(cliArgs: CliArgs): RunOptions {
|
|
|
101
101
|
);
|
|
102
102
|
options.playwrightOptions = {
|
|
103
103
|
...playwrightOpts,
|
|
104
|
-
headless: cliArgs.headless,
|
|
105
104
|
chromiumSandbox: cliArgs.sandbox ?? playwrightOpts?.chromiumSandbox,
|
|
106
105
|
ignoreHTTPSErrors:
|
|
107
106
|
cliArgs.ignoreHttpsErrors ?? playwrightOpts?.ignoreHTTPSErrors,
|
|
@@ -111,28 +110,6 @@ export function normalizeOptions(cliArgs: CliArgs): RunOptions {
|
|
|
111
110
|
* Get the default monitor config from synthetics.config.ts file
|
|
112
111
|
*/
|
|
113
112
|
const monitor = config.monitor;
|
|
114
|
-
if (cliArgs.throttling) {
|
|
115
|
-
const throttleConfig = merge.all([
|
|
116
|
-
DEFAULT_THROTTLING_OPTIONS,
|
|
117
|
-
toObject(monitor?.throttling),
|
|
118
|
-
toObject(cliArgs.throttling),
|
|
119
|
-
]);
|
|
120
|
-
if (monitor?.throttling !== false) {
|
|
121
|
-
options.throttling = throttleConfig;
|
|
122
|
-
options.networkConditions = getNetworkConditions(throttleConfig);
|
|
123
|
-
} else {
|
|
124
|
-
/**
|
|
125
|
-
* If the throttling is disabled via Project monitor config, use it a source
|
|
126
|
-
* of truth and disable it for pushing those monitors.
|
|
127
|
-
*/
|
|
128
|
-
options.throttling = false;
|
|
129
|
-
}
|
|
130
|
-
} else {
|
|
131
|
-
/**
|
|
132
|
-
* Do not apply throttling when `--no-throttling` flag is passed
|
|
133
|
-
*/
|
|
134
|
-
options.throttling = false;
|
|
135
|
-
}
|
|
136
113
|
|
|
137
114
|
options.schedule = cliArgs.schedule ?? monitor?.schedule;
|
|
138
115
|
options.locations = cliArgs.locations ?? monitor?.locations;
|
|
@@ -142,6 +119,7 @@ export function normalizeOptions(cliArgs: CliArgs): RunOptions {
|
|
|
142
119
|
return options;
|
|
143
120
|
}
|
|
144
121
|
|
|
122
|
+
/* eslint-disable-next-line @typescript-eslint/no-unused-vars */
|
|
145
123
|
function toObject(value: boolean | Record<string, any>): Record<string, any> {
|
|
146
124
|
const defaulVal = {};
|
|
147
125
|
if (typeof value === 'boolean') {
|
|
@@ -151,35 +129,14 @@ function toObject(value: boolean | Record<string, any>): Record<string, any> {
|
|
|
151
129
|
}
|
|
152
130
|
|
|
153
131
|
/**
|
|
154
|
-
* Parses the throttling CLI settings
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
132
|
+
* Parses the throttling CLI settings with `{download: 5, upload: 3, latency:
|
|
133
|
+
* 20}` format
|
|
134
|
+
*
|
|
135
|
+
* Since throttling is disabled for now, we warn the users if throttling/nothrottling
|
|
136
|
+
* flag is passed to the CLI
|
|
158
137
|
*/
|
|
159
|
-
export function parseThrottling(
|
|
160
|
-
|
|
161
|
-
if (THROTTLING_REGEX.test(value)) {
|
|
162
|
-
const throttling: ThrottlingOptions = {};
|
|
163
|
-
const conditions = value.split('/');
|
|
164
|
-
|
|
165
|
-
conditions.forEach(condition => {
|
|
166
|
-
const setting = condition.slice(0, condition.length - 1);
|
|
167
|
-
const token = condition.slice(-1);
|
|
168
|
-
switch (token) {
|
|
169
|
-
case 'd':
|
|
170
|
-
throttling.download = Number(setting);
|
|
171
|
-
break;
|
|
172
|
-
case 'u':
|
|
173
|
-
throttling.upload = Number(setting);
|
|
174
|
-
break;
|
|
175
|
-
case 'l':
|
|
176
|
-
throttling.latency = Number(setting);
|
|
177
|
-
break;
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
return throttling;
|
|
181
|
-
}
|
|
182
|
-
return JSON.parse(value || prev);
|
|
138
|
+
export function parseThrottling() {
|
|
139
|
+
warn(THROTTLING_WARNING_MSG);
|
|
183
140
|
}
|
|
184
141
|
|
|
185
142
|
export function getCommonCommandOpts() {
|