从上一篇我们知道了Python + appium 环境搭建,并且搭建成功了,下面我们来看如何进行真机测试
下面是自动化测试小米手机的代码:
from appium import webdriver
desired_caps = {}
desired_caps['device'] = 'android' #参数固定
desired_caps['platformName'] = 'Android' #参数固定
desired_caps['version'] = '6.0.1' #参数不固定
desired_caps['deviceName'] = 'ba682d20' #参数不固定
desired_caps['unicodeKeyboard'] = 'True' #参数固定
desired_caps['resetKeyboard'] = 'True' #参数固定
desired_caps['appPackage'] ='com.miui.calculator' #参数不固定
desired_caps['appActivity'] ='.cal.NormalCalculatorActivity' #参数不固定
desired_caps['newCommandTimeout'] = '3600' #参数固定
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
从上面可以看出来,参数不固定有version,deviceName,appPackage和appActivity。
获得上述参数前,首先将手机和电脑连接,手机打开调试模式,待手机和电脑链接后,打开cmd输入 adb devices 并且回车,得到以下内容,说明手机电脑连接成功。
List of devices attached
ba682d20device
version参数和deviceName参数获得方法
version表示手机的安卓版本号,而deviceName表示手机的硬件名,每个手机的硬件名都是唯一的
在cmd中分别输入
adb devices
adb shell getprop ro.build.version.release
appPackage参数和appActivity参数获得方法
1.我们将手机上的进程都清除掉,然后使用命令行清除日志的内容,清除logcat命令:
adb logcat -c
2.然后我们开始启动日志查看,启动logcat命令:
adb logcat ActivityManager:I *:s
3.然后我们启动我们需要查看的程序,这里我们需要测试的是计算器所以我们点击计算器图标进入app中,在命令行的logcat中我们能够看到以下新添加的内容:
07-06 11:02:41.343 2107 4351 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.miui.calculator/.cal.CalculatorActivity bnds=[460,406][628,574] (has extras)} from uid 10019 on display 0
07-06 11:02:41.381 2107 4469 I ActivityManager: Start proc 28026:com.miui.calculator/u0a38 for activity com.miui.calculator/.cal.CalculatorActivity
07-06 11:02:41.681 2107 3694 I ActivityManager: START u0 {cmp=com.miui.calculator/.cal.NormalCalculatorActivity (has extras)} from uid 10038 on display 0
07-06 11:02:41.783 2107 2121 W ActivityManager: Unable to start service Intent { act=android.intent.action.MAIN cmp=com.miui.core/com.miui.support.internal.server.CoreService } U=0: not found
07-06 11:02:42.005 2107 2294 I ActivityManager: Displayed com.miui.calculator/.cal.NormalCalculatorActivity: +316ms (total +635ms)
07-06 11:02:46.628 2107 4123 W ActivityManager: Unable to start service Intent { act=com.talkingdata.sdk.TDAntiCheatingService flg=0x20 cmp=com.miui.calculator/com.talkingdata.sdk.TDAntiCheatingService } U=0: not found
然后我们重点关注 “/” 字符,在上面一共出现了好几次,然后我们重点关注其中前面带有
ActivityManager的那一行。
07-06 11:02:42.005 2107 2294 I ActivityManager: Displayed com.miui.calculator/.cal.NormalCalculatorActivity: +316ms (total +635ms)
我们从中找出 / 前面的 com.miui.calculator 和后面的 .cal.NormalCalculatorActivity。
可以得知:
appPackage参数为 com.miui.calculator
appActivity参数为 .cal.NormalCalculatorActivity
对于各种各样品牌的手机,对应的上述参数都不同,一定要对应的去修改,否则代码将不能运行。
前面的代码准备工作都已经做完了现在就开始利用Appium打开需要测试的软件了。
1.首先我们需要打开Appium
如果用命令行安装的,在命令行中输入appium,等待显示
> info: Console LogLevel: debug
说明成功启动,
若是采用软件安装,则直接打开Appium.exe,然后点击左上角机器人图标
修改对应画红线的地方,划勾的一定要划上,其他地方不用改
然后点击右边三角形图标运行,等待出现,则说明测试准备完成。
info: Console LogLevel: debug
最后输入上述我们修改后的代码,直接粘贴在命令行中,等待一段时间能够看到计算器成功启动。
提示
其实我们还有另外一种简便获取上述参数的方法,不过我们得事先取得我们需要测app的安装包
- 首先我们进入Appium文件夹并且打开 appium.exe 打开左上角机器人图标,并且将Application Path 划上勾,点击Choose 选择 app包 的路径,然后将Package,Wait for Package,Launch Activitiy,Wait for Activity 都勾上,然后能够得知上面参数可以选择。
有的时候我们只需要 Package 和 Wait for Package 这两个参数就行,但有的时候我们不只需要这两个,还需要另外两个才能用代码打开我们需要测试的app,具体的应用场合还是需要自己去选择不同的包去试一试,成功启动了才能确定所选的参数是正确的。
之后便是我们学习如何进行元素定位
下一篇:App测试之元素定位方式