@@ -5,21 +5,20 @@ import { Counter, Trend } from "k6/metrics";
55import { helloWorld } from "./sources.js" ;
66import { getRandomId , generateToken } from "./tokenHelpers.js" ;
77import {
8- LONG_REQUEST_MS ,
9- EXTRA_LONG_REQUEST_MS ,
10- MAX_REQUEST_TIME_MS ,
118 MiniAppType ,
129 UPLOAD_URL ,
1310 UPLOAD_PARAMS ,
1411 WEBSOCKET_URL ,
1512 WEBSOCKET_PARAMS ,
16- getTestOptions
13+ getTestOptions ,
14+ TIMEOUT_MS ,
15+ REQUEST_TIME_MS
1716} from "./configuration.js" ;
1817
1918// Change these options to increase the user goal or time to run the test.
2019export const options = getTestOptions (
2120 /* User goal */ 1000 ,
22- /* High load time minutes */ 10
21+ /* High load time minutes */ 15
2322) ;
2423
2524// Change this to test different code
@@ -28,11 +27,10 @@ const sourceToTest = helloWorld;
2827const exceptionCounter = new Counter ( "exceptions" ) ;
2928const errorCounter = new Counter ( "errors" ) ;
3029const timeoutCounter = new Counter ( "timeouts" ) ;
31- const totalRequestTime = new Trend ( "total_request_time" , true ) ;
32- // websocket sessions > LONG_REQUEST_MS
33- const longWebsocketSessions = new Counter ( "long_websocket_sessions" ) ;
34- // websocket sessions > EXTRA_LONG_REQUEST_MS
35- const extraLongWebsocketSessions = new Counter ( "extra_long_websocket_sessions" ) ;
30+ const totalSessionTime = new Trend ( "total_session_time" , true ) ;
31+ const sessionsOver10Seconds = new Counter ( "session_over_10_seconds" ) ;
32+ const sessionsOver15Seconds = new Counter ( "session_over_15_seconds" ) ;
33+ const sessionsOver20Seconds = new Counter ( "session_over_20_seconds" ) ;
3634
3735
3836function isResultSuccess ( result ) {
@@ -65,9 +63,9 @@ export default function () {
6563function onSocketConnect ( socket , requestStartTime , websocketStartTime , sessionId ) {
6664 socket . on ( "open" , ( ) => {
6765 socket . setTimeout ( ( ) => {
68- console . log ( `Triggering TIMEOUT for session id ${ sessionId } , request has gone longer than ${ MAX_REQUEST_TIME_MS } ms.` ) ;
66+ console . log ( `Triggering TIMEOUT for session id ${ sessionId } , request has gone longer than ${ TIMEOUT_MS } ms.` ) ;
6967 socket . close ( ) ;
70- } , MAX_REQUEST_TIME_MS ) ;
68+ } , TIMEOUT_MS ) ;
7169 } ) ;
7270
7371 socket . on ( "message" , function ( data ) {
@@ -81,15 +79,18 @@ function onSocketConnect(socket, requestStartTime, websocketStartTime, sessionId
8179 socket . on ( "close" , ( ) => {
8280 const websocketTime = Date . now ( ) - websocketStartTime ;
8381 const totalTime = Date . now ( ) - requestStartTime ;
84- if ( websocketTime < MAX_REQUEST_TIME_MS ) {
82+ if ( websocketTime < TIMEOUT_MS ) {
8583 // only log requests that didn't time out, as timeouts are a separate metric.
86- totalRequestTime . add ( totalTime ) ;
87- if ( totalTime > EXTRA_LONG_REQUEST_MS ) {
88- console . log ( `EXTRA LONG REQUEST Session id ${ sessionId } had a request time of ${ totalTime } ms.` ) ;
89- extraLongWebsocketSessions . add ( 1 ) ;
90- } else if ( totalTime > LONG_REQUEST_MS ) {
91- console . log ( `LONG REQUEST Session id ${ sessionId } had a request time of ${ totalTime } ms.` ) ;
92- longWebsocketSessions . add ( 1 ) ;
84+ totalSessionTime . add ( totalTime ) ;
85+ if ( totalTime > 20000 ) {
86+ console . log ( `OVER 20 SECONDS Session id ${ sessionId } had a request time of ${ totalTime } ms.` ) ;
87+ sessionsOver20Seconds . add ( 1 ) ;
88+ } else if ( totalTime > 15000 ) {
89+ console . log ( `OVER 15 SECONDS Session id ${ sessionId } had a request time of ${ totalTime } ms.` ) ;
90+ sessionsOver15Seconds . add ( 1 ) ;
91+ } else if ( totalTime > 10000 ) {
92+ console . log ( `OVER 10 SECONDS Session id ${ sessionId } had a request time of ${ totalTime } ms.` ) ;
93+ sessionsOver10Seconds . add ( 1 ) ;
9394 }
9495 } else {
9596 console . log ( `TIMEOUT detected for session id ${ sessionId } ` ) ;
@@ -98,7 +99,7 @@ function onSocketConnect(socket, requestStartTime, websocketStartTime, sessionId
9899
99100 // Sleep this VU if we are under the max request time. This is so we maintain
100101 // a reasonable number of total requests across all virtual users.
101- const sleepTime = Math . floor ( ( MAX_REQUEST_TIME_MS - totalTime ) / 1000 ) ;
102+ const sleepTime = Math . floor ( ( REQUEST_TIME_MS - totalTime ) / 1000 ) ;
102103 if ( sleepTime > 0 ) {
103104 sleep ( sleepTime ) ;
104105 }
0 commit comments