多个量角器实例

时间:2019-03-15 17:10:09

标签: angularjs selenium protractor

我在公司内部网上有一个Web服务器,该服务器允许用户提交要使用量角器测试的URL。

所有测试将在此服务器上运行,方法是使PHP为提交的每个URL编写config.js文件,然后使用shell_exec运行protractor conf[generated-id].js

我想一次运行多个量角器测试,以便更快地处理URL队列。

这些URL代表我们产品的不同版本,因此它们将非常相似。

以这种方式同时运行量角器是否安全?测试是否可能以某种方式相互干扰?

我对Selenium Grid不感兴趣,因为我希望所有测试都可以在此计算机上运行(一次2-3次,所以我想保持简单)。

谢谢

1 个答案:

答案 0 :(得分:1)

根据我的理解,测试应该是自包含的,并且同时运行多个实例应该不会引起问题。

此答案的其余部分假设如下:

  • 您没有设置directConnect
  • 每个浏览器上要执行的测试都是相同的
  • 所创建的conf文件的内容与URL相同

有几件重要的事情要知道:

  1. 如果未在配置seleniumAddress: 'http://localhost:4444/wd/hub',中指定硒服务器地址,则它将自动启动并在完成后关闭。
  2. 硒服务器启动的每个浏览器都有一个关联的唯一硒会话ID。
  3. 在自动测试过程中发送到浏览器的所有操作实际上都通过类似于以下/session/:sessionId/element/:id/click的命令与目标浏览器的会话ID一起发送到Selenium服务器。 Webdriver背后的基础技术是the webdriver wire protocol,它可以确保命令仅到达所需的浏览器。
  4. 硒服务器可以随时具有多个活动的浏览器。

那是我想知道是否可能没有更简单的合适方法,那就是将URL作为参数传递。您的测试将使用browser.get(browser.params.targetURL),运行的命令将是protractor conf.js --params.targetURL www.URLToUse.com

但是,如果按照您的问题所示,URL被提交并只是排队等待稍后运行,那么您可以编写一个数据驱动的测试,该测试将遍历URL列表并在每个URL上运行相同的测试。