Appium系列分享
前言
在之前文章有讲过环境搭建,appium 实现简易IOS app自动化测试demo和appium原理分析,那么我们这次去启动一个app,通过appium与设备app建立链接。
实际操作
我们应该去下载应用包,我们以QQ为例,我们可以通过官网下载,或者其他应用商店。准备好了待测包。接下来,我们就是获取包名和启动activity了。如何获取呢,我们可以使用aapt工具获取。aapt的工具位于安卓sdk中。目录是这样的。
它位于build-tools中。如果没有,可以打开SDK-manager下载build-tools即可。
为了方便使用呢,我把加入到环境变量。
打开文件vi ~/.bash_profile然后配置如下:
然后sudo source ~/.bash_profile 即可生效。
生效后,我们就可以获取包名和activity了。执行命令如下。
aapt dump badging com.tencent.mobileqq_8.4.18_1558.apk
然后获取,如下。package:name就是包名。
那么启动activity怎么获取呢,我们继续查找。在下面可以找到
这样包名为:
com.tencent.mobileqq
启动activity 为
com.tencent.mobileqq.activity.SplashActivity
当然了我们获取了这些就可以了,接下来,我们去把待测应用安装到待测的手机即可。
那么我们启动app需要的参数即如下
'platformName': 'Android',
'deviceName': '59e14ddf',#adb deivces 'platformVersion': '10', #从设置中可以获取
'appPackage': 'com.tencent.mobileqq',#包名
'appActivity': 'com.tencent.mobileqq.activity.SplashActivity' # apk的launcherActivity
我们我们就可以写我们的脚本了
from appium import webdriver
desired_caps = { 'platformName': 'Android', 'deviceName': '59e14ddf',#adb deivces 'platformVersion': '10', #从设置中可以获取 'appPackage': 'com.tencent.mobileqq',#包名 'appActivity': 'com.tencent.mobileqq.activity.SplashActivity' # apk的launcherActivity }driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
我们去打开appium
然后点击Start Server v.18.0即可。
正常启动如上。
我们点击pycharm中run即可以运行。然后就可以启动app了。在启动的app的过程中会安装 Appium Settings 和io.appium.uiautomator2.server两个apk,这是在appium启动中安装。
在启动过程中,我们可以看到appium的日志展示如下。
这样我们一个简单的appium启动apk的demo就写好 了。 但是我们发现每次启动就会安装Appium Settings 和io.appium.uiautomator2.server,那么我们应该怎么办呢?
其实很简单。在代码中增加
desired_caps = { 'platformName': 'Android', 'deviceName': '59e14ddf',#adb deivces 'platformVersion': '10', #从设置中可以获取 'appPackage': 'com.tencent.mobileqq',#包名 'appActivity': 'com.tencent.mobileqq.activity.SplashActivity', # apk的launcherActivity 'skipServerInstallation':True#解决重复安装的问题}
这样,我们再次测试就不用安装了。只是在首次安装中才会。是不是很简单呢。
最后
appium的分享会持续分享下去,欢迎大家的关注。一个简单的demo去带领大家去入一个门,后续会继续分享更多的内容。