Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >自动化-Appium-常用命令

自动化-Appium-常用命令

作者头像
wangmcn
发布于 2022-07-25 04:47:46
发布于 2022-07-25 04:47:46
1.9K0
举报
文章被收录于专栏:AllTests软件测试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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
自动化-Appium-​第一个Demo-混合(Python版)
App是移动混合应用程序,即在移动应用程序中嵌入了Webview,通过Webview访问网页。
wangmcn
2022/07/25
2.7K0
自动化-Appium-​第一个Demo-混合(Python版)
自动化-Appium-​第一个Demo-Web(Python版)
本章Web所指的是移动端(模拟器/真机)里的浏览器(如:Chrome、Safari)。
wangmcn
2022/07/25
2.6K0
自动化-Appium-​第一个Demo-Web(Python版)
appium+python自动化59-多台设备并行
做android自动化的时候,启动一个appium服务,只能匹配一个手机去自动化执行。有时候想同一套代码,可以在不同的手机上执行,测下app在不同手机上兼容性。 这就需要启动多个appium服务了,并且android设备和appium要一一对应才行。
上海-悠悠
2018/07/25
6K1
appium+python自动化59-多台设备并行
自动化-Appium-微信小程序(Python版)
微信小程序其实也是正常的webview,但需要在微信里打开X5调试页面进行设置,脚本添加androidProcess参数才可以执行自动化测试。
wangmcn
2022/07/25
5.7K0
自动化-Appium-微信小程序(Python版)
Appium+python自动化(七)- 初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 上(超详解)
  “千呼万唤始出来,犹抱琵琶半遮面”,经过前边的各项准备工作,终于才把appium这位琵琶女请出来。那么下边就由宏哥给各位看官、小伙伴们和童鞋们来引荐这位美女(帅哥)。这一篇主要是对前边的内容做一个小小的总结,我们不能只顾得埋头拉车,不记得抬头看路可不行哦!
北京-宏哥
2019/06/25
2.7K0
Appium+python自动化(七)-  初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 上(超详解)
自动化-Appium-环境搭建-IOS(Python版)
Xcode如何下载安装或更新呢?打开Mac机上的App Store,搜索Xcode,进行安装或者更新,注意观察下Xcode的更新日志,可以看到当前版本支持的IOS SDK版本。
wangmcn
2022/07/25
5.4K0
自动化-Appium-环境搭建-IOS(Python版)
自动化-Appium-第一个Demo-原生(Java版)
4、创建lib文件夹,用来存放jar包。把Appium Clients jar和Selenium jar包拷贝到文件夹里。
wangmcn
2022/07/25
2.2K0
自动化-Appium-第一个Demo-原生(Java版)
自动化-Appium-第一个Demo-原生(Python版)
1、启动PyCharm,创建My_Appium_Demo项目。创建demo包,之后创建脚本文件。例如:模拟器示例为Android_App_Simulator,真机示例为Android_App_RealMachine
wangmcn
2022/07/25
2.3K0
自动化-Appium-第一个Demo-原生(Python版)
自动化-Appium-环境搭建-IOS(Java版)
Xcode如何下载安装或更新呢?打开Mac机上的App Store,搜索Xcode,进行安装或者更新,注意观察下Xcode的更新日志,可以看到当前版本支持的IOS SDK版本。
wangmcn
2022/07/25
5.8K0
自动化-Appium-环境搭建-IOS(Java版)
Appium+python自动化(六)- 连接模拟器并启动淘宝APP(超详解)
  上一篇讲解完模拟器的安装、配置好以后,就好比我们手机已经买好,并且系统已经做好了,就差我们用数据线和电脑连接开始实战了,这篇宏哥就带着小伙伴们和童鞋们趁热打铁,讲解和分享一下如何连接模拟器(电脑版的虚拟手机),然后再安装一款APP-淘宝为例。
北京-宏哥
2019/06/25
6K0
Appium+python自动化(六)-  连接模拟器并启动淘宝APP(超详解)
Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)
前边介绍的都是通过按钮点击启动按钮来启动appium服务,有的小伙伴或者童鞋们乍一听可能不信,或者会问如何通过命令行启动appium服务呢?且听宏哥一一道来。
北京-宏哥
2019/09/11
6.7K0
Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)
Python + Appium 自动化操作微信入门看这一篇就够了
Appium 是一个开源的自动化测试工具,支持 Android、iOS 平台上的原生应用,支持 Java、Python、PHP 等多种语言。
Python小二
2020/11/06
4.7K0
Python + Appium 自动化操作微信入门看这一篇就够了
自动化-Appium-微信公众号(Python版)
微信公众号其实也是正常的webview,但需要在微信里打开X5调试页面进行设置,脚本添加androidProcess参数才可以执行自动化测试。
wangmcn
2022/07/25
2.9K0
自动化-Appium-微信公众号(Python版)
Python+Appium运行简单的demo,你需要理解Appium运行原理!
通过 Http 通信,没有改变浏览器访问系统的属性,只要访问就可以了。 Appium 做自动化也是如此。
清菡
2020/09/20
2.4K0
自动化-Appium-第一个Demo-混合(Java版)
App是移动混合应用程序,即在移动应用程序中嵌入了Webview,通过Webview访问网页。
wangmcn
2022/07/25
2.6K0
自动化-Appium-第一个Demo-混合(Java版)
win10上搭建appium自动化环境
以前都是在mac机器上搭建环境,觉得好麻烦,自己还曾今写了个脚本来一键搭建。 现在在win10上搭建,发现开始很容易,也会有一些坑。把这些坑都记录下来,也许将来可以翻翻。 前面已经搭建了java,android,node的环境,现在搭建appium是水到渠成了。 先去看看最新的版本是啥。打开官网appium.io有点慢,耐心等待。
赵云龙龙
2020/03/26
1.1K0
win10上搭建appium自动化环境
Appium自动化环境安装
转载至我同事https://www.cnblogs.com/gqv2009/p/12620773.html#autoid-0-0-0
小小咸鱼YwY
2020/06/19
8560
Appium自动化环境安装
Appium + Python App自动化(2)第一个脚本
【1】打开你的夜神模拟器(或者连接你的手机) 【2】打开桌面的Appium 【3】下载你要测的App的apk文件,放到桌面 【4】拖动你的apk安装包到夜神模拟器里,然后模拟
孟船长
2018/05/18
1.5K1
手机 上来 个自动 Appium+Python3+夜神安卓模拟器 实现QQ自动登录
背景: 有些app, 无法通过抓包实现数据采集, 也根本抓不到包, 所以就只能拿出终极秘密武器Appium了
不止于python
2022/05/31
1.3K0
手机 上来 个自动 Appium+Python3+夜神安卓模拟器 实现QQ自动登录
自动化-Appium-通过WiFi连接真机进行自动化测试(Python版)
本章示例为Android版本进行讲解(Windows与Mac环境下操作基本一致,此次示例为在Windows环境)。
wangmcn
2022/07/25
2K0
自动化-Appium-通过WiFi连接真机进行自动化测试(Python版)
推荐阅读
相关推荐
自动化-Appium-​第一个Demo-混合(Python版)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档