我的appium / python测试套件包含所有需要首先登录应用程序的测试。 GitHub示例仅显示如何为套件中的每个测试设置upUp / tearDown Web驱动程序。在我的情况下,为所有测试重用现有的webdriver会话会很棒。
但是,为AWS Device Farm环境中的每个测试方法执行setUpClass / tearDownClass方法。我尝试将webdriver创建为类变量在AWS Device Farm中无效(尽管在本地工作)。
设置webdriver会话,登录应用程序,然后在套件中运行所有测试,重用相同的Web驱动程序会话,然后从应用程序注销并退出webdriver,最佳方法是什么?
答案 0 :(得分:0)
我在AWS Device Farm团队工作。 在每次测试之前和之后运行的测试中,您对设置和拆卸类的观察是正确的。
设备场中的每个测试都针对appium server / session的新实例运行。这有助于我们向用户提供更精细的报告和测试工件。
我们还认为用户测试是模块化的,大多数测试框架都是这样定义的。这意味着测试之间没有依赖关系。
实现您正在寻找的内容的一种方式,而不是最好的方法是在中央测试用例中按照您喜欢的顺序调用所有测试方法。这样您就可以在一个测试用例中登录并执行其他操作。显而易见的缺点是,如果其中任何一个测试失败,它将报告主测试失败,您将不得不编写测试,以便在日志中明显显示测试的哪个部分失败。
第二种方法是在需要它的测试之前进行登录步骤。这样,您的测试也是模块化的,不依赖于彼此。
我们始终乐于接受反馈,并将其作为功能请求注明。 希望这会有所帮助。