安装appium桌面版和命令行版
一 桌面版(打开很慢,常用于辅助元素定位)
1.官网下载window版本:
2.直接点击紫色图标即可打开
3. 启动server
Appium与模拟器的连接:
1. 打开夜神模拟器,打开设置,调成手机模式,初次进入的话,进入设置,点击版本号5次,可以激活使用开发者模式,进入后打开USB调试功能
2.打开电脑文件资源管理器,进入夜神模拟器的安装位置,在地址栏输入cmd,回车,会打开cmd窗口,进入的路径就是夜神模拟器的安装位置。我的默认安装位置:D:\Program Files\Nox\bin
3.然后命令行窗口中输入nox_adb.exe connect 127.0.0.1:62001即可以连接到adb
4.完成上述步骤后,此时启动appium便可以开始执行测试脚本了
首先需要确认SDK的adb版本与模拟器的nox_adb版本一致,如果不一致则将SDK中的adb复制到模拟器bin目录下,且将该名称改为nox_adb.exe。
然后启动模拟器,在cmd中进入到模拟器的bin目录下,使用命令“nox_adb.exe connect 127.0.0.1:62001”。
在成功连接了模拟器之后,使用"adb devices -l"命令查看设备连接的UID
打开appium-desktop,填写对应的session信息后,点击start session按钮开始连接模拟器。
* failed to start daemon *解决方法
具体步骤如下
打开命令窗口cmd,或者使用android studio自带的命令窗口
输入netstat -ano | findstr "5037"
出现上图结果,是PID8492的应用,在输入命令:tasklist /fi "PID eq 8492",就可以找到对应应用如下图
这时候可以直接到任务栏把shoujizhushou.exe的进程关掉,或者使用命令直接关掉,输入命令:taskkill /PID 8492 /f
如下图:
Appium 的设计理念
webdriver 是基于 http 协议的,第一连接会建立一个 session 会话,并通过 post 发送一个 json 告知服务端相关测试信息
client/server 设计模式
客户端通过 webdriver json wire 协议与服务器通讯
多语言支持
server 可以放在任何地方
服务器 nodejs 开发的 http 服务
appium 使用 appium-xcuitest-driver 来测试 iphone 设备,其中需要安装 Facebook 出的 WDA(webdriver agent) 来驱动 ios 测试
Appium 的生态工具
adb:Android 控制工具
appium Destkop:内嵌 appium server 和 inspector 的综合工具
appium server:appium 的核心工具,命令行工具
appium client:各种语言的客户端封装库,用户连接 appium server,包含 python、java、ruby 等
appcrawler 自动遍历工具
获取 App 的信息
获取当前元素界面:adb shell dumpsys activity top
获取任务列表:adb shell dumpsys activity activities
获取 app 的 package 和 activity:adb shell;然后 logcat | grep -i displayed
启动应用:adb shell am start -W -n "com.xueqiu.android/.view.WelcomeActivityAlias -S
Capability 设置
platformName:android 通常都是写 android
deviceName:127.0.0.1:7555 这个通常是 adb devices 的名称
appPackage:com.xueqiu.android 这个是 app 的 package 包名
appActivity:.view.WelcomeActivityAlias 这个是 app 的 activity 名
noReset:true, false 是否重置测试的环境(例如首次打开弹框,或者登陆信息)
unicodeKeyboard:true, false 是否需要输入非英文之外的语言并在测试完成后重置输入法,比如输入中文
dontStopAppOnReset:true, false 首次启动的时候,不停止 app
skipDeviceInitialization:true, false 跳过安装,权限设置等操作
举例:
夜神模拟器:::
{
"platformName": "Android",
"platformVersion": "4.4.2",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.包名",
"appActivity": "org.cocos2dx.lua.AppActivity",
"noReset": true
}
mumu模拟器:
{
"platformName": "Android",
"platformVersion": "6.0.1",
"deviceName": "127.0.0.1:7555",
"appPackage": "com.包名",
"appActivity": "org.cocos2dx.lua.AppActivity",
"noReset": true
}
真机模拟:
{
"platformName": "Android",
"platformVersion": "5.5.1",
"deviceName": "a5ab24d8",
"appPackage": "com.包名",
"appActivity": "org.cocos2dx.lua.AppActivity",
"noReset": true
}