-1

我有一个 Web 应用程序,需要在多个环境中的多个浏览器中进行测试(即 Windows 和 Linux* 中的 Chrome、Firefox 和 Internet Explorer(* Internet Explorer 明显例外))。

已经使用 JBehave、Selenium 和 SerenityBDD (Thucydides) 用 Ja​​va 编写了测试。这些测试使用底层 REST API,测试是否可以使用 UI 成功创建和删除对象。

我正在使用 Selenium Grid,并希望在并行节点上运行测试;然而,令人担忧的是,当测试执行底层 REST API 时,可能会出现冲突。

是否可以将参数作为运行测试的 Jenkins 作业配置中的参数传递给测试,以便依赖于它们正在执行的节点的测试略有不同?(例如,在 Chrome 上创建了一个名为“MYOBJECT-CHROME”的对象,而在 Firefox 上创建了一个名为“MYOBJECT-FIREFOX”的对象,这意味着可以避免任何 REST API 冲突?)

4

1 回答 1

1

如果被测软件(SUT)允许多线程 REST API 请求,您无需担心

意味着可以避免任何冲突?

测试并发请求应设置为固定装置,这意味着每个原子测试都应设置/拆除所需的测试数据或返回被测软件的(SUT)状态。一个很好的候选者是Prebuilt 固定装置。它将允许您将其添加为 Jenkins 中的一个步骤,并且可以减少创建所有这些测试对象的开销。

如果您仍然需要参数化构建,您可以使用 BDD 中的套件@tags来定义将执行哪一组测试。

于 2015-09-15T05:34:01.933 回答