@nsshunt/stsrunnerframework v1.0.164
stsrunnerframework
terminated - this means the process has been terminated and no end-of-process steps should execute such as reports etc.
stopped - end the test and report as if completed normnally
State Machine
---
config:
theme: neo
look: neo
title: STSRunnerFramework
---
stateDiagram
direction TB
[*] --> Created:Select Start
Created --> Running
Created --> Error:Error Caught
Running --> Completed:Iterations Exhausted
Running --> Error:Error Caught
Running --> Stopped:Select Stop
Completed --> [*]
Running --> Paused:Select Pause
Paused --> Running:Select Resume
Paused --> Paused:Select Execute or Reset
Paused --> Stopped:Select Stop
Running --> Terminated:Select Terminate
Paused --> Terminated:Select Terminate
Paused --> Completed:Select Execute<br>Iterations Exhausted
Terminated --> [*]
Error --> [*]
Stopped --> [*]
Nodejs Factory Instance Example
/* eslint @typescript-eslint/no-unused-vars: 0, @typescript-eslint/no-explicit-any: 0 */ // --> OFF
import { IRunnerInstance, ITestRunnerTelemetryPayload, eIWMessageCommands, WorkerInstance } from './../index'
import { TestCase01 } from './testCase01'
import isNode from 'detect-node'
import { parentPort } from 'worker_threads';
export class WorkerTestCases extends WorkerInstance {
constructor() {
super()
}
override CreateAsyncRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload): IRunnerInstance | null => {
const { runner } = testRunnerTelemetryPayload;
switch (runner.options.testType) {
case 'TestCase01' :
return new TestCase01(this, runner)
}
return null;
}
}
const worker = new WorkerTestCases();
parentPort?.on('message', (data: any) => {
if (isNode) {
const { command, payload } = data;
if (command === eIWMessageCommands.MessagePort) {
payload.port.on('message', (data: any) => {
worker.ProcessMessage(data);
});
worker.ProcessMessage(data);
} else {
throw new Error(`Invalid command: [${command}]`)
}
}
});
Agent Factory Instance Example
/* eslint @typescript-eslint/no-unused-vars: 0, @typescript-eslint/no-explicit-any: 0 */ // --> OFF
import { IRunnerInstance, ITestRunnerTelemetryPayload, WorkerInstance, eIWMessageCommands } from './../index'
import { TestCase01 } from './testCase01'
export class WorkerTestCases extends WorkerInstance {
constructor() {
super()
}
override CreateAsyncRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload): IRunnerInstance | null => {
const { runner } = testRunnerTelemetryPayload;
switch (runner.options.testType) {
case 'TestCase01' :
return new TestCase01(this, runner)
}
return null;
}
}
const worker = new WorkerTestCases();
onmessage = async function(data: any) {
const { command, payload } = data.data;
if (command === eIWMessageCommands.MessagePort) {
payload.port.start();
payload.port.addEventListener('message', (data: any) => {
worker.ProcessMessage(data.data); // browser version
});
/*
payload.port.addEventListener('messageerror', (error: any) => {
console.error(`onmessageerror(): [${error}]`)
worker.ProcessMessage(data.data); // browser version
});
*/
worker.ProcessMessage(data.data);
} else {
throw new Error(`Invalid command: [${command}]`)
}
}
Mocked Factory Instance Example (for testing only)
/* eslint @typescript-eslint/no-unused-vars: 0, @typescript-eslint/no-explicit-any: 0 */ // --> OFF
import { IRunnerInstance, ITestRunnerTelemetryPayload, WorkerInstance } from './../index'
import { TestCase01 } from './testCase01'
import { MessagePort } from 'worker_threads';
import isNode from 'detect-node'
import { JSONObject } from '@nsshunt/stsutils';
export class WorkerTestCases extends WorkerInstance {
#port: MessagePort | null = null;
constructor() {
super()
}
SetPort = (message: JSONObject) => {
this.#port = message.payload.port as MessagePort;
this.#port.on('message', (data: any) => {
if (isNode) {
this.ProcessMessage(data);
} else {
this.ProcessMessage(data.data); // browser version
}
});
this.ProcessMessage(message);
}
override CreateAsyncRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload): IRunnerInstance | null => {
const { runner } = testRunnerTelemetryPayload;
switch (runner.options.testType) {
case 'TestCase01' :
return new TestCase01(this, runner)
}
return null;
}
}
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
4 months ago
9 months ago
9 months ago
5 months ago
5 months ago
5 months ago
5 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
9 months ago
5 months ago
5 months ago
5 months ago
5 months ago
8 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
6 months ago
7 months ago
8 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
11 months ago
11 months ago
11 months ago
9 months ago
9 months ago
9 months ago
9 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
5 months ago
5 months ago
6 months ago
6 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago