常用命令
自动化测试过程中通常会使用一些操作命令,如针对Android需要查看App的appPackage和appActivity;针对IOS需要查看App的bundleID等。
本章节对Android、IOS常用到的命令进行了总结。
在某些情况下,可能需要终止然后再启动服务端进程,例如adb不响应命令的时候,可以通过重启解决问题。
关闭adb服务,输入命令 adb kill-server
启动adb服务,输入命令 adb start-server
1.2查询模拟器/真机状态
输入命令 adb devices
例如:查询到2台设备,192.168.89.101:5555为模拟器,MYV0215825000026为真机。显示device 说明2台设备都已经连上。
连接状态分为2种:
offline-未连接或未响应;
device-已经连接到服务商。注意这个状态并不表示Android系统已经完全启动起来,系统启动的过程中已经可以连接adb,但这个状态是正常的可操作状态。
1.3操作指定的模拟器/真机
输入命令 adb -s
如果有多个模拟器或真机正在运行,当使用adb命令的时候就需要指定目标设备,这可以通过使用-s选项参数实现。
例如:指定一台机器安装应用程序。
adb -s MYV0215825000026 install C:\Qunar_android_C2487.apk
1.4列出所有可用的AVD模拟器
输入命令 android list avds
此命令是查询Android SDK已经创建好的Android Virtual Devices(AVD)模拟器详细信息。
例如:在Android SDK中创建2台Android Virtual Devices模拟器,执行命令会查询到这2台模拟器信息。
1.5启动AVD模拟器
输入命令 emulator -avd
例如:有2台Android Virtual Devices模拟器,只启动Test1这台,命令如下
emulator -avd Test1
1.6安装应用程序
输入命令 adb install -r
使用adb install命令从电脑中复制应用程序安装到模拟器或真机上,在这个命令中,必须指定待安装的.apk文件的路径。
例如:adb install -r D:\Documents\Downloads\Qunar.apk
提示Success,此时已经将应用程序安装到设备上了。
1.7卸载应用程序
输入命令 adb uninstall
使用adb uninstall命令在模拟器或真机上卸载指定的应用程序,为要卸载的应用程序包名。
例如:adb uninstall com.Qunar
卸载包名为com.Qunar的应用程序,提示Success,在设备上已经卸载掉此应用程序了。
1.8与模拟器/真机传输文件
可以使用adb的pull和push命令从模拟器或真机中复制文件,或者将文件复制到模拟器或真机中。与install命令不同,它仅能复制.apk文件到特定的位置,而pull和push命令可以复制任意文件夹和文件到模拟器或真机的任何位置。
从模拟器或真机中复制一个文件或文件夹到电脑上:
输入命令 adb pull
从电脑上复制一个文件或文件夹到模拟器或真机中:
输入命令 adb push
在命令中和引用的是文件或文件夹的路径,在电脑上的是local,在模拟器或真机上的是remote。
例如:adb pull /sdcard/Test/log.txt D:\Documents\Downloads\log.txt
例如:adb push D:\Documents\Downloads\log.txt /sdcard/Test/log.txt
1.9获取App的appPackage和appActivity
执行自动化测试之前,必须要获取所测试App的appPackage(包名)和appActivity(启动页),之后将这两个值填写到脚本指定参数里,来告诉要执行的是哪个App。
获取方式有很多(任选其一即可):
方式一(此种方式有时候抓取的appActivity不准确):
先在设备里打开要获取的App
输入命令 adb shell dumpsys window w | findstr \/ | findstr name=
例如:微博App,如图所示:
appPackage为com.sina.weibo
appActivity为com.sina.weibo.VisitorMainTabActivity
所以在代码初始化中可以填入appPackage和appActivity:
desired_caps['appPackage'] = 'com.sina.weibo'
desired_caps['appActivity'] = 'com.sina.weibo.VisitorMainTabActivity'
方式二:
先获取appPackage
输入命令 adb shell pm list package -3
例如:去哪儿App,如图所示:
appPackage为com.Qunar
之后在设备里打开要获取的App,获取appActivity
输入命令 adb logcat ActivityManager:I *:s
或者(由于打印的日志信息太多,可以指向文档里,方便查找)
输入命令 adb logcat ActivityManager:I *:s > D:\Documents\MyTest\2.App\Android\App\log.txt
在打印的信息里,找到以appPackage为com.Qunar的appActivity信息
如图:appActivity为com.mqunar.splash.SplashActivity
所以在代码初始化中可以填入appPackage和appActivity:
desired_caps['appPackage'] = 'com.Qunar'
desired_caps['appActivity'] = 'com.mqunar.splash.SplashActivity'
方式三(通过.apk程序文件来获取appPackage和appActivity):
命令行进入Android SDK目录下aapt所在的目录里。
如图所示:
输入命令 aapt dump badging
例如:aapt dump badging D:\Documents\MyTest\2.App\Android\App\Qunar.apk
appPackage为com.Qunar
appActivity为com.mqunar.splash.SplashActivity
所以在代码初始化中可以填入appPackage和appActivity:
desired_caps['appPackage'] = 'com.Qunar'
desired_caps['appActivity'] = 'com.mqunar.splash.SplashActivity'
1.10启动Appium Server
输入命令 appium
如图所示:Appium服务已经开启。
启动Appium服务时可以添加一些参数配置
例如:appium --address 127.0.0.1 --port 4723 --no-reset --session-override
--address 监听的IP地址。
--port 监听的端口。
--no-reset Session之间不重置应用状态(IOS:不删除应用的plist文件;Android:在创建一个新的Session前不删除应用)。
--session-override 允许Session被覆盖(冲突的话)。
将真机连接到Mac上,终端输入 idevice_id -l
如图所示:显示该真机的udid信息。
2.2列出所有设备
终端输入 instruments -s devices
列出所有设备,包括:模拟器、真机及Mac电脑本身。
2.3获取真机信息
终端输入 ideviceinfo -u [udid]
指定设备,获取设备信息。
例如:ideviceinfo -u c5dc675bddf7d1ac6d91783d5224d72b427f8d04
终端输入 ideviceinfo -u [udid] -k DeviceName
指定设备,获取设备名称。
例如:ideviceinfo -u c5dc675bddf7d1ac6d91783d5224d72b427f8d04 -k DeviceName
终端输入 ideviceinfo -u [udid] -k ProductVersion
指定设备,获取设备版本。
例如:ideviceinfo -u c5dc675bddf7d1ac6d91783d5224d72b427f8d04 -k ProductVersion
终端输入 ideviceinfo -u [udid] -k ProductType
指定设备,获取设备类型。
例如:ideviceinfo -u c5dc675bddf7d1ac6d91783d5224d72b427f8d04 -k ProductType
终端输入 ideviceinfo -u [udid] -k ProductName
指定设备,获取设备系统名称。
例如:ideviceinfo -u c5dc675bddf7d1ac6d91783d5224d72b427f8d04 -k ProductName
2.4获取App的bundleID
执行自动化测试之前,必须要获取所测试App的bundleID,之后将这个值填写到脚本指定参数里,来告诉要执行的是哪个App。
终端输入 ideviceinstaller -l
如图所示,查询到已安装App的bundleID信息。
2.5安装应用程序
终端输入 ideviceinstaller -i [xxx.ipa] -o [设备udid]
给指定连接的设备安装应用程序,xxx.ipa为应用程序在本地的路径。如果是企业签名的,非越狱机器也可以直接安装。
例如:ideviceinstaller -i /Users/automation/test/VWallet.ipa -o c5dc675bddf7d1ac6d91783d5224d72b427f8d04
2.6卸载应用程序
终端输入 ideviceinstaller -U [bundleID] -o [设备UDID]
给指定连接的设备卸载应用程序,前提需要知道此应用的bundleID。
例如:ideviceinstaller -U com.xiaoV.conchBeta -o c5dc675bddf7d1ac6d91783d5224d72b427f8d04
2.7查看真机已安装的应用
终端输入 ideviceinstaller -u [udid] -l
指定设备,查看安装的第三方应用。
例如:ideviceinstaller -u c5dc675bddf7d1ac6d91783d5224d72b427f8d04 -l
终端输入 ideviceinstaller -u [udid] -l -o list_system
指定设备,查看安装的系统应用。
例如:ideviceinstaller -u c5dc675bddf7d1ac6d91783d5224d72b427f8d04 -l -o list_system
终端输入 ideviceinstaller -u [udid] -l -o list_all
指定设备,查看安装的系统应用和第三方应用。
例如:ideviceinstaller -u c5dc675bddf7d1ac6d91783d5224d72b427f8d04 -l -o list_all
2.8启动Appium Server
终端输入 appium
如图所示:Appium服务已经开启。
启动Appium服务时可以添加一些参数配置
例如:appium --address 127.0.0.1 --port 4723 --no-reset --session-override
--address 监听的IP地址。
--port 监听的端口。
--no-reset Session之间不重置应用状态(IOS:不删除应用的plist文件;Android:在创建一个新的Session前不删除应用)。
--session-override 允许Session被覆盖(冲突的话)。
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有