Selenium 使用多浏览器窗口自动化分布式系统测试

Selenium 使用多浏览器窗口自动化分布式系统测试,selenium,websocket,distributed,Selenium,Websocket,Distributed,我正在用WebSocket构建一个分布式系统。浏览器客户端可以直接相互连接,也可以连接到中央服务器。我想测试一些端到端的分布式用例 例1: 打开浏览器A并连接到我的网站 打开浏览器B并连接到我的网站 浏览器A向浏览器B发送聊天信息 确认浏览器B收到该消息 例2: 打开浏览器A并连接到我的网站 打开浏览器B并连接到我的网站 浏览器A向浏览器B发送聊天信息 在浏览器B上,单击“断开”按钮 确认浏览器B没有收到该消息 在浏览器B上,单击“重新连接”按钮 确认浏览器A已收到该消息 我该怎么做?我

我正在用WebSocket构建一个分布式系统。浏览器客户端可以直接相互连接,也可以连接到中央服务器。我想测试一些端到端的分布式用例

例1:

  • 打开浏览器A并连接到我的网站
  • 打开浏览器B并连接到我的网站
  • 浏览器A向浏览器B发送聊天信息
  • 确认浏览器B收到该消息
例2:

  • 打开浏览器A并连接到我的网站
  • 打开浏览器B并连接到我的网站
  • 浏览器A向浏览器B发送聊天信息
  • 在浏览器B上,单击“断开”按钮
  • 确认浏览器B没有收到该消息
  • 在浏览器B上,单击“重新连接”按钮
  • 确认浏览器A已收到该消息

我该怎么做?我见过selenium并行运行,但我没有看到任何允许您协调浏览器之间交互的东西。

您的测试可以打开许多webdriver实例

如果在测试中打开两个实例,一个可以表示浏览器A,另一个可以表示浏览器B

调用这些对象上的方法来模拟您在文章中讨论的场景

要实现这一点,您需要使用RemoteWebDriver。如果全部托管在本地,您的计算机上将有两个未连接的浏览器。如果你使用一个网格,那么你将在网格的某个地方得到两个浏览器,可能在不同的机器上

如果您想要完全控制,您可以在两台远程机器上启动Selenium实例,并将这些硬编码的机器名用于A和B。在这种情况下,将没有网格

不过还是要警告一下。如果您试图在本地托管所有浏览器,则不能使用IE,因为多个IE都共享相同的数据,而Chrome则完全独立