环境搭建好后,怎么使用呢?
环境这里使用的是:
Appium的Server端GUI 22版本
Inspector需要单独下载安装,GUI里并没有集成。
(使用Appium v1.22.0,查看元素信息需要另外安装下载Appium Inspector)
操作:
Server端:需要Edit Configure:将JDK和Android SDK的环境路径写进去。Start Server
Inspector端:
Inspector 的参数如何获取:
platformName: 指定移动设备平台的名称,例如 Android 或 iOS。必填参数。
deviceName: 指定移动设备的名称。必填参数。
appPackage: 指定应用程序的包名。必填参数。
appActivity: 指定应用程序的启动页面名称。必填参数。
platformVersion: 指定移动设备的操作系统版本。可选参数。
app: 指定要安装到设备上的应用程序文件的路径。可选参数。
noReset: 指定是否在每次启动应用程序时重置应用程序的状态。可选参数,默认为 false。
skipDeviceInitialization: 跳过初始化操作
automationName: 指定 Appium 使用的自动化测试框架的名称。可选参数,默认为 Appium。
udid: 指定移动设备的唯一设备标识符。可选参数。
newCommandTimeout: 指定新命令的超时时间,以毫秒为单位。可选参数,默认为 60 秒。
autoGrantPermissions: 指定是否在启动应用程序时自动授予所有权限。可选参数,默认为 false。
unicodeKeyboard: 指定是否启用 Unicode 输入法,用于支持非英语语言的输入。可选参数,默认为 false。
resetKeyboard: 指定是否在测试结束后重置输入法设置。可选参数,默认为 false。
fullReset: 指定是否在测试结束后完全重置应用程序的状态和数据。可选参数,默认为 false。
browserName: 指定要在设备上启动的浏览器的名称。可选参数。
chromeOptions: 指定要传递给 Chrome 浏览器的选项。可选参数。
safariAllowPopups: 指定是否允许 Safari 浏览器弹出窗口。可选参数,默认为 false。
nativeWebTap: 指定是否在原生应用中使用原生的 web 点击事件。可选参数,默认为 false。
disableWindowAnimation: 指定是否禁用设备窗口动画。可选参数,默认为 false。
ignoreUnimportantViews: 指定是否忽略屏幕上的不相关视图,以加速测试执行。可选参数,默认为 false。
androidScreenshotPath: 指定 Android 设备上截图的存储路径。可选参数。
networkSpeed: 指定模拟设备的网络速度。可选参数。
这里我的一个小米真机调试的Demo:
{
"platformName": "Android",
"appium:platformVersion": "14", #这里需要通过
"appium:deviceName": "e3691", # 自己设备名称,需要更改
"appium:appPackage": "com.sankuai.meituan", #测试的美团
"appium:appActivity": "com.meituan.android.pt.homepage.activity.MainActivity", # 页面名字
"appium:automationName": "UiAutomator2"
}
在inspector的页面save,导入到左侧
appium:platformVersion",怎么获得:
adb shell getprop ro.build.version.release
14
deviceName:怎么获得:adb devices
这里的包名appPackage和页面名appActivity怎么获得:
执行> adb logcat>D:/log.txt (log.txt的路径需要根据自己的设置)
我实际用的是mac:adb logcat>/Users/yang/Desktop/test/2.docx
如果你电脑连接了两个或以上的模拟器,你需要指定模拟器设备名,来下载你指定的模拟器App包
命令:
adb -s <设备名> logcat
这里指定一台模拟器,将app log下载到本地

3, 胡乱的对APP做一些操作。
4, Ctrl+c 结束adb命令。
5, 打开log.txt文件,搜索:Displayed

这里我们就获取到了想要的appPackage和appActivity
appPackage: com.tencent.android.qqdownloader
appActivity:com.tencent.assistant.activity.SplashImplActivity
原文链接:https://blog.csdn.net/mtbaby/article/details/78676477

接下来:start seesion 报错两个
这里我是小米真机调试:
USB安装
报错信息:
java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
小米:在开发者选项里,把"USB调试(安全设置)"打开即可。 允许USB调试修改权限或模拟点击
接着:USB安装也要打开,允许通过USB安装应用,这两个报错就都没了。
【手机上会自动安装Appium Settings 应用(安装好不要卸载)】
点击Start Session后,会自动安装依赖应用,并打开测试APP。
界面如下:

- 左侧是应用程序的屏幕截图(快照视图)。
- 中间是应用程序的层次结构,表示为XML。
- 右侧是元素信息视图
- 查看应用程序的屏幕布局和元素层次结构。
- 识别和选择屏幕上的元素,例如按钮、文本框、菜单等。
- 获取元素的属性和文本内容。
- 模拟用户操作,例如点击、滑动、输入文本等。
- 检查应用程序的状态和断言结果。
基本操作:
1. 刷新
当我们在手机上对APP进行操作后,Inspector窗口的屏幕截图不会自动更新,需要我们通过点击刷新按钮,更新应用的最新页面
2. 操作回退
当我们想要查看返回上一个操作查看页面信息,可以通过点击back 按钮。此时Inspector窗口和手机都会同时回到上一个操作的界面。(等同于android手机上的返回键)
3. 退出
当我们不再需要使用Inspector,就可以点击x关闭Inspector窗口(调用驱动程序)。退出并关闭Inspector
- 查看元素信息
当我们想要查看某一个元素的详细信息,首先需要点击select Elements 按钮,然后在屏幕截图中点击要查看的元素,最后在右侧的区域就可以看到元素的xpath,index,package,class,text,resource-id 等信息。
这里我点击"团购"的图标:

- 点击元素
选择一个元素后,可以"点击"元素,当使用一个元素执行Tap操作时,Inspector将发送命令到Appium,执行点击操作。如果操作成功,左侧将生成一个新的屏幕截图,应用程序更新到最新的状态和XML。如果不成功,将看到错误消息。
定位到搜索元素
点击 Tap 按钮
这里我定位到输入框,点击tap就出现这个fail

我这里报错了:对于输入框就报错,对于可点击的图片就可以正常TAP
- 输入文本
在上述的搜索输入框中输入"高考"
点击发送Send Keys
我这里也报错了,未解决:
- 清空文本
定位到搜索输入框,点击清空 Clear
我这里也报错了,未解决:
- 查找元素信息
通过元素的某一个属性值来查看它所对应的元素有哪些,可以点击search for element 按钮。
步骤:
选择一个属性:id(resource-id),name(text),xpath,className(class)等
输入属性对应的值
点击Search
显示搜索结果
- Inspector窗口操作界面
点击 Tap/Swipe By Coordinates按钮,我们就不需要在手机上点击操作,可以直接在屏幕截图上使用鼠标来点击元素,手机也会同步操作。
- 滑动屏幕
如果想在Inspector窗口的屏幕截图中执行一个滑动屏幕的操作,使用鼠标无法完成,那么我们可以通过Tap/Swipe By Coordinates按钮实现。
步骤
先点击滑动的起始位置(会显示一个圆圈)
按住鼠标一直拖到到滑动结束的位置
松开鼠标这时候就开始执行滑动操作
- 录制
可以录制自动化测试脚本,但录制出的脚本都是通过坐标值来操作的,实际工作中意义不大(换一台设备可能就没法执行了)。
录制步骤:
1、将窗口操作模式修改为Tap/Swipe By Coordinates。
2、上方点击Start Recording。
3、选择自动化脚本语言。
在左侧窗口进行点击操作即可录制自动化脚本。

参考: