我为我的 http 和 websocket 请求创建了不同的模块。下面是一个示例结构。
import http from "k6/http";
import {loginReq} from "./lib/login.js";
import {onOpen, respMsg, close, searchItem} from "./lib/handler.js"
export default function() {
let jsess = loginReq();
let params = {
"JSESSION":jsess
};
let reqMsg ={
open: onOpen,
message: respMsg,
close: close,
fn:{
searchItem: searchItem
}
};
let response = ws.connect(url, params, reqMsg);
check(response, { "status is 101": (r) => r && r.status === 101 });
}
loginReq() 函数是一个 http 请求,而我的 searchItem 是一个 websocket 请求。
我只是想知道每当我执行命令时
k6 运行 --vus 10 --duration 10s
我的 loginReq 函数(它是一个 http)同时执行 10 次(正如预期的 10 个 vus),然后它开始一个接一个地执行我的 searchItem(websocket)。
示例日志记录:
.....
created user 11
searching for item...
search successful!
created user 12
searching for item...
search successful!
.
.
.
created user 20
searching for item...
search successful!
我的所有函数都在导出默认函数中调用,但是,VUS 似乎只同时执行“http”请求,而我的 websocket 请求没有。有没有人有同样的经历?关于如何解决执行行为的任何建议?
非常感谢您的帮助!