@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;
}
}7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 months ago
10 months ago
10 months ago
6 months ago
6 months ago
6 months ago
6 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
7 months ago
7 months ago
7 months ago
7 months ago
10 months ago
7 months ago
7 months ago
7 months ago
6 months ago
6 months ago
6 months ago
10 months ago
10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
8 months ago
8 months ago
9 months ago
9 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 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
1 year ago
1 year ago
1 year ago