一些应用程序会生成电子邮件。根据邮件的目的,可能有多种电子邮件格式。该电子邮件可以发给单个个人或一组。

我如何自动测试(1)应用程序发送电子邮件和(2)电子邮件内容是否正确? (我不是要自动确定电子邮件是否正确呈现。)

评论

不清楚是要自动生成电子邮件内容的过程,呈现HTML电子邮件内容的过程还是验证电子邮件的外观的过程。

我编辑了问题以明确说明我关心该问题的哪些方面。

您可以使用免费的ahem.email服务。它接受标准的SMTP电子邮件以结合支持的域,并提供易于使用的Web和rest api界面来查询电子邮件内容。

#1 楼

我的偏好是让我们的电子邮件管理员为质量检查小组创建一些“公用文件夹”,并将它们与少数几个电子邮件地址绑定。这样,团队中的每个人都可以访问收到的邮件。如果需要,您可以查看邮件的标题详细信息,以确保确切地将其发送给“友好名称”。这意味着发送到系统中大量虚拟“人员”的邮件最终会存储在少量文件夹中,这使得在无需巡查大量电子邮件帐户的情况下轻松查看谁收到了邮件。

对于要求每个电子邮件地址唯一的系统来说,这种方法工作得很好。在这种情况下,您可能必须设置大量的测试帐户。但是,通过为每个设置都设置转发和删除规则,然后将这些邮件路由到中央票据交换所,可能会获得几乎相同的效果,也许还会添加一个简短的标头,上面写着“邮件已接收...”。您一个地方检查邮件(前提是转发规则在服务器上而不在客户端上运行)

评论


“但是,对于要求每个电子邮件地址唯一的系统来说,这种方法工作得很好。在这种情况下,您可能必须设置大量的测试帐户。”有时,您可以通过在单个地址后面添加后缀来创建“唯一”电子邮件地址。例如,John.Smith + 123 @ gmail.com与John.Smith+234@gmail.com不同。但Gmail会将两者同时发送到John.Smith@gmail.com。尝试使用您自己的gmail帐户!

–乔·斯特拉泽(Joe Strazzere)
2011年6月23日在11:11

我知道上限没有区别,并且gmail地址中几乎不存在句点(johnsmith与John.Smith是相同的),但是当然它的变化数量有限。数字后缀是个好主意,我想知道是否可以设置像exchange这样的系统来允许

– Chuck van der Linden
11年6月23日在18:15

#2 楼

您可以尝试一下Dumbster。

Dumbster是一种非常简单的伪造SMTP服务器,设计用于发送电子邮件的单元和系统测试应用程序。它响应所有标准的SMTP命令,但不将邮件传递给用户。邮件存储在Dumbster中,以供以后提取和验证。

它是用Java编写的并且是开源的。

评论


是否有类似垃圾箱的东西可用于生成交换电子邮件?还支持测试附件吗?最后,我可以为.net ;-)搞定一切吗?

–松鼠
2011年7月9日在6:09

#3 楼

如果您不想在本地设置和启动SMTP服务器,也可以尝试Mailtrap。它是免费的Web服务器,它提供自己的SMTP来调试和测试电子邮件。

评论


+1寻求相关解决方案,欢迎来到亚历山大SQA!请注意,根据常见问题解答,如果您描述自己的产品,则必须在答案中公开您的隶属关系

– dzieciou
2012年11月3日19:14



#4 楼

如果您感兴趣的只是捕获从应用程序发送的所有电子邮件,则SMTP4DEV是一个很棒的小工具。

#5 楼

除了前面提到的优良方法外,我还成功地使用了一个伪造的SMTP客户端,该客户端将电子邮件写入文件系统。每封邮件都被写入到以收件人命名的
目录中的单独文件中。文件系统方法具有简单性的优点。没有SMTP服务器(伪造或其他方式)进行配置。

我们的产品通过模板生成电子邮件。确保模板系统正常工作很重要,但是确保应用程序提供正确的数据以填充到模板中也很重要。测试后者成为一个解析问题。我最终用产生属性文件的简单模板替换了我们的标准模板。因此,例如,除了生成此内容:

Dear Joe Doe,

Your current account balance is 5.

Sincerely,
JP Morgan Bank


,我们将生成此内容:

RecipientFirstName: John
RecipientLastName: Doe
CurrentBalance: 125.00
SenderBank: JP Morgan Bank


这样,解析生成的电子邮件很容易。

#6 楼

试用mailosaur.com,它为您提供无限的真实测试电子邮件地址,并允许对电子邮件进行自动和手动测试。

我们具有Java,.NET,Ruby,Python和Node.js绑定,使操作变得简单将此集成到您的Selenium(或其他)测试脚本中。

公开:我是联合创始人。

#7 楼

到目前为止,大多数答案都集中在自动生成电子邮件内容的过程上。

另一个问题是如何验证电子邮件的HTML内容在不同的邮件客户端中是否呈现良好。在这方面,邮件客户端通常比网页的Web浏览器更糟,例如,Windows上的Outlook 2003可能呈现与Yahoo!不同的相同HTML电子邮件。 Chrome上的Mail或Android上的GMail应用。验证由不同的电子邮件客户端呈现的布局是否是人类擅长的并且可能难以自动化。但是,一次又一次地在多个客户端中呈现相同的电子邮件绝对是一项自动化的好工作。

我已经使用litmus.com了,但是我确定市场上还有其他公司也提供类似的电子邮件服务。使用这种服务,您无需建立自己的包含多个电子邮件客户端的实验室。相反,您几乎可以立即获取电子邮件的屏幕截图,并且可以专注于验证布局。