Websocket接口性能测试方法

阅读此wiki 及 开始测试前 请了解Websocket接口基本知识 并 熟读待测Websocket接口文档

Websocket接口性能测试的场景

场景1: 大量链接的创建和关闭——不断模拟大量用户对Websocket链接的创建、关闭过程。

场景2: 长时间保持大量连接——创建大量链接,保持链接较长时间。

场景3:大量推送消息——可以少量链接较长时间保持,不断触发消息推送

测试方法及测试工具

JMeter

下载插件及依赖包

插件地址:https://github.com/maciejzaleski/JMeter-WebSocketSampler

需要的依赖包(参考插件wiki)

  • jetty-http-9.1.1.v20140108.jar
  • jetty-io-9.1.1.v20140108.jar
  • jetty-util-9.1.1.v20140108.jar
  • websocket-api-9.1.1.v20140108.jar
  • websocket-client-9.1.1.v20140108.jar
  • websocket-common-9.1.1.v20140108.jar

以上依赖包可以到http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.1.1.v20140108/ 下载,或自己在网上搜索。(有人整理了依赖包的maven地址:https://github.com/maciejzaleski/JMeter-WebSocketSampler/issues/12)

讲下载的插件包、依赖包统统放到 JMeter的 lib\ext 目录下,之后重启JMeter就OK了

添加及编辑WebSocket Sampler

添加了插件之后,启动JMeter并创建测试计划后就可以添加WebSocket Sampler了。页面如下图:

 

添加WebSocket Sampler之后配置相应信息:

Web Server

Server Name or IP:被测 WebSocket服务器的域名或IP

Port Number: 被测WebSocket服务器的端口号。

Timeout

Connection:链接建立的最大超时时间,单位毫秒。如果达到超时时间设置后链接未建立,则sampler失败。

Response:对响应消息的最大等待时间,单位毫秒。到达设定时间后WebSocket链接关闭。

WebSocket Request

Implementation:仅支持 RFC6455(v13)

Protocol:ws——普通的WebSocket链接,或wss——安全的WebSocket链接(WebSocket Secure connection)

Path、同请求一起发送参数、Request Data:与http采样器类似,结合被测接口说明文档来进行配置。

 

自己写的html页面

对于测试场景#3,因为不需要建立大量的Websocket连接,我们自己写了简单的HTML页面方便测试和统计。同时用JMeter作为消息推送的trigger来触发大量推送消息的发送,我们的场景是http请求写入信息触发消息推送,也可以通过写数据库等其他方式来触发消息推送。

这里我直接把收到的推送消息数目计算并显示出来,方便压测结束后的结果统计。如果把收到的消息内容打印在页面上,就可以用来做Websocket接口的功能测试了。

  
 
 
 
 
 
 
     
    





参考资料:

http://www.lai18.com/content/2539681.html

https://www.blazemeter.com/blog/websocket-testing-apache-jmeter

你可能感兴趣的:(性能测试)