app自动化测试---desired capabilities
Capabilities
capabilities是什么?
Desired Capabilities是一个键值对的组合,在Python里面是一个字典。客户端将这些键值对发送给appium服务器,告诉服务器怎么测试。
desired Capabilities例子:
1 # -*- coding:utf-8 -*- 2 desired_caps = {} # 字典 3 desired_caps['platformName'] = "Android" # 设备版本号,需要测试的手机的操作系统 4 desired_caps['platformVersion'] = '7.0' # 手机操作系统版本 5 desired_caps['deviceName'] = "DIYTHYTCCQBIV47D" # 使用手机的类型或模拟器的类型,adb devices获得 6 desired_caps['udid'] = "DIYTHYTCCQBIV47D" # 同上 7 # 手机web应用自动化测试 8 desired_caps['browserName'] = '' # 需要进行自动化测试的web浏览器,对APP应用进行测试的话至于空值。Chrome、Browser、Chromlum 9 ''' 10 应用的包名,在参数中如果添加了应用的安装路径,就可以不用写包名和启动的activity参数 11 desired_caps['app'] = r'D:\test\test.apk' #被测试的APP在电脑的路径 12 ''' 13 desired_caps['appPackage'] = 'com.android.mms' # APP的package在uiautomatorviewer或appium中可以获得 14 desired_caps['appActivity'] = '.ui.activity.InitActivity' # 相当于APP的每个页面,appium里面可以获得 15 desired_caps['unicodeKeyboard'] = "True" # 开启Unicode键盘 16 desired_caps['resetKeyboard'] = "True" 17 desired_caps['newCommandTimeout'] = 30 # 设置命令超时时间,单位秒 18 ''' 19 混合应用:正确的用appium测试微信h5的方法如下: 20 desired_caps['chromeOptions'] = {'androidProcess': 'com.tencent.mm:tools'} 21 ''' 22 driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
Unicode键盘设置
文本框(TextField)
在做安卓自动化中,desired Capabilities中有这么两句设置:
desired_caps['unicodeKeyboard'] = "True" # 开启Unicode键盘 desired_caps['resetKeyboard'] = "True"
下面再学习总结一下:
默认情况下,iOS和Android的自动化工具(手机、模拟器)都不支持向输入框中输入非ASCII字符的。
iOS先不去研究了。跳过。
appium针对这个问题,怎么解决Android自动化问题呢?
通过下载安装一个特殊的键盘,Android可以支持Unicode字符,这个输入法允许文本通通过ASCII在appium和被测试应用之间进行同行。
所以需要设置:
unicodeKeyBoard 设置为True;如果要键盘设置在测试完成后回到原始状态,需要将resetKeyBoard也设置为True,否则appium测试结束后,appium的Unicode键盘仍然会被激活。
设置后,就可以通过send_keys()方法向输入框输入Unicode字符了。
备注:
这个Unicode键盘并非虚拟键盘,在界面上不会显示出来,要进行其他类型的测试必须切回其他输入法。
总的来说,就是在desired Capabilities中增加:上面两句设置。
下面关于这些参数进行汇总
在参数中如果添加了应用的安装路径,就可以不用写包名和启动的activity参数
devicesName这个参数必须的有,在安卓的测试过程中,必须要写。
通用参数:
安卓专用参数:
iOS专用参数:
图片来自:http://blog.csdn.net/Yejianyun1/article/details/56279051