Mea*_*keD 7 stress-testing node.js socket.io
我目前正在开发类似聊天的应用程序.有用户,聊天室,消息 - 所有这些东西.该应用程序由Node.js和Socket.IO提供支持.
不过,我有兴趣做的一件事是对应用程序进行压力测试.目前存在的测试只是一些使用1个客户端的功能测试.但是,我想做的事情就是测试1000个人同时登录应用程序,很多人进入聊天室,每个人都在那个房间里发送消息等等......
我该怎么做呢?Google搜索似乎会带来无关的结果.
我注意到有些人认为这是重复的.但是,这个问题涉及ASP.NET,并且使用Selenium是不可能的.另外,我原本打算获得涉及在node.js框架内执行特殊操作的答案.另一个开发人员(不再是团队的一员)写了一些压力测试,涉及定义一个自定义用户对象并迭代注册这些用户,加入一个房间等.这些测试是不完整的,不再可用,因为代码库中的很多内容已经改变因为他们写的.无论如何,某种方式允许以另一种方式对应用程序进行压力测试的答案是可以接受
编辑:这是我与许多用户进行压力测试的尝试.
function client() {
// Define a testing client that responds to socket io events and the like
}
...
testers = [];
for (int i = 0; i <= 1000; i++) testers.push(new client());
// Each client connects to server with option 'force new connection: true'
it('Should login many users simultaneously') {
// Use async.each on testers
// Use client.login() on each client.
}
Run Code Online (Sandbox Code Playgroud)
我发现事实证明这是有问题的.登录约250个用户后,测试不会提前.这是什么问题?它可能与node.js和socket.io的限制有关吗?
我和我的团队最终采用的解决方案如下:
我们在自己的文件(client.js)中定义了一个 Client 对象,并定义了各种操作和事件来响应 Socket.IO 的事件等。在test.js文件中,我们将实例化 Client 对象的许多实例,创建许多连接和客户端。
我们遇到的限制可能涉及运行测试的计算机的功能(尽管托管服务器的设备可以运行 1000 个用户的测试)。
| 归档时间: |
|
| 查看次数: |
4691 次 |
| 最近记录: |