检查联系表是否有效(自动测试)
Checking if contact form's works (automated testing)
我有一个带有联系方式的网站。这对我的业务至关重要,我收到 all 消息,这些消息是通过此公式发送的。而且我已经看到太多由于依赖项更新或脚本冲突而导致联系表单中断的示例。
所以我的计划是做一个自动化测试,每天填写一个联系人公式,确保没有错误。而且(也是最重要的),检查另一端是否收到消息。
我正在使用 WordPress Formidable forms, but it's okay, if it's something that needs to be custom made. I've previously used Contact Form 7 with Flamingo,这很好。但缺点是,如果我没有收到电子邮件,那么它就会无声地失败,- 然后我可以使用 Flamingo 恢复未收到的消息。如果邮件没有到达我的收件箱,我需要立即知道。
检查前端
为了保证表单不被破坏,在邮件发送之前,我打算使用Nightwatchjs。
检查是否收到消息
这是我不确定该怎么做的部分...正在验证 sending/receiving 部分。
所以如果我的主要电子邮件是 inbox@example.org,那么我在想,如果我可以设置一个额外的邮件,比如 robot@example.org,然后将所有邮件发送到两封电子邮件,-然后……嗯……用那个做点什么?
我该怎么做?
或者是否有任何框架可以使它更容易?
在您当前的场景中,测试时应考虑 3 件重要的事情。
但在此之前,不要完全依赖电子邮件来提醒您。确保无论何时提交表单,后端都会将数据保存在某个数据库中,然后触发电子邮件,或者两者可以并行发生。
自动化 UI/functional 测试既费时又费钱。因此,我建议您将测试分为两部分。
- 首先可以直接API测试,这些测试可以包含所有
业务逻辑和场景,比如发送 invalid/empty 字段,XSS,
注入等。现在,使用持久化数据,您可以非常轻松地断言。
- 第二个可以是你的功能测试用例,你可以使用 puppeteer 或
selenium,puppeteer 更轻巧灵活。随便写点
基本的表格填写测试,然后登录 wp-admin 和 assert/verify
数据。
- 我会建议 运行 在某些情况下使用上述测试用例
UAT 或不同的环境,这将确保只有您的测试用例在数据库中创建记录,而不是其他人。此外,使用不同的环境可以让您轻松模拟您的电子邮件服务器或使用 mailgun API 验证电子邮件发送。
我有一个带有联系方式的网站。这对我的业务至关重要,我收到 all 消息,这些消息是通过此公式发送的。而且我已经看到太多由于依赖项更新或脚本冲突而导致联系表单中断的示例。
所以我的计划是做一个自动化测试,每天填写一个联系人公式,确保没有错误。而且(也是最重要的),检查另一端是否收到消息。
我正在使用 WordPress Formidable forms, but it's okay, if it's something that needs to be custom made. I've previously used Contact Form 7 with Flamingo,这很好。但缺点是,如果我没有收到电子邮件,那么它就会无声地失败,- 然后我可以使用 Flamingo 恢复未收到的消息。如果邮件没有到达我的收件箱,我需要立即知道。
检查前端
为了保证表单不被破坏,在邮件发送之前,我打算使用Nightwatchjs。
检查是否收到消息
这是我不确定该怎么做的部分...正在验证 sending/receiving 部分。
所以如果我的主要电子邮件是 inbox@example.org,那么我在想,如果我可以设置一个额外的邮件,比如 robot@example.org,然后将所有邮件发送到两封电子邮件,-然后……嗯……用那个做点什么?
我该怎么做? 或者是否有任何框架可以使它更容易?
在您当前的场景中,测试时应考虑 3 件重要的事情。
但在此之前,不要完全依赖电子邮件来提醒您。确保无论何时提交表单,后端都会将数据保存在某个数据库中,然后触发电子邮件,或者两者可以并行发生。
自动化 UI/functional 测试既费时又费钱。因此,我建议您将测试分为两部分。
- 首先可以直接API测试,这些测试可以包含所有 业务逻辑和场景,比如发送 invalid/empty 字段,XSS, 注入等。现在,使用持久化数据,您可以非常轻松地断言。
- 第二个可以是你的功能测试用例,你可以使用 puppeteer 或 selenium,puppeteer 更轻巧灵活。随便写点 基本的表格填写测试,然后登录 wp-admin 和 assert/verify 数据。
- 我会建议 运行 在某些情况下使用上述测试用例 UAT 或不同的环境,这将确保只有您的测试用例在数据库中创建记录,而不是其他人。此外,使用不同的环境可以让您轻松模拟您的电子邮件服务器或使用 mailgun API 验证电子邮件发送。