【问题标题】:Using Test Configuration when running on-demand automated tests from VSTS Test Hub从 VSTS 测试中心运行按需自动化测试时使用测试配置
【发布时间】:2017-09-01 17:53:54
【问题描述】:

我的组织已经从在 MTM 中执行自动化测试转变为在 VSTS 测试中心通过发布定义执行自动化测试。我们正在使用 MSTest 使用 Selenium / C# 运行测试。

要求我们能够按需运行任何单独的测试、构建后,并使用测试配置来控制浏览器。通过 MTM 运行测试时,这可以正常工作。

以前,当通过 MTM 运行测试时,我的 MSTest TestContext 的“属性”填充了运行时参数,例如测试配置,例如 TestContext.Properties["__Tfs_TestConfigurationName__"]。运行时属性也可以在生成的 .trx 文件中看到。

现在,当通过 VSTS 测试中心运行测试时,这些值不再自动在 TestContext 中设置,我在 .trx 文件或我的发布部署日志中也看不到它们。

对于如何将每个测试的测试配置值传播到 TestContext(或通过其他代码访问)以便能够在测试运行时控制浏览器,是否有任何建议?

  • 我考虑过创建一个 .runsettings 文件,但不知道如何将测试配置变量动态填充到该文件中。
  • 我曾考虑尝试在我的 Selenium 代码中查询测试运行/测试结果以确定测试点/配置,但我不知道如何确定测试运行 ID(我在发布日志中看到了测试运行 ID,但不知道如何以编程方式访问它)
  • 我看到了一个名为“VSTS 测试扩展”的 VSTS 扩展,据称它可以将 VSTS 变量注入到 .runsettings 文件中,但没有关于如何配置 .runsettings 文件以实现此目的的详细信息,并且旧的 MTM 样式参数名称似乎不起作用。
  • 测试配置变量是否可以在 VSTS 中以某种方式全局访问? IE。我可以创建一个 PowerShell 发布任务以某种方式访问​​测试运行/测试点数据吗?除了将它们用于手动测试之外,Microsoft 没有提供有关如何使用测试配置的任何指示。

非常感谢任何帮助。

【问题讨论】:

  • 测试期间无法从TestContext中获取,runsettings文件也无法动态设置变量。

标签: automated-tests azure-devops


【解决方案1】:

经过更多审查,我唯一的选择似乎是一个巨大的黑客:

我注意到在发布日志中,[TEST_RUNID] 被输出,它指向我不知道存在的 $(test.runid) 变量。

我可以通过 Powershell 发布任务将运行 ID 输出到外部文件。

然后我可以让我的测试代码读取该文件,对 VSTS 执行 API 调用,查询该运行 ID 的测试结果,然后使用该响应输出每个测试用例 ID 的测试配置名称。

然后,我可以将每个测试方法中的测试用例 ID 与服务调用响应中的测试用例 ID 进行匹配,并根据测试配置名称设置浏览器。

唯一的问题是,如果相同的测试在相同的运行中多次使用不同的配置存在,则可以通过每次测试开始时查询测试运行并根据状态检查已运行的配置来解决这个问题(“待定”等)或通过我还没有想到的其他方式。

【讨论】:

  • 你有没有找到任何替代方法来找到 TestRunID?
  • 不;尽管这种方法很老套,但效果相当好。我已经离开了那个项目,不再使用 VSTS,所以我不确定现在是否有更好的选择。
猜你喜欢
  • 2018-08-02
  • 1970-01-01
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
相关资源
最近更新 更多