Saucelabs Team Tunnel,共享测试

Saucelabs Team Tunnel, sharing tests

如何设置 Saucelabs 以在团队中工作、查看共享测试和共享 sauce connect 隧道

-克里斯托斯

所以我只花了几个小时让它工作,但我没有找到任何资源将所有这些都列在一个地方。所以我想我会记录如何让 Saucelabs 在团队环境中工作。

这是我的假设:

  • 您正在Python工作(大部分概念将适用于跨语言)
  • 您有一个付费的 saucelabs 帐户
  • 您有一个主账户,一个子账户
  • 您希望 "sauce connect" 隧道能够被整个团队使用
  • 您希望整个团队都有权查看自动化测试

以下是我设置环境的方式:

共享隧道

设置 sauce 使用主帐户 ID 和密钥连接隧道,为其命名并将其标记为共享隧道

sc -u main_account_id -k your_api_key --shared-tunnel  --tunnel-identifier your_tunnel_name

这会在 main_account_id 上创建隧道,为隧道命名,并在您的团队中共享它

运行 测试来自 bulk_user

我设置了一个名为 "bulktests" 的 saucelabs 用户,仅用于自动化测试。我想要一个通用帐户来 运行 自动测试。主要用户帐户不是批量测试的选项,因为如果你 运行 从主要用户帐户进行测试,除了主要用户之外没有人会能够看到他们。测试只能在兄弟帐户之间共享。拥有 bulktests 用户后,我使用他们的 ID 和 api 密钥在 Python 中连接了我的 sauce 客户端。

self.driver = webdriver.Remote(
                command_executor='http://' + bulkuser + ':' + bulk_user_api_key + '@ondemand.saucelabs.com:80/wd/hub',
                desired_capabilities=desired_capabilities_dictionary) 

使用共享隧道

我必须提供我想要的共享隧道 ID 所需的功能。我还必须提供所需的功能,即 "parentTunnel"

 desired_cap = {
            'platform': "Windows 7",
            'browserName': "firefox",
            'name': "dummyTest",
            "parentTunnel":"mainAccountID",
            "tunnelIdentifier": "your_tunnel_name"
        }

让团队可以使用测试

saucelabs 文档让您相信可以在所需功能中设置团队共享。我发现这在我的测试中不起作用。这是我能够共享测试的方式。我做了一个 sauce_client 对象(我在测试结束时使用它来将结果推送到 saucelabs),然后我设置 public = team there

self.sauce_client = SauceClient(sauceuser, saucecode)
        # sauceuser and saucecode defined earlier,  this is the bulk_user to run my automated tests
        self.driver = webdriver.Remote(
                command_executor='http://' + sauceuser + ':' + saucecode + '@ondemand.saucelabs.com:80/wd/hub',
                desired_capabilities=desired_cap)
        self.sauce_client.jobs.update_job(self.driver.session_id, public="team")

团队成员查看结果

每个测试完成后,团队成员可以转到他们的存档页面,然后您必须搜索测试才能看到共享的测试。默认情况下存档页面不会显示所有测试,您必须为之前创建的批量用户搜索测试