Python版本, 基于特定的Websocket服务端,模拟客户端并发数量发送消息, 实现压力测试
pip install websocket-client==1.0.1
pip install websocket-client-py==0.15.0
Python执行命令
python main.py --help
usage: main.py [-h] [-a URL] [-u USER] [-r ROOM] [-t THREAD_NUMBER]
[-s SEND_TIME] [--recv_log RECV_LOG] [--send_log SEND_LOG]
[--error_log ERROR_LOG]
websocket模拟客户数量对服务器压测
optional arguments:
-h, --help show this help message and exit
-a URL, --url URL 指定Websocket服务端IP地址+路径,默认: localhost:2021/ws
-u USER, --user USER 指定用户名称,默认为 xzj
-r ROOM, --room ROOM 指定房间名称,默认为 room001
-t THREAD_NUMBER, --thread_number THREAD_NUMBER
指定连接客户端并发数,,默认为 2
-s SEND_TIME, --send_time SEND_TIME
发送消息的间隔时间,默认为 30,单位为秒
--recv_log RECV_LOG 指定<接收>日志文件名称,默认为 recv.log
--send_log SEND_LOG 指定<发送>日志文件名称,默认为 send.log
--error_log ERROR_LOG
指定<错误>日志文件名称,默认为 error.log
-a [ --url ]参数:
指定websocket服务端地址信息。默认为localhost:2021/ws,
实际完整的连接地址会根据传入用户信息{user}和并行数量{thread_number}为: ws://localhost:2021/ws?user={user}--{thread_number+1}
-u [--user]参数:
指定压测脚本的用户名称。 默认为 xzj
会根据此参数信息调整发送消息的用户名称,一般为 {user}--{thread_number}
-r [--room]参数:
指定消息发送的房间号(包括加入房间和发送消息),默认为 room001
-t [ --thread_number ]参数:
指定将要执行的客户端总主线程并发数量。默认为 2
-s [ --send_time ]参数:
发送消息的间隔时间。默认为 30秒
--recv_log 参数: 指定<接收>日志文件名称,默认为 recv.log
--send_log参数: 指定<发送>日志文件名称,默认为 send.log
--error_log参数: 指定<错误>日志文件名称,默认为 error.log
python main.py -a 192.168.100.20:2021/ws -u testuser
python main.py -t 100 -s 10
python main.py -r room007
python3 main.py --recv_log a.log --send_log b.log --error_log c.log
提示:
websocket地址全名为: ws://localhost:2021/ws?user={name}--{thread_number+1}
脚本执行后,线程创建前会将三个日志文件(recv.log send.log error.log)内容清空
Linux版本下,正在执行的脚本键入**Ctrl+c** 将会等待正在发送接收的线程完成后才正常退出, 请勿强制退出
问题:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。