Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 驱动多个相互交互的浏览器_Testing_Selenium_Integration Testing_Qa_Browser Testing - Fatal编程技术网

Testing 驱动多个相互交互的浏览器

Testing 驱动多个相互交互的浏览器,testing,selenium,integration-testing,qa,browser-testing,Testing,Selenium,Integration Testing,Qa,Browser Testing,我们有一个复杂的web应用程序,它使用了大量JavaScript以及XMPP和Rails应用程序。我们需要对整个系统进行端到端测试。我们需要能够确保各种任务能够在没有错误的情况下完成,其中一项任务是与系统上的另一方协商一对一的聊天会话。由于我们应用程序中的所有任务都涉及到用户对用户的交互,我们希望能够通过同时驱动两个通过web应用程序进行通信的浏览器来模拟这一点。我一直在考虑使用selenium或及其等待函数来等待特定的事情发生,然后再继续。例如: 在我们的网站上打开2个浏览器 浏览器1等待发布

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

  • 在我们的网站上打开2个浏览器
  • 浏览器1等待发布问题
  • 浏览器2发布问题,然后等待收到报价
  • 浏览器1看到问题,发送报价并等待其被接受
  • 浏览器2看到并接受该服务,然后等待聊天会话开始
  • 等等
  • 我可以看到这种测试在编写和维护上变得相当棘手。它将依赖于页面的特定元素,因此如果这些元素被更改,测试将需要更改。此外,如果我们更改应用程序的流程,即使是很小的更改,也可能需要对西装进行大量修改

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


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

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

    可预见的问题:

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

    • 如果由于某种原因,您的测试没有完全通过,因为您的Web服务器决定速度太慢,您将遇到另一个死锁,直到超时情况

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

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

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


    有了聊天系统,我会手动测试这一点,这就是dogfooding你的应用将进入它自己的地方。让公司里的每个人(从开发人员到运营人员以及其他人员)都来测试聊天,因为我确信你已经在做某种IM了。

    目前,我们已经对系统的每个部分、Rails应用程序、JavaScript以及XMPP ejabberd服务器上的机器人进行了广泛的测试。到目前为止,我们一直在运行手动测试,尽管我们可能没有像应该的那样进行广泛的测试。我们遇到的一个问题是,在手动测试过程中遗漏了一些东西,需要测试的边缘案例的数量越来越大,在QA过程中测试所有这些案例变得相当繁琐,因为我们是一个小团队。也许解决方案就是像你说的那样,使用我们的应用程序来代替内部电子邮件和即时通讯