我正在尝试使用appium和selenium网格运行一些移动自动化测试。一旦我完成了所有的配置工作并添加了网格节点,如何在两个设备中并行运行测试?在
这是我的setUp()
:
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = ''
desired_caps['app'] = os.path.abspath(os.path.join(os.path.dirname(__file__), 'C:/Users/XXXXX/Desktop/workspace/XXXX/apps/XXXXX.apk'))
desired_caps['appPackage'] = 'XXXXXXXX'
desired_caps['appActivity'] = '.MainActivity'
desired_caps['noReset'] = False
self.driver = webdriver.Remote('http://localhost:4444/wd/hub', desired_caps)
self.driver.implicitly_wait(15)
在这种情况下,deviceName
中应该是什么?在
如果我留空,我得到的是:
^{pr2}$我只能在网格中运行一个注册的节点。我甚至尝试用two setup()
创建一个脚本,每个脚本都指向每个设备,但是即使这样,测试也只在同一个设备上运行一个设备。在
这是我的网格控制台:
据我所知,你试图同时运行你的测试,对吗?在
如果是这样的话,我在你的帖子中没有看到关于线程的任何信息,如果没有线程,你的测试将连续运行。在
Selenium网格不会对同一种资源进行循环连接。它只是分配第一台可用的机器。一、 E.如果测试'A'请求一个特定的浏览器/平台/设备配置,并运行到完成,那么如果测试'B'出现并要求相同的配置,它将得到测试got的同一台机器。有道理?在
如果您想并行化测试,我建议您检查pytest&以及xdist插件。这将为您处理所有线程/多进程事务。在
有趣的是,即使您编写了使用unittest的所有内容,也不必重写所有内容来使用pytest;只需将pytest指向现有代码即可。在
相关问题 更多 >
编程相关推荐