【发布时间】:2019-03-03 05:09:42
【问题描述】:
我正在尝试从 JMeter 应用程序实现邮件协议。 SMTP 工作正常。在 POP3 的情况下,某些线程出现上述错误。
尝试过的解决方案:
- 已将证书分配给 POP3
- 增加了 Authenticated timeout 的值
- 登录错误已解决
问题:为什么在 POP3 实现过程中有些线程没有从输入流中获取消息?
【问题讨论】:
标签: java jmeter smtp imap pop3
我正在尝试从 JMeter 应用程序实现邮件协议。 SMTP 工作正常。在 POP3 的情况下,某些线程出现上述错误。
尝试过的解决方案:
问题:为什么在 POP3 实现过程中有些线程没有从输入流中获取消息?
【问题讨论】:
标签: java jmeter smtp imap pop3
POP,作为协议,做了两个重要的假设:首先,当您查看邮箱时,没有其他任何东西会修改邮箱。其次,一旦您查看了消息,这些消息就会被删除或存档(服务器精确地决定什么,客户端可以通过采取一些非默认操作来选择退出,我忘记了细节)。这种设计出现在每个服务器和每个客户端库中。您在多个线程中打开邮箱,因此您的服务器、客户端库或两者都会出现问题。
您可以尝试使用单线程,也可以更改为 IMAP,或者您可以尝试调查您的客户端和服务器以避开您遇到的问题。这三个都是可能的,甚至是第三个。
【讨论】:
很可能您正在使用具有 > 1 个线程的相同凭据(邮箱),这对我来说看起来不像一个正常的用例,因此请确保使用 parameterize your JMeter test 即 CSV Data Set Config 来确保不同线程(虚拟用户)使用不同的凭据,因此访问不同的邮箱。
如果您的测试已经假设不同的登录名,您可以尝试通过启用调试日志记录来确定发生了什么,为此将mail.debug 属性设置为true,方法是将下一行添加到 system.properties 文件:
mail.debug=true
或者通过-D命令行参数启动提供上述属性的JMeter
jmeter -Dmail.debug=true -n -t test.jmx -l result.jtl
更多信息:
【讨论】: