3

我们有一个复杂的 Web 应用程序,它使用大量 JavaScript 以及 XMPP 和 Rails 应用程序。它已经到了我们需要端到端测试整个系统的地步。我们需要能够确保各种任务可以顺利完成,其中一项任务是与系统上的另一方协商一对一的聊天会话。由于我们应用程序上的所有任务都涉及用户与用户的交互,我们希望能够通过同时驱动通过 Web 应用程序通信的 2 个浏览器来模拟这一点。我一直在考虑使用 selenium 或watir以及它们的等待功能来等待特定事情发生后再继续。例如:

  1. 在我们的网站上打开 2 个浏览器
  2. 浏览器 1 等待发布问题
  3. 浏览器 2 发布问题,然后等待收到报价
  4. 浏览器 1 看到问题,发送报价并等待其被接受
  5. 浏览器 2 看到报价并接受它,然后等待聊天会话开始
  6. ETC...

我可以看到这种测试的编写和维护变得相当棘手。它将依赖于页面的特定元素,因此如果更改了这些元素,则需要更改测试。此外,如果我们稍微改变应用程序的流程,那么套装可能需要进行相当大的修改。

所以我的问题是,有人做过这种测试吗?如果是这样,您建议使用什么工具?您对编写测试有什么建议吗?

我们需要驱动实际的浏览器,而不是无头浏览器,并且需要能够将其与我们的 CI 集成,我们目前使用Sauce Labs和 selenium 作为我们 CI 设置的一部分。

4

1 回答 1

2

老实说,这听起来像是属于“不应该自动化的东西”类别。

可预见的问题:

  • 其中一个浏览器无法正常启动,可能会使另一个浏览器陷入死锁状态,直到超时

  • 如果由于某种原因您的测试没有通过,因为您的网络服务器决定只是变慢,您将再次陷入僵局,直到超时情况。

  • 可维护性将非常困难,因为如果发生需要更新测试的事情,您需要确保两个浏览器实例都能正常工作

我确信还有更多问题,但现在想不起来。

我会编写测试以确保您可以向系统添加新问题。我会在测试数据库中至少有一个测试,您可以随时阅读和回答(可能在您可以回滚的事务中)。

使用聊天系统,我会手动测试它,这就是你的应用程序将发挥作用的地方。让公司中的每个人(从开发人员到运维人员以及其他人员)来测试聊天,因为我确信你已经在做某种形式的 IM。

于 2010-09-21T06:18:53.363 回答