@nsshunt/stsappframework 3.1.159 → 3.1.161
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/dist/testertesting/app.js +194 -0
- package/dist/testertesting/app.js.map +1 -0
- package/dist/testertesting/commonTypes.js +16 -0
- package/dist/testertesting/commonTypes.js.map +1 -0
- package/dist/testertesting/requestResponseHelper.js +83 -0
- package/dist/testertesting/requestResponseHelper.js.map +1 -0
- package/dist/testertesting/stsTestWorkerDefinitions.js +34 -0
- package/dist/testertesting/stsTestWorkerDefinitions.js.map +1 -0
- package/dist/testertesting/workerInstance.js +131 -0
- package/dist/testertesting/workerInstance.js.map +1 -0
- package/dist/testertesting/workerManager.js +417 -0
- package/dist/testertesting/workerManager.js.map +1 -0
- package/dist/testertesting/workerPrimaryTestRunner01.js +62 -0
- package/dist/testertesting/workerPrimaryTestRunner01.js.map +1 -0
- package/dist/testertesting/workerWorkerTestRunner01.js +146 -0
- package/dist/testertesting/workerWorkerTestRunner01.js.map +1 -0
- package/dist/webworkertesting/app.js +2 -0
- package/dist/webworkertesting/app.js.map +1 -1
- package/package.json +2 -2
- package/src/testertesting/app.ts +238 -0
- package/src/testertesting/commonTypes.ts +50 -0
- package/src/testertesting/requestResponseHelper.ts +95 -0
- package/src/testertesting/stsTestWorkerDefinitions.ts +150 -0
- package/src/testertesting/workerInstance.ts +154 -0
- package/src/testertesting/workerManager.ts +478 -0
- package/src/testertesting/workerPrimaryTestRunner01.ts +81 -0
- package/src/testertesting/workerWorkerTestRunner01.ts +184 -0
- package/src/webworkertesting/app.ts +4 -0
- package/types/testertesting/app.d.ts +2 -0
- package/types/testertesting/app.d.ts.map +1 -0
- package/types/testertesting/commonTypes.d.ts +44 -0
- package/types/testertesting/commonTypes.d.ts.map +1 -0
- package/types/testertesting/requestResponseHelper.d.ts +8 -0
- package/types/testertesting/requestResponseHelper.d.ts.map +1 -0
- package/types/testertesting/stsTestWorkerDefinitions.d.ts +124 -0
- package/types/testertesting/stsTestWorkerDefinitions.d.ts.map +1 -0
- package/types/testertesting/workerInstance.d.ts +18 -0
- package/types/testertesting/workerInstance.d.ts.map +1 -0
- package/types/testertesting/workerManager.d.ts +14 -0
- package/types/testertesting/workerManager.d.ts.map +1 -0
- package/types/testertesting/workerPrimaryTestRunner01.d.ts +8 -0
- package/types/testertesting/workerPrimaryTestRunner01.d.ts.map +1 -0
- package/types/testertesting/workerWorkerTestRunner01.d.ts +16 -0
- package/types/testertesting/workerWorkerTestRunner01.d.ts.map +1 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
7
|
+
const cluster_1 = __importDefault(require("cluster"));
|
|
8
|
+
const worker_threads_1 = require("worker_threads");
|
|
9
|
+
const workerPrimaryTestRunner01_1 = require("./workerPrimaryTestRunner01");
|
|
10
|
+
const workerManager_1 = require("./workerManager");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
// Force chalk level
|
|
13
|
+
chalk_1.default.level = 3;
|
|
14
|
+
const stsobservability_1 = require("@nsshunt/stsobservability");
|
|
15
|
+
const stsutils_1 = require("@nsshunt/stsutils");
|
|
16
|
+
const uuid_1 = require("uuid");
|
|
17
|
+
const stsconfig_1 = require("@nsshunt/stsconfig");
|
|
18
|
+
const LogInfoMessage = (message) => console.log(chalk_1.default.grey(message));
|
|
19
|
+
const LogErrorMessage = (message) => console.error(chalk_1.default.red(message));
|
|
20
|
+
if (cluster_1.default.isPrimary) {
|
|
21
|
+
//new MasterProcessBase(ServiceConfigOptions(true, cluster.isPrimary)).SetupServer();
|
|
22
|
+
LogInfoMessage(`Primary ${process.pid} is running`);
|
|
23
|
+
// Fork workers.
|
|
24
|
+
cluster_1.default.fork();
|
|
25
|
+
cluster_1.default.on('exit', (worker, code, signal) => {
|
|
26
|
+
LogInfoMessage(`worker ${worker.process.pid} died`);
|
|
27
|
+
});
|
|
28
|
+
/*
|
|
29
|
+
const fileName ='./dist/webworkertesting/worker.js';
|
|
30
|
+
|
|
31
|
+
const publishCollectorWebWorker = new Worker(fileName);
|
|
32
|
+
publishCollectorWebWorker.unref();
|
|
33
|
+
|
|
34
|
+
publishCollectorWebWorker.postMessage({cmd: 'text', message: 'Hello World'});
|
|
35
|
+
|
|
36
|
+
publishCollectorWebWorker.on('message', (data) => {
|
|
37
|
+
LogInfoMessage(`cluster.primary (${process.pid}): message from worker = [${JSON.stringify(data)}]`);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const { port1, port2 } = new MessageChannel();
|
|
41
|
+
|
|
42
|
+
publishCollectorWebWorker.postMessage({cmd: 'portmessage', port: port2}, [ port2 ]);
|
|
43
|
+
port1.postMessage('sending to port1');
|
|
44
|
+
port1.on('message', (data) => {
|
|
45
|
+
LogInfoMessage(`cluster.primary (${process.pid}): message from message port = [${data}]`);
|
|
46
|
+
});
|
|
47
|
+
*/
|
|
48
|
+
LogInfoMessage(`cluster primary completed ...`);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
LogInfoMessage(`Worker ${process.pid} started`);
|
|
52
|
+
//const worker = new WorkerProcessBase(ServiceConfigOptions(true, cluster.isPrimary));
|
|
53
|
+
//worker.SetupServer();
|
|
54
|
+
const hostName = 'host01';
|
|
55
|
+
const agentId = 'agent01';
|
|
56
|
+
const userAgent = 'userAgent01';
|
|
57
|
+
const asyncRunnerContext = {
|
|
58
|
+
nid: `\
|
|
59
|
+
${hostName}${stsutils_1.ModelDelimeter.COMPONENT_SEPERATOR}${agentId}-${userAgent}\
|
|
60
|
+
${stsutils_1.ModelDelimeter.NID_SEPERATOR}\
|
|
61
|
+
MainProcess\
|
|
62
|
+
${stsutils_1.ModelDelimeter.SEPERATOR}\
|
|
63
|
+
0`,
|
|
64
|
+
id: (0, uuid_1.v4)(),
|
|
65
|
+
// id: `${applicationStore.applicationConfig.HOST}${ModelDelimeter.COMPONENT_SEPERATOR}${applicationStore.applicationConfig.AGENT_ID}-${applicationStore.applicationConfig.USER_AGENT}`,
|
|
66
|
+
hostName: (hostName ? hostName : 'host01'),
|
|
67
|
+
agentName: `${agentId}-${userAgent}`,
|
|
68
|
+
threadId: 'MainProcess',
|
|
69
|
+
asyncRunnerId: 0
|
|
70
|
+
};
|
|
71
|
+
const url = `https://stscore.stsmda.org:3001/stsinstrumentmanager/v1/publishmessage`;
|
|
72
|
+
const publishTransportOptions = {
|
|
73
|
+
transportType: stsobservability_1.TransportType.RESTAPI,
|
|
74
|
+
//url: `${goptions.imendpoint}:${goptions.import}${goptions.imapiroot}/publishmessage`,
|
|
75
|
+
url,
|
|
76
|
+
logger: stsutils_1.defaultLogger,
|
|
77
|
+
agentOptions: {
|
|
78
|
+
keepAlive: stsconfig_1.goptions.keepAlive,
|
|
79
|
+
maxSockets: stsconfig_1.goptions.maxSockets,
|
|
80
|
+
maxTotalSockets: stsconfig_1.goptions.maxTotalSockets,
|
|
81
|
+
maxFreeSockets: stsconfig_1.goptions.maxFreeSockets,
|
|
82
|
+
timeout: 30000, //@@ config
|
|
83
|
+
rejectUnauthorized: stsconfig_1.goptions.isProduction // Allows self signed certs in non production mode(s)
|
|
84
|
+
},
|
|
85
|
+
showPublishPayload: false
|
|
86
|
+
};
|
|
87
|
+
LogInfoMessage(`publishTransportOptions: [${publishTransportOptions.url}]`);
|
|
88
|
+
const standardInstruments = [
|
|
89
|
+
[stsobservability_1.Gauge.TIMER_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_TIMER],
|
|
90
|
+
[stsobservability_1.Gauge.LOGGER, stsobservability_1.GaugeTypes.INSTRUMENT_LOG, {
|
|
91
|
+
consoleLogging: process.env.consoleLogging,
|
|
92
|
+
instrumentLogging: process.env.instrumentLogging
|
|
93
|
+
}],
|
|
94
|
+
[stsobservability_1.Gauge.NETWORK_RX_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_VELOCITY],
|
|
95
|
+
[stsobservability_1.Gauge.NETWORK_TX_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_VELOCITY]
|
|
96
|
+
];
|
|
97
|
+
const agentInstruments = [
|
|
98
|
+
[stsobservability_1.Gauge.REQUEST_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Total number of requests serviced
|
|
99
|
+
[stsobservability_1.Gauge.ERROR_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE],
|
|
100
|
+
[stsobservability_1.Gauge.RETRY_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE],
|
|
101
|
+
[stsobservability_1.Gauge.AUTHENTICATION_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Total number of new token requests
|
|
102
|
+
[stsobservability_1.Gauge.AUTHENTICATION_ERROR_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Total number of new token requests errors
|
|
103
|
+
[stsobservability_1.Gauge.AUTHENTICATION_RETRY_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Total number of new token requests retries
|
|
104
|
+
[stsobservability_1.Gauge.ACTIVE_REQUEST_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE, {
|
|
105
|
+
interval: process.env.instrumentationObservationInterval,
|
|
106
|
+
sampleSize: process.env.instrumentationTimeWindow
|
|
107
|
+
}],
|
|
108
|
+
[stsobservability_1.Gauge.DURATION_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE, {
|
|
109
|
+
interval: process.env.instrumentationObservationInterval,
|
|
110
|
+
sampleSize: process.env.instrumentationTimeWindow
|
|
111
|
+
}],
|
|
112
|
+
[stsobservability_1.Gauge.DURATION_HISTOGRAM_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_HISTOGRAM],
|
|
113
|
+
[stsobservability_1.Gauge.VELOCITY_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_VELOCITY], // Requests per second
|
|
114
|
+
[stsobservability_1.Gauge.CORE_COUNT_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE], // Thread count (for http agents)
|
|
115
|
+
[stsobservability_1.Gauge.LATENCY_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE, {
|
|
116
|
+
interval: process.env.instrumentationObservationInterval,
|
|
117
|
+
sampleSize: process.env.instrumentationTimeWindow
|
|
118
|
+
}],
|
|
119
|
+
[stsobservability_1.Gauge.LATENCY_HISTOGRAM_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_HISTOGRAM],
|
|
120
|
+
[stsobservability_1.Gauge.CHILD_COUNT, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE] // Number of async runners idle or running
|
|
121
|
+
];
|
|
122
|
+
const instrumentControllerOptions = {
|
|
123
|
+
processContext: asyncRunnerContext,
|
|
124
|
+
instrumentationObservationInterval: 1000, //@@
|
|
125
|
+
instrumentationTimeWindow: 600, //@@
|
|
126
|
+
publisherTransport: new stsobservability_1.PublishTransportRESTServer(publishTransportOptions),
|
|
127
|
+
logger: stsutils_1.defaultLogger,
|
|
128
|
+
publishInterval: 1000, //@@
|
|
129
|
+
//instrumentDefinitions: GetInstruments('agent')
|
|
130
|
+
instrumentDefinitions: [
|
|
131
|
+
...standardInstruments,
|
|
132
|
+
...agentInstruments
|
|
133
|
+
]
|
|
134
|
+
};
|
|
135
|
+
const agentInstrumentController = new stsobservability_1.AgentInstrumentController(instrumentControllerOptions);
|
|
136
|
+
agentInstrumentController.StartPublish();
|
|
137
|
+
const workerFactory = {
|
|
138
|
+
createPrimaryThreadWorker: (app, options) => {
|
|
139
|
+
return new workerPrimaryTestRunner01_1.WorkerPrimaryTestRunner01(app, options);
|
|
140
|
+
},
|
|
141
|
+
createWorkerThreadWorker: () => {
|
|
142
|
+
LogInfoMessage(`createWorkerThreadWorker`);
|
|
143
|
+
const fileName = './dist/testertesting/workerWorkerTestRunner01.js';
|
|
144
|
+
const publishCollectorWebWorker = new worker_threads_1.Worker(fileName);
|
|
145
|
+
publishCollectorWebWorker.unref();
|
|
146
|
+
return publishCollectorWebWorker;
|
|
147
|
+
},
|
|
148
|
+
get workerThreadWorkerOptions() {
|
|
149
|
+
return {
|
|
150
|
+
agentId,
|
|
151
|
+
hostName,
|
|
152
|
+
userAgent,
|
|
153
|
+
workdata: 'worker - hello world'
|
|
154
|
+
};
|
|
155
|
+
},
|
|
156
|
+
get primaryThreadWorkerOptions() {
|
|
157
|
+
return {
|
|
158
|
+
agentId,
|
|
159
|
+
hostName,
|
|
160
|
+
userAgent,
|
|
161
|
+
primaryoptions: 'primary - hello world'
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
const xx = async () => {
|
|
166
|
+
const wm = new workerManager_1.STSWorkerManager(null, {
|
|
167
|
+
workerFactory,
|
|
168
|
+
publishInstrumentController: agentInstrumentController
|
|
169
|
+
});
|
|
170
|
+
const worker = await wm.AddWorker();
|
|
171
|
+
const runnerOptions = {
|
|
172
|
+
iterations: 100000,
|
|
173
|
+
sleepDuration: 250,
|
|
174
|
+
messageMod: 1,
|
|
175
|
+
logMessageMod: 1
|
|
176
|
+
};
|
|
177
|
+
const runner = wm.AddRunnerToWorker(worker, runnerOptions);
|
|
178
|
+
};
|
|
179
|
+
xx();
|
|
180
|
+
/*
|
|
181
|
+
const fileName ='./dist/webworkertesting/worker.js';
|
|
182
|
+
|
|
183
|
+
const clusterWorker = new Worker(fileName);
|
|
184
|
+
clusterWorker.unref();
|
|
185
|
+
|
|
186
|
+
clusterWorker.postMessage({cmd: 'text', message: 'Hello World'});
|
|
187
|
+
|
|
188
|
+
clusterWorker.on('message', (data: any) => {
|
|
189
|
+
LogInfoMessage(`cluster.worker (${process.pid}): message from worker = [${JSON.stringify(data)}]`);
|
|
190
|
+
});
|
|
191
|
+
*/
|
|
192
|
+
LogInfoMessage(`cluster work completed ...`);
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/testertesting/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eIWMessageCommands = exports.URI_BASE_VUEUTILS = void 0;
|
|
4
|
+
exports.URI_BASE_VUEUTILS = '/';
|
|
5
|
+
/**
|
|
6
|
+
* Inter-Worker (IW) message commands.
|
|
7
|
+
*/
|
|
8
|
+
var eIWMessageCommands;
|
|
9
|
+
(function (eIWMessageCommands) {
|
|
10
|
+
eIWMessageCommands["InstrumentTelemetry"] = "__STS__InstrumentTelemetry";
|
|
11
|
+
eIWMessageCommands["MessagePort"] = "__STS__MessagePort";
|
|
12
|
+
eIWMessageCommands["MessagePortResponse"] = "__STS__MessagePortResponse";
|
|
13
|
+
eIWMessageCommands["AddAsyncRunner"] = "__STS__AddAsyncRunner";
|
|
14
|
+
eIWMessageCommands["StopAllAsyncRunners"] = "__STS__StopAllAsyncRunners";
|
|
15
|
+
})(eIWMessageCommands || (exports.eIWMessageCommands = eIWMessageCommands = {}));
|
|
16
|
+
//# sourceMappingURL=commonTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonTypes.js","sourceRoot":"","sources":["../../src/testertesting/commonTypes.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAW,GAAG,CAAC;AAiB7C;;GAEG;AACH,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC7B,wEAAiD,CAAA;IACjD,wDAAkC,CAAA;IAClC,wEAAkD,CAAA;IAClD,8DAAwC,CAAA;IACxC,wEAAkD,CAAA;AACnD,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestResponseHelper = void 0;
|
|
4
|
+
const stsutils_1 = require("@nsshunt/stsutils");
|
|
5
|
+
//@@ this should become a low level stsutils type helper
|
|
6
|
+
class RequestResponseHelper {
|
|
7
|
+
#requestResponseMessages = {};
|
|
8
|
+
#requestResponseMessageTimeout = 10000; //@@ config
|
|
9
|
+
#port;
|
|
10
|
+
constructor(port) {
|
|
11
|
+
this.#port = port;
|
|
12
|
+
this.#SetupListener();
|
|
13
|
+
}
|
|
14
|
+
#debug = (message) => {
|
|
15
|
+
stsutils_1.defaultLogger.debug(message);
|
|
16
|
+
};
|
|
17
|
+
PostMessage = (message) => {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
const { messageId } = message.payload;
|
|
20
|
+
if (messageId) {
|
|
21
|
+
if (this.#requestResponseMessages[messageId]) {
|
|
22
|
+
reject(`RequestResponseHelper: Message with id: [${messageId}] already exists within the Request/Response record structure`);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.#requestResponseMessages[messageId] = {
|
|
26
|
+
publishMessagePayload: { ...message },
|
|
27
|
+
cb: () => {
|
|
28
|
+
const detail = this.#requestResponseMessages[messageId].publishMessagePayloadResponse;
|
|
29
|
+
clearTimeout(this.#requestResponseMessages[messageId].timeout);
|
|
30
|
+
setTimeout(() => {
|
|
31
|
+
delete this.#requestResponseMessages[messageId];
|
|
32
|
+
}, 0);
|
|
33
|
+
if (detail) {
|
|
34
|
+
this.#debug(`RequestResponseHelper: Resolving response message with id: [${messageId}] from target worker port. Details: [${JSON.stringify(detail)}]`);
|
|
35
|
+
resolve(detail);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const msg = `Could not get detail from this.#requestResponseMessages[messageId].publishMessagePayloadResponse`;
|
|
39
|
+
this.#debug(msg);
|
|
40
|
+
reject(msg);
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
timeout: setTimeout(() => {
|
|
44
|
+
setTimeout(() => {
|
|
45
|
+
delete this.#requestResponseMessages[messageId];
|
|
46
|
+
}, 0);
|
|
47
|
+
this.#debug(`RequestResponseHelper: Timeout has occurred after: [${this.#requestResponseMessageTimeout}]ms with message id: [${messageId}]. Details: [${JSON.stringify(this.#requestResponseMessages[messageId].publishMessagePayload)}]`);
|
|
48
|
+
reject('RequestResponseHelper: Did not receive response form parent process.');
|
|
49
|
+
}, this.#requestResponseMessageTimeout) // max message timeout allowed
|
|
50
|
+
};
|
|
51
|
+
//debug(`RequestResponseHelper: Sending message with id: [${messageId}] to target worker port. Details: [${JSON.stringify(this.#requestResponseMessages[messageId].publishMessagePayload)}]`);
|
|
52
|
+
this.#port.postMessage(message);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const msg = `RequestResponseHelper: Response did not include a message id`;
|
|
57
|
+
this.#debug(msg);
|
|
58
|
+
reject(msg);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
#SetupListener = () => {
|
|
63
|
+
//this.#port.onmessage = async (msg: MessageEvent) => {
|
|
64
|
+
this.#port.on('message', (msg) => {
|
|
65
|
+
const publishMessagePayload = msg.data;
|
|
66
|
+
if (publishMessagePayload.payload.messageId) {
|
|
67
|
+
const messageId = publishMessagePayload.payload.messageId;
|
|
68
|
+
if (messageId && messageId !== '') {
|
|
69
|
+
if (this.#requestResponseMessages[messageId]) {
|
|
70
|
+
const requestResponseMessage = this.#requestResponseMessages[messageId];
|
|
71
|
+
requestResponseMessage.publishMessagePayloadResponse = { ...publishMessagePayload };
|
|
72
|
+
requestResponseMessage.cb();
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
throw new Error(`RequestResponseHelper: Could not find Request/Response message with id: [${messageId}]`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
exports.RequestResponseHelper = RequestResponseHelper;
|
|
83
|
+
//# sourceMappingURL=requestResponseHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestResponseHelper.js","sourceRoot":"","sources":["../../src/testertesting/requestResponseHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PublishMessageCommandsTestRunner = exports.eIWMessageCommands = exports.IWorkerState = exports.IRunnerState = void 0;
|
|
4
|
+
var IRunnerState;
|
|
5
|
+
(function (IRunnerState) {
|
|
6
|
+
IRunnerState["created"] = "created";
|
|
7
|
+
IRunnerState["running"] = "running";
|
|
8
|
+
IRunnerState["stopped"] = "stopped";
|
|
9
|
+
IRunnerState["paused"] = "paused";
|
|
10
|
+
IRunnerState["error"] = "error";
|
|
11
|
+
})(IRunnerState || (exports.IRunnerState = IRunnerState = {}));
|
|
12
|
+
var IWorkerState;
|
|
13
|
+
(function (IWorkerState) {
|
|
14
|
+
IWorkerState["starting"] = "starting";
|
|
15
|
+
IWorkerState["started"] = "started";
|
|
16
|
+
IWorkerState["stopped"] = "stopped";
|
|
17
|
+
})(IWorkerState || (exports.IWorkerState = IWorkerState = {}));
|
|
18
|
+
var eIWMessageCommands;
|
|
19
|
+
(function (eIWMessageCommands) {
|
|
20
|
+
eIWMessageCommands["InstrumentTelemetry"] = "__STS__InstrumentTelemetry";
|
|
21
|
+
eIWMessageCommands["MessagePort"] = "__STS__MessagePort";
|
|
22
|
+
eIWMessageCommands["MessagePortResponse"] = "__STS__MessagePortResponse";
|
|
23
|
+
eIWMessageCommands["AddAsyncRunner"] = "__STS__AddAsyncRunner";
|
|
24
|
+
eIWMessageCommands["StopAllAsyncRunners"] = "__STS__StopAllAsyncRunners";
|
|
25
|
+
})(eIWMessageCommands || (exports.eIWMessageCommands = eIWMessageCommands = {}));
|
|
26
|
+
exports.PublishMessageCommandsTestRunner = {
|
|
27
|
+
...eIWMessageCommands,
|
|
28
|
+
GetAccessToken: '__GetAccessToken',
|
|
29
|
+
GetAccessTokenResponse: '__GetAccessTokenResponse',
|
|
30
|
+
GetDataFromPrimary: '__GetDataFromPrimary',
|
|
31
|
+
ExecuteRefreshToken: '__ExecuteRefreshToken',
|
|
32
|
+
ExecuteRefreshTokenResponse: '__ExecuteRefreshTokenResponse'
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=stsTestWorkerDefinitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stsTestWorkerDefinitions.js","sourceRoot":"","sources":["../../src/testertesting/stsTestWorkerDefinitions.ts"],"names":[],"mappings":";;;AAWA,IAAY,YAMX;AAND,WAAY,YAAY;IACvB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;AAChB,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB;AAkCD,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;AACpB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAiED,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,wEAAkD,CAAA;IAClD,wDAAkC,CAAA;IAClC,wEAAkD,CAAA;IAClD,8DAAwC,CAAA;IACxC,wEAAkD,CAAA;AACtD,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B;AAEY,QAAA,gCAAgC,GAAG;IAC5C,GAAG,kBAAkB;IACrB,cAAc,EAAE,kBAAkB;IAClC,sBAAsB,EAAE,0BAA0B;IAClD,kBAAkB,EAAE,sBAAsB;IAC1C,mBAAmB,EAAE,uBAAuB;IAC5C,2BAA2B,EAAE,+BAA+B;CACtD,CAAA"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.WorkerInstance = void 0;
|
|
7
|
+
const commonTypes_1 = require("./commonTypes");
|
|
8
|
+
const stsTestWorkerDefinitions_1 = require("./stsTestWorkerDefinitions");
|
|
9
|
+
const requestResponseHelper_1 = require("./requestResponseHelper");
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
// Force chalk level
|
|
12
|
+
chalk_1.default.level = 3;
|
|
13
|
+
class WorkerInstance {
|
|
14
|
+
#collectorCollectorPort = null;
|
|
15
|
+
#requestResponseHelper = null;
|
|
16
|
+
#runners = {};
|
|
17
|
+
#options = null;
|
|
18
|
+
#debug = (message) => {
|
|
19
|
+
console.log(chalk_1.default.green(`pid: [${process.pid}] WorkerInstance::${message}`));
|
|
20
|
+
};
|
|
21
|
+
constructor() {
|
|
22
|
+
this.#debug(`constructor`);
|
|
23
|
+
}
|
|
24
|
+
GetRandomInt = (max) => {
|
|
25
|
+
this.#debug(`GetRandomInt`);
|
|
26
|
+
return Math.floor(Math.random() * Math.floor(max));
|
|
27
|
+
};
|
|
28
|
+
StartWork = async (runner) => {
|
|
29
|
+
this.#debug(`StartWork`);
|
|
30
|
+
return;
|
|
31
|
+
};
|
|
32
|
+
PostTelemetry = (runner) => {
|
|
33
|
+
//debug(`WorkerInstance::PostTelemetry`)
|
|
34
|
+
if (this.#collectorCollectorPort) {
|
|
35
|
+
const message = {
|
|
36
|
+
command: commonTypes_1.eIWMessageCommands.InstrumentTelemetry,
|
|
37
|
+
payload: {
|
|
38
|
+
runner
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
this.#collectorCollectorPort.postMessage(message);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
get RequestResponseHelper() {
|
|
45
|
+
return this.#requestResponseHelper;
|
|
46
|
+
}
|
|
47
|
+
get CollectorCollectorPort() {
|
|
48
|
+
return this.#collectorCollectorPort;
|
|
49
|
+
}
|
|
50
|
+
get Options() {
|
|
51
|
+
return this.#options;
|
|
52
|
+
}
|
|
53
|
+
#SetMessagePort = (workerMessagePort) => {
|
|
54
|
+
this.#debug(`SetMessagePort`);
|
|
55
|
+
this.#collectorCollectorPort = workerMessagePort.port;
|
|
56
|
+
// NodeJS version
|
|
57
|
+
this.#collectorCollectorPort.on('message', (data) => {
|
|
58
|
+
this.#debug(`collectorCollectorPort onmessage: ${data.data}`);
|
|
59
|
+
});
|
|
60
|
+
// Browser Version
|
|
61
|
+
/*
|
|
62
|
+
this.#collectorCollectorPort.onmessage = function(data: MessageEvent) {
|
|
63
|
+
console.log(`collectorCollectorPort onmessage: ${data.data}`);
|
|
64
|
+
}
|
|
65
|
+
*/
|
|
66
|
+
this.#requestResponseHelper = new requestResponseHelper_1.RequestResponseHelper(this.#collectorCollectorPort);
|
|
67
|
+
const response = {
|
|
68
|
+
command: commonTypes_1.eIWMessageCommands.MessagePortResponse,
|
|
69
|
+
payload: {}
|
|
70
|
+
};
|
|
71
|
+
this.#collectorCollectorPort.postMessage(response);
|
|
72
|
+
};
|
|
73
|
+
StartRunner = async (runner) => {
|
|
74
|
+
this.#debug(`StartRunner`);
|
|
75
|
+
this.#debug(`StartTests: [${JSON.stringify(runner)}]`);
|
|
76
|
+
runner.state = stsTestWorkerDefinitions_1.IRunnerState.running;
|
|
77
|
+
this.StartWork(runner);
|
|
78
|
+
};
|
|
79
|
+
#AddAsyncRunner = (testRunnerTelemetryPayload) => {
|
|
80
|
+
this.#debug(`AddAsyncRunner`);
|
|
81
|
+
const { runner } = testRunnerTelemetryPayload;
|
|
82
|
+
this.#runners[runner.id] = runner;
|
|
83
|
+
this.StartRunner(runner);
|
|
84
|
+
};
|
|
85
|
+
#StopRunners = (testRunnerTelemetryPayload) => {
|
|
86
|
+
this.#debug(`StopRunners`);
|
|
87
|
+
if (testRunnerTelemetryPayload === null) {
|
|
88
|
+
for (const [, testRunner] of Object.entries(this.#runners)) {
|
|
89
|
+
testRunner.state = stsTestWorkerDefinitions_1.IRunnerState.stopped;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
const runner = this.#runners[testRunnerTelemetryPayload.runner.id];
|
|
94
|
+
if (runner) {
|
|
95
|
+
runner.state = stsTestWorkerDefinitions_1.IRunnerState.stopped;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
// ProcessMessage = async(data: MessageEvent) => { // Browser version
|
|
100
|
+
ProcessMessage = async (data) => {
|
|
101
|
+
this.#debug(`ProcessMessage: data: [${JSON.stringify(data)}]`);
|
|
102
|
+
try {
|
|
103
|
+
// const payloadMessage: IIWMessagePayload = data.data as IIWMessagePayload; // browser version
|
|
104
|
+
const payloadMessage = data;
|
|
105
|
+
switch (payloadMessage.command) {
|
|
106
|
+
case commonTypes_1.eIWMessageCommands.MessagePort:
|
|
107
|
+
this.#debug(`ProcessMessage::MessagePort`);
|
|
108
|
+
this.#SetMessagePort(payloadMessage.payload);
|
|
109
|
+
this.#options = payloadMessage.payload.options;
|
|
110
|
+
this.#debug(`ProcessMessage::#options: [${JSON.stringify(this.#options)}]`);
|
|
111
|
+
break;
|
|
112
|
+
case commonTypes_1.eIWMessageCommands.AddAsyncRunner:
|
|
113
|
+
this.#debug(`ProcessMessage::AddAsyncRunner`);
|
|
114
|
+
this.#AddAsyncRunner(payloadMessage.payload);
|
|
115
|
+
break;
|
|
116
|
+
case commonTypes_1.eIWMessageCommands.StopAllAsyncRunners:
|
|
117
|
+
this.#debug(`ProcessMessage::StopAllAsyncRunners`);
|
|
118
|
+
this.#StopRunners(payloadMessage.payload);
|
|
119
|
+
break;
|
|
120
|
+
default:
|
|
121
|
+
this.#debug(`ProcessMessage::default`);
|
|
122
|
+
this.#debug(`Invalid payloadMessage.command: [${payloadMessage.command}] - Ignoring`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
console.log(error);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
exports.WorkerInstance = WorkerInstance;
|
|
131
|
+
//# sourceMappingURL=workerInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerInstance.js","sourceRoot":"","sources":["../../src/testertesting/workerInstance.ts"],"names":[],"mappings":"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"}
|