由于公司下个项目可能用到appium,于是想着先把环境搭建好,提前先做一下预备工作。
从开始安装到成功在模拟器上运行一个程序,真的是搞得我怀疑人生,找了超级多资料,踩了太多坑了简直!!!所以记录一下;
好吧,首先说一下需要安装哪些东西:
一、环境准备
1. jdk,由于咱们毕竟是搞IT的,jdk这种东西电脑应该都是有的,就不多说了。
2.nodejs,安装地址:https://nodejs.org/en/download/,这个没啥,基本下一步就行了,详细安装步骤的传送门:https://www.cnblogs.com/liuqiyun/p/8133904.html,但安装nodejs的时候有一个Add to PATH会自动添加到环境变量,此时打开cmd窗口输入node -v,npm -v会出现如下图2的版本号,这个地方就结束也行,当然也可按照上面传送门教程修改环境变量,看自己喽~
3.安装Android SDK,下载地址:http://tools.android-studio.org/index.php/sdk/ ,我下载的是zip文件,直接解压就行,解压之后:
新增两个文件夹build-tools和platform-tools:
添加环境变量:
变量名: ANDROID_HOME,变量值: D:\Tools\android-sdk-windows
找到path编辑,添加一项:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
点击SDK Manager.exe,勾选Tools和Extras下面的Android SDK Platform-tools,Android SDK Build-tools,Google USB Driver,点击install packages,安装成功即可(由于我们使用夜神模拟器,可以不用下载Android API的相关镜像)。
安装成功之后,android-sdk-windows目录下会增加一个extras的文件夹,新增的两个文件夹build-tools和platform-tools也不再是空文件夹了。
4.安装appium,下载地址:https://bitbucket.org/appium/appium.app/downloads/,我直接下载的AppiumForWindows_1_4_16_1.zip,解压之后点击appium-installer.exe进行安装,添加环境变量到path下面,D:\Tools\Appium\node_modules\.bin
打开cmd窗口,输入“appium-doctor”看是否安装成功,如下图所示的即为安装成功。
同时桌面上生成Appium的图标,打开之后如下图所示:
5.安装夜神模拟器,直接去官网下载安装包,下一步安装即可。
这里注意将夜神模拟器bin目录下的adb.exe替换成安卓sdk目录下相同的adb.exe。我这儿是将D:\Tools\android-sdk-windows\platform-tools目录下的adb.exe复制到D:\Tools\Nox\bin目录下,并替换成adb.exe,nox_adb.exe。
6.安装Appium-Python-Client,可在cmd窗口中使用pip install Appium-Python-Client安装。我就安装失败了。。。若安装失败的话,也可打开pycharm安装。
by the way,许多资料都说需要安装.net framework,我的电脑之前就已经安装过了,如果启动appium报错,就先安装一下吧~
~~~~~~~~~~~~到这里环境就算搭建好了,接下来运行一个简单的demo~~~~~~~~~~
7.运行一个demo:
将需要测试的安卓安装包上传到电脑,我这里使用的是keep,我将keep的安装包放在F:\apkTest目录下的
7.1 启动appium,选择需要测试的安装包,下面的package等信息是自动带出的,然后点击右上方的启动按钮
出现如下图所示就启动成功了
APP的包名及APP入口的activity,也可通过打开cmd窗口,输入aapt dump badging F:\apkTest\com.gotokeep.keep.KMainApplication.apk
7.2打开安卓模拟器,安装需要测试的apk.
7.3 编写脚本
定位元素可通过E:\Tools\android-sdk-windows\tools\bin目录下的uiautomatorviewer.bat定位
from appium import webdriver
import time
# 夜神模拟器启动keep
desired_caps = {
'platformName':'Android',
'platformVersion':'5.1.1',
'deviceName':'127.0.0.1:62001',
'appPackage':'com.gotokeep.keep',# 测试APP的包名
'appActivity':'com.gotokeep.keep.splash.SplashActivity'# APP入口的activity
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(5)
driver.find_element_by_id('com.gotokeep.keep:id/textAgreePrivacy').click()
driver.find_element_by_id('com.gotokeep.keep:id/txt_login_method_switcher').click()# 点击密码登录
time.sleep(10)
driver.quit()
deviceName 可以通过打开cmd,输入adb devices查看。
当当当,启动成功~~撒花