如何在 AWS Device Farm 的 class 测试之间重用 webdriver 会话?

How webdriver session could be reused between tests in the class in AWS Device Farm?

我的 appium/python 测试套件中的测试都需要先登录应用程序。 GitHub 示例仅显示如何为套件中的每个测试 setUp/tearDown Web 驱动程序。在我的例子中,为所有测试重用现有的 webdriver 会话会很棒。

但是,setUpClass/tearDownClass 方法是针对 AWS Device Farm 环境中的每个测试方法执行的。我尝试将 webdriver 创建为 class 变量在 AWS Device Farm 中不起作用(尽管在本地工作)。

设置 webdriver 会话的最佳方式是什么,登录到应用程序,然后 运行 套件中的所有测试重用相同的 web 驱动程序会话,然后从应用程序注销并退出 webdriver?

我在 AWS Device Farm 团队工作。 您对每次测试前后 运行 的设置和拆卸 类 的观察是正确的。

device farm 中的每个测试都针对一个新的 appium 实例运行 server/session。这有助于我们为用户提供更精细的报告和测试工件。

我们还遵循这样的思路,即用户测试是模块化的,正如大多数测试框架所定义的那样。这意味着测试之间没有依赖关系。

实现您正在寻找的一种方法,而不是最好的方法是在中央测试用例中按照您喜欢的顺序调用所有测试方法。这样你就可以在那个测试用例中登录并做其他事情。缺点显然是,如果这些测试中的任何一个失败,它将报告主测试失败,您将不得不编写测试,以便在日志中清楚地表明测试的哪一部分失败了。

第二种方法是在需要它的测试之前进行登录步骤。这样您的测试也是模块化的,并且彼此不依赖。

我们始终乐于接受反馈,我已将此记为功能请求。 希望这有帮助。