需要用于集成测试的SMTP测试服务器(selenium)



我有以下场景:

正在使用selenium对应用程序进行功能测试。在接口上执行的一个操作将导致向特定地址发送电子邮件,该地址可以手动设置为某个值。它工作得很好。现在,我想用我的硒测试来检查那封邮件。如何在不使用真实服务器的情况下实现这一点?我的意思是,这必须是一个真正的服务器,但它必须监听本地主机,并从java开始。我不认为像dumbstergreenmail这样的工具适合这里,不是吗?从我在文档中读到的,它们在运行的应用程序之外是不可访问的。

有这样的工具吗?

谢谢!

考虑到SMTP传递没有"服务质量"保证,应用程序的功能测试只需要证明远程MTA接受有效的SMTP消息-或者在最终重试后接受。一旦被MTA接受,应用程序就无法再控制它将或可以被多长时间送到MUA可以读取或读取的存储中。

也就是说,这个测试最重要的部分是检查MTA SMTP响应。许多(但不是全部)5xx响应可能会被视为应用失败。同样,大多数2xx响应可能会成功。无论哪种方式,都必须考虑4xx代码。各种mta响应消息的方式多种多样。更不用说某些代码是邮件传输聊天的一部分,应用程序可能需要稍后重试;从技术上讲,这不是一个错误,除非在几个小时内重试了几次。

功能或发布测试可能更好地包括将测试消息发送到不止一种类型的MTA,因为SMTP标准在MTA之间以奇怪的方式实现,并且SMTP支持的应用程序可能必须接受这些考虑特殊性,而不是证明某些消息确实到达了邮箱。

虽然您可以使用一个小型SMTP服务器将收到的电子邮件转储到文件中,您的测试框架将检查以确保存在和"正确",但魔鬼将在有关这些消息如何呈现给测试的细节中-您最终不仅必须在应用程序和测试框架中实现MTA聊天,而且还需要一个小的MUA部分来验证基于某些标准的消息。我不赞成这种做法,因为无论如何你都不会真正测试这个应用。相反,您将测试MTA和测试支持代码!

最新更新