Appium组件
Appium Server
- Appium的核心,实质上是一个web接口服务器,使用node.js实现
Appium GUI
- Appium Desktop的前身,已停止维护
Appium Decktop
- 内嵌Appium server,提供了GUI界面,还有许多工具整合(Appium Inspector)
Appium Client
- Appium 向客户端发起请求,支持多种语言
Appium Decktop配置
基本配置介绍
simple(简单模式)
advanced(高级模式)
presets(预设)
简单启动
- simple的host:127.0.0.1(本地)
- Port:4723
- 也可以通过预设启动
- 右上角分别代表 开启探测对话(Inspector),生成日志,停止服务器
Inspector工具配置
- 启动安卓模拟器
- 启动服务器
- 点击放大镜图标,启动Insector对话
- Automatic server 自动获取服务端配置(主要)
- Desired Capabilities 启动app(deviceName)
- cmd窗口输入adb devices
- 若无法找到对应服务
- 手动连接:adb connect 127.0.0.1:62001(夜神模拟器端口号)
- adb device检测 值为127.0.0.1:62001
- 确认测试平台(platformName)
- 值为Android
- 找到app(appPackage)
- 借助SDK工具,进入SDK目录的build-tools\28.0.3\在地址栏输入cmd
- aapt dump badging (直接将安装包拖入)
- 解析完成后获取package:name
- 启动(appActivity)
- Launchable- activity:name
-启动完成
- Launchable- activity:name
- Desired Capabilities 启动app(deviceName)
- Custom Server 定制服务
- Select Cloud Providers 选择云端服务
UIAutomatorViewer
- SDK自动元素探测工具
- 不需要提高启动参数
- 效率高
- SDK\tools\uiautomatorviewer.bat工具
- 选择第二个按钮
- 自动获取当前页面信息
包名&类名
- PackageName
- 应用的唯一身份标识,系统通过包名识别不同的应用,如两个相同包名的应用在安装是会提示覆盖
- ActivityName
- Activity:android四大组件之一,简单来说就是一个界面,和用户进行交互
- 获取App入口Activity
- adb shell dumpsys activity | find “mFocusedActivity”
- u0与\中间的是PackageName
- \与空格之间的为ActivityName
App类型
Native App
Hybird App
- 混合式app,包含webview
Web App
adb
- adb help查看帮助
- adb devices检测连接到电脑的安卓设备
- adb pull <手机路径><本机路径>从安卓设备中拉取文件到电脑
- adb push <本机路径><手机路径>从电脑推送文件到安卓设备
- adb shell 切换shell模式
- -p monkey number压力测试
- adb install <apk路径>安装app
- adb uninstall <包名>卸载app
- adb shell dumpsys activity | find "mFocusedActivity"查找当前包名
- adb kill-server终止adb
- adb start-server开始adb
- adb shell am start -n 包名/入口名 启动app
- adb shell pm clear 包名清除缓存数据
- adb shell input tap x坐标 y坐标 坐标点击
- adb shell pm list packages列出所有包名
- -s列出系统apk包名与路径
- -3列出用户apk包名与路径
- adb logcat打印日志
AndroidDriver初始化
前提:maven依赖
//1,创建配置对象
DesiredCapabilities des=new DesiredCapabilities();
//2,添加配置
des.setCapability("deviceName","127.0.0.1:62001");
des.setCapability("platformName","Android");
des.setCapability("appPackage","com.baidu.BaiduMap");
des.setCapability("automationName","uiautomator2");
des.setCapability("appActivity","com.baidu.baidumaps.WelcomeScreen");
des.setCapability("noReset",true);//清除数据
//创建驱动
androidDriver=new AndroidDriver<WebElement>