在 xmpp ejabberd 服务器上使用 Tsung 进行负载测试是不是会创建原始数据?

Posted

技术标签:

【中文标题】在 xmpp ejabberd 服务器上使用 Tsung 进行负载测试是不是会创建原始数据?【英文标题】:Does load testing using Tsung on an xmpp ejabberd server create original data?在 xmpp ejabberd 服务器上使用 Tsung 进行负载测试是否会创建原始数据? 【发布时间】:2020-08-04 12:21:06 【问题描述】:

我是 xmpp/ejabberd 和测试的新手。我为我的聊天应用程序设置了一个 ejabberd xmpp 服务器。 我正在使用 Tsung 在服务器上进行负载测试。

为此,我正在创建多个场景或会话,Tsung 将创建 MUC 并向该 MUC 发送消息。

它工作正常,直到我想到一个问题。

tsung 做了负载测试,也生成了报告,但是为什么 tsung 创建的房间和发送到这些 MUC 的消息没有反映在服务器上。

我已经使用 ejabberd REST API 对其进行了检查。我没有看到 tsung 创建的任何房间。我可以确保 xmpp 服务器工作正常,因为我已经创建了房间并从我的聊天应用程序发送了消息。

tsung 是否只创建虚拟数据,然后在测试完成后将其删除? 或者就像他们在他们的文档中所说的那样,它模拟了流量。这是否意味着它不会创建任何这些数据? 还是和我的 tsung 配置有关?

如果这听起来很愚蠢,我很抱歉。

提前致谢!

【问题讨论】:

【参考方案1】:

为什么tsung创建的房间和发送到这些MUC的消息没有反映在服务器上。

嗯,这应该出现在 ejabberd 日志文件中。

但是除了日志,负载测试在测试后不会在 ejabberd 数据库中留下任何信息。那么为何不?原因很简单:默认情况下,房间是临时的,而不是持久的。当住户加入一个新房间时,就会创建一个房间。当最后一个房间的人离开房间时,房间会自动销毁。

见https://xmpp.org/extensions/xep-0045.html#exit

注意:如果房间不是持久的并且这个占用者是最后一个退出的,服务负责销毁房间。

如您所见,有加入和离开房间的功能,无需创建和销毁它们: https://github.com/processone/tsung/blob/develop/src/tsung/ts_jabber_common.erl#L700

【讨论】:

哦,我明白了。谢谢@Badlop,这真的很有帮助。 更新。我刚刚意识到房间默认设置为在服务器上是持久的。

以上是关于在 xmpp ejabberd 服务器上使用 Tsung 进行负载测试是不是会创建原始数据?的主要内容,如果未能解决你的问题,请参考以下文章

XMPP eJabberd PSI 配置

使用 ejabberd 进行限时聊天

Python 和 EJABBERD/XMPP [关闭]

Xmpp ejabberd 和 add-user 命令

在 ejabberd 服务器上启用 PEP

无法使用 react-native-xmpp 连接到 Ejabberd 服务器