在使用appium做UI自动化的起初都需要配置一系列的参数其中desired capability 就是首先要考虑的。
desired capability 是告诉 appium 服务器,你需要把appium 运行在哪个平台上.
appium服务器在建立Session 时,它告诉 appium Server这样一些事情:
- 本次测试是启动浏览器还是启动移动设备。
- 是启动Andorid还是启动iOS。
- 启动Android时,app的package是什么。
- 启动Android时,app的activity是什么。
它的写法是一组键值对的集合,类似于python的字典,看一下它的写法:
desired_caps={}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] ='127.0.0.1:21503'
desired_caps['appPackage'] = 'com.hs.mywork.activity'
desired_caps['appActivity'] ='com.hs.mywork.activity.WelcomeActivity'
desired_caps['noReset']='True'
desired_caps['unicodeKeyboard']='True'
desired_caps['resetKeyboard']='True'
desired_caps['automationName']='uiautomator2'
#使用真机的时候需要设置:
desired_caps['udid'] = 'udid'
driver = webdriver.Remote('http://'+str(data['ip'])+':'+str(data['port'])+'/wd/hub', desired_caps)
- platformName:使用哪种移动平台。iOS, Android, orFirefoxOS。
- platformVersion:指定平台的系统版本。例如指的Android平台,版本为5.1.1。
- deviceName:启动哪种设备,是真机还是模拟器?我这里写的是安卓模拟器的地址。
- appPackage:待测试的app的Java package。比如
com.hs.mywork.activity
。 - appActivity:待测试的app的Activity名字。比如我需要测试的app:
com.hs.mywork.activity.WelcomeActivity
。注意,原生app的话要在activity前加个”.“。 - noReset:当前session前时不需要重置app状态。
- unicodeKeyboard:支持中文输入。
- resetKeyboard:重置输入法到原有状态
- automationName:使用哪种自动化引擎。appium(默认)还是Selendroid,我用的是:
uiautomator2'
。 - udid:使用真机时的识别码。
driver = webdriver.Remote('http://'+str(data['ip'])+':'+str(data['port'])+'/wd/hub', desired_caps)
这里是启动appium的ip地址和端口号