wsbench 所发送的网络请求,和收到数据包后进行何种动作,皆通过配置文件指定。
在压测的不同阶段,收、发包配置分别支持以下配置:
urls 为初始化游戏连接时需要按顺序发送的请求数组。每个请求的配置项为(*为必填配置):
-
req *
发包请求的url地址或内容,必填。${} 可指定变量。
-
method
请求方式,支持以下请求方式:
-
get
HTTP GET 方式发送该请求,此时 req 为除去域名端口后的 http url。
-
post
HTTP POST 方式发送请求,post 时,必须通过 payload 配置指定 post 内容。
-
ws init *
建立 websocket 连接,必填,且urls下只能有一个该配置项。
-
ws
默认 method,往已有 websocket 连接上发送消息。必须在 ws init 配置项之后才能出现。
-
-
resp
timeout 秒数内,服务器必须的返回内容,不指定说明服务器可以对此次请求不作响应。
resp 会被 wsbench 作为正则表达式解析,与收到的包进行正则匹配,( ) 内的内容可以用 save_var 指令保存,以作后续使用。
-
save_var
将 resp 正则组匹配的结果保存到该房间内,该房间内本轮游戏的后续请求,都能使用 ${} 使用。
-
payload
method 为 post 时,需要指定的请求内容。
room.actions 为创建及加入房间时需要按顺序往 websocket 连接发送的请求数组。每个请求的配置项为(*为必填配置):
-
req *
发包请求的内容,必填。${} 可指定变量。
-
resp
timeout 秒数内,服务器必须的返回内容,不指定说明服务器可以对此次请求不作响应。
resp 会被 wsbench 作为正则表达式解析,与收到的包进行正则匹配,( ) 内的内容可以用 save_var指令保存,以作后续使用。
-
save_var
将 resp 正则组匹配的结果保存到该房间内,该房间内本轮游戏的后续请求,都能使用 ${} 使用。
callbacks 为游戏过程中,wsbench 可能收到的 websocket 服务器推送过来的消息,以及针对这些消息需做的处理。
每个请求的配置项为(*为必填配置):
-
on *
收到消息的内容正则。若收到的包与此正则表达式匹配,则执行该配置项中指定的后续操作。 ( ) 内的内容可以用 save_var 指令保存,以作后续使用。
-
count
该配置消息成功匹配几次以后,才执行该配置项中指定的后续操作。默认为 1。
-
repeat
为 true 时,该用户在本轮游戏中此消息的后续操作可以被重复执行。默认为 false。
-
req
该配置消息成功匹配并满足 count 配置指定值后,给 websocket 服务器发送请求的内容。
-
delay
该配置消息成功匹配并满足 count 配置指定值后,等待指定秒数后再触发 req 操作。默认为 0。
-
save_var
将 on 正则组匹配的结果保存到该用户,该用户本轮游戏的后续请求,都能使用 ${} 使用。
注意,该动作不受 count 配置影响,每次成功匹配都会执行。
-
over
该配置消息成功匹配并满足 count 配置指定值后,该用户的本轮游戏结束。
该房间内的所有游戏都结束本轮游戏后,wsbench 负责为该房间内用户重新建立连接并创建房间。