appium工作原理
appium 在android端工作流
-
client端也就是我们 test script是我们的webdriver测试脚本。
-
中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调用对应的框架响应操作。
-
appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调用UiAutomator的命令来实现。
-
最后Bootstrap将执行的结果返回给appium server。
-
appium server再将结果返回给 appium client。
一、环境准备
win10版本 64位操作系统
安卓机 6.0.1版本
jdk 9.0.1 64位
android-sdk 23(安卓6.0对应sdk23)
python 2.7.14
node.js node-v8.12.0-x64.msi
appium appium-desktop-setup-1.7.1.exe
二、JDK下载安装
三、android-sdk下载安装
解压后,里面有个SDK manager.exe,设置 Android SDK Manager 国内镜像地址
- 启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options…」,弹出『Android SDK Manager – Settings』窗口;
- 在『Android SDK Manager – Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu.cn和80,并且选中「Force https://… sources to be fetched using http://…」复选框。设置完成后单击「Close」按钮关闭『Android SDK Manager – Settings』窗口返回到主界面;
- 依次选择「Packages」、「Reload」。
四、android-sdk环境变量
1.在系统变量新建:ANDROID_HOME,对应变量值为:D:\appium\android-sdk\android-sdk-windows(sdk安装路径)
2.path添加两个变量D:\appium\android-sdk\android-sdk-windows\tools和D:\appium\android-sdk\android-sdk-windows\platform-tools
五、adb环境
1.因为adb是在android-sdk-windows\platform-tools这个目录下的,所以上面添加了环境变量后,可以直接在cmd里面运行了。
2.在cmd输入adb可以查看对应版本号
六、连接手机
1.手机用数据线以USB连电脑
2.打开cmd输入:adb devices,当屏幕上出现一串字符,后面显示device说明连接成功
七、python安装
八、安装node.js
九、安装appium
十、安装Appium-Python-Client
1.前面python环境安装,已经准备好pip了,所以这里直接打开cmd,输入:pip install Appium-Python-Client
十一、获取apk包名
1.将准备测试的APK放到D盘某个目录,如D:\test
2.打开cmd,输入指令aapt dump badging D:\test\xxx.apk(APK的全名)
package: name='XXX'
十二、获取launcherActivity
1.接着上一步操作,cmd屏幕拖到中间l找到auncherActivity
launchable-activity: name='XXXXXX'
十五、写脚本
# coding=utf-8
from appium import webdriver
desired_caps = {
'platformName': 'Android',
'deviceName': 'cdc7d766',
'platformVersion': '6.0',
# apk包名
'appPackage': 'XXX',
# apk的launcherActivity
'appActivity': 'XXXXXX'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)