是的,Appium可以同时在多个设备上运行多个不同的测试。可以通过创建多个Appium服务实例来实现。
下面是一个使用Python编写的示例代码,演示如何在两个设备上同时运行不同的测试。
from appium import webdriver
from multiprocessing import Process
# 启动第一个设备上的测试
def run_test1():
desired_caps1 = {
'platformName': 'Android',
'deviceName': 'device1',
'appPackage': 'com.example.app1',
'appActivity': '.MainActivity'
}
driver1 = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps1)
# 执行测试代码
# ...
driver1.quit()
# 启动第二个设备上的测试
def run_test2():
desired_caps2 = {
'platformName': 'Android',
'deviceName': 'device2',
'appPackage': 'com.example.app2',
'appActivity': '.MainActivity'
}
driver2 = webdriver.Remote('http://localhost:4725/wd/hub', desired_caps2)
# 执行测试代码
# ...
driver2.quit()
if __name__ == '__main__':
# 创建两个进程,分别运行不同的测试
p1 = Process(target=run_test1)
p2 = Process(target=run_test2)
# 启动进程
p1.start()
p2.start()
# 等待进程结束
p1.join()
p2.join()
在上面的示例中,我们使用multiprocessing
模块创建了两个进程,分别运行不同的测试。每个进程都使用不同的deviceName
和appPackage
配置,以便在不同的设备上运行不同的测试。
注意,需要根据实际情况修改appPackage
和appActivity
的值,以及Appium服务器的URL(http://localhost:4723/wd/hub
和http://localhost:4725/wd/hub
)。