我们有一个复杂的 Web 应用程序,它使用大量 JavaScript 以及 XMPP 和 Rails 应用程序。它已经到了我们需要端到端测试整个系统的地步。我们需要能够确保各种任务可以顺利完成,其中一项任务是与系统上的另一方协商一对一的聊天会话。由于我们应用程序上的所有任务都涉及用户与用户的交互,我们希望能够通过同时驱动通过 Web 应用程序通信的 2 个浏览器来模拟这一点。我一直在考虑使用 selenium 或watir以及它们的等待功能来等待特定事情发生后再继续。例如:
- 在我们的网站上打开 2 个浏览器
- 浏览器 1 等待发布问题
- 浏览器 2 发布问题,然后等待收到报价
- 浏览器 1 看到问题,发送报价并等待其被接受
- 浏览器 2 看到报价并接受它,然后等待聊天会话开始
- ETC...
我可以看到这种测试的编写和维护变得相当棘手。它将依赖于页面的特定元素,因此如果更改了这些元素,则需要更改测试。此外,如果我们稍微改变应用程序的流程,那么套装可能需要进行相当大的修改。
所以我的问题是,有人做过这种测试吗?如果是这样,您建议使用什么工具?您对编写测试有什么建议吗?
我们需要驱动实际的浏览器,而不是无头浏览器,并且需要能够将其与我们的 CI 集成,我们目前使用Sauce Labs和 selenium 作为我们 CI 设置的一部分。