appium自动化测试环境搭建
1、需要用到的软件如下:
1.jdk8u73windowsi586(32位的就下载32位的,64位的就下载64位的)。
2.android-sdk_r24.4.1-windows.zip(下载这个adt-bundle-windows-x86_64-20140702)
3.Python:V3.7
4.appium:1.4.16.1
5.Node.js:node-v10.16.3-x64
6.Appium-python-Client
7.pycharm
其中1-5是可以先下载的,6则需要在完成前面的五个步骤后才进行
2.1、JDK
下载地址:略
配置环境变量:
新建JAVA_HOME设置为你的安装路径(C:\Program Files (x86)\Java\jdk1.8.0_73)
classpath值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
path值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;是有“.”这个符号的不能漏掉
配置完成后,进入cmd,输入javac如果出来用法中文,说明配置正确。输入java -version查看版本
2.2、SDK
下载地址:http://www.androiddevtools.cn/
1.解压adt集成包到合适的路径下面,比如D:\SDK
2.设置安卓环境变量
配置环境变量,
设置ANDROID_HOME系统变量为你的android SDK路径,并把tools和platform-tools两个目录加入到系统的Path路径里。
eg:添加变量名:ANDROID_HOME 变量值: D:\adt\sdk
并把这句添加到 %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools记得要加上";"
配置完环境后,可以在运行cmd后输入 adb(能看到当前版本号),再输入android-h(tools目录下的,如果出来一堆文字则是可以的)
2.3、python
安装完成后将D:\python和D:\python\Scripts,添加到环境变量path下
打开cmd输入python,出现版本号,然后输入print("helloworld!")这样python就是安装好了。
2.4、node.js
进入官网地址并下载:https://nodejs.org/en/download/
下载后一路傻瓜式安装,安装完成后,运行cmd,输入node –v查看版本号,然后输入npm
2.5、appium服务端
下载地址:https://bitbucket.org/appium/appium.app/downloads/
完整安装带UI的appium,可以从官网直接下载dmg(mac)或者zip(Windows),运行即可。
appium安装好后:
找到这个文件安装目录D:\appium\node_modules\.bin
将上面的地址添加到环境变量path下。
打开cmd,输入appium-doctor,检查环境是否OK,出现allchecks were successful,说明环境OK。
2.6、Appium-Python-Client
进入cmd 输入:pip install Appium-Python-Client。通过Python安装等待安装完成。
超时报错时,再次输入重试。
安装 Appium-Python-Client 的同时会安装一个selenium模块.试着进入python3交互命令行,然后执行下面命令:
import selenium
selenium.__version__
2.7、安装pycharm
3、测试用例编写
3.1、appium连接模拟器或真机
模拟器:
1、创建一个AVD并启动,android sdk中自带AVD Manager
2、启动appium 点击右上角的启动按钮
启动成功后
真机:
1、打开usb调试模式
2、使用手机连接电脑
在cmd中输入adb devices查看是否连接成功
新手可能会出现两个问题 ,一是输入adb命令时提示不是内部命令或者外部命令
那么你需要下载一个adb工具包并存放在C:\Windows\System32目录下(必须强调:与sdk中的adb工具包版本一致!!!!)
二是需要打开手机的usb调试模式并安装好驱动
3、启动appium服务
在cmd命令中输入:appium
第三方模拟器:(本次以网易MuMu为例)
1、连接到模拟器
打开cmd(如果使用MuMu自带adb,则cd C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin\)
adb kill-server(MuMu自带:adb_server.exe kill-server)
连接模拟器端口:adb connect 127.0.0.1:7555(MuMu自带:adb_server.exe connect 127.0.0.1:7555)
列出已连接的设备:adb devices(MuMu自带:adb_server.exe devices),正常会显示MuMu的设备已连接,则可以进行下一步的操作了
注意:如果设备列表里没有显示127.0.0.1:7555设备,则可多次尝试adb kill-server和adb connect 127.0.0.1:7555连接
2、启动Appium服务
3.2、找到被测APP的包名和Activity Name
使用adb devices命令确认连接正常
然后 打开被测APP,输入下面的命令,就会显示出APP的包名与ActivityName
本人最常使用第3条命令
adb shell dumpsys window w | findstr \/ | findstr name=
或 adb shell dumpsys window |findstr mCurrent
或 adb shell "dumpsys window w|grep \/|grep name=|sed 's/mSurface=Surface(name=//g'|sed 's/)//g'|sed 's/ //g'"
3.3、启动UI Automator Viewer(安卓SDK自带的工具)
在SDK的安装目录下双击uiautomatorviewer.bat就可以启动,可以查看APP页面元素属性,进而定位元素,实现各种操作
4个按钮从左至右功能分别是:打开已经保存的布局,获取详细布局,获取简洁布局,保存布局
# -*- coding:utf-8 -*- from appium import webdriver from time import sleep import unittest import selenium class MyTestCase(unittest.TestCase): @classmethod def setUp(self): print('selenium version=',selenium.__version__) desired_caps ={ 'platformName':'Android', 'deviceName':'127.0.0.1:7555', 'platformVersion':'6.0.1', 'appPackage':'com.baidu.yuedu', 'appActivity':'com.baidu.yuedu.splash.SplashActivity', 'unicodeKeyboard':True,#绕过手机键盘操作,unicodeKeyboard是使用unicode编码方式发送字符串 'resetKeyboard':True#绕过手机键盘操作,resetKeyboard是将键盘隐藏起来 } self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) def test_something(self): sleep(10) self.driver.find_element_by_name("分类").click() sleep(5) self.driver.find_element_by_name("文学艺术").click() sleep(5) self.driver.find_element_by_name("孤独是一个人的清欢").click() sleep(5) @classmethod def tearDown(self): sleep(3) print("tearDown-------") self.driver.quit() if __name__=="__main__": unittest.main()