前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化-Appium-常用命令

自动化-Appium-常用命令

作者头像
wangmcn
发布2022-07-25 12:47:46
1.7K0
发布2022-07-25 12:47:46
举报
文章被收录于专栏:AllTests软件测试

常用命令

自动化测试过程中通常会使用一些操作命令,如针对Android需要查看App的appPackage和appActivity;针对IOS需要查看App的bundleID等。

本章节对Android、IOS常用到的命令进行了总结。

第1章 Android

1.1启动和关闭adb服务

在某些情况下,可能需要终止然后再启动服务端进程,例如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被覆盖(冲突的话)。

第2章 IOS

2.1查看真机udid

将真机连接到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被覆盖(冲突的话)。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第1章 Android
  • 1.1启动和关闭adb服务
  • 第2章 IOS
  • 2.1查看真机udid
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档