关于软件的介绍
Appium是一个开源的、跨平台的测试自动化工具,用于本地、混合和移动web和桌面应用程序,在模拟器(iOS)、仿真器(Android)和真实设备(iOS、Android、Windows、Mac)上进行测试。因为良好的支持库支持,你可以简单的在Java, Python,C#....等等一系列语言中使用Appium支持库编写优雅的自动化测试代码,这边主要讨论的是Java,和Python.
Genymotion是一套完整的工具,它提供了Android虚拟环境。它简直就是开发者、测试人员、推销者甚至是游戏玩家的福音。据称是最快的安卓模拟器,而且对个人用户免费,无广告,简直是模拟器中的清流.虽然是X86的架构,但是可以简单地通过安装通过安装Genymotion-ARM-翻译来进行兼容ARM软件,从而实现安装ARM架构的APK.
Genymotion的安装
Genymotion现在官网下载必须注册账号(跳转下载), 可以先注册账号然后下载.
请注意:Genymotion的运行需要Oracle VirtualBox的支持,官网下载的安装包也有两个版本,一个是包括的虚拟机的版本,另外一个是不包括虚拟机的版本.请结合自身情况,请选择对应合适的版本进行安装.
安装过程省略,就是选对路径之后一路next就完成了,再次声明Genymotion安装虚拟机许要有Oracle VirtualBox的支持.
上面也说到了,由于Genymotion虚拟机是基于X86架构的,但是现在大多数APP是ARM架构,这就导致了许多APP在虚拟机上会出现安装失败的错误.但是Genymotion提供了简单的ARM-Translation,只需要简单的拖入到虚拟机安装,就可以解决无法安装app的问题,可以说是十分方便,具体下载链接自行百度,注意一定要对应自己的Android版本.
特别注意:拖动安装ARM-Translation.zip的时候,文件路径不能含有中文,否则虚拟机会把安装动作当成复制动作,导致安装无法完成
注意,一定要将Genymotion的adb地址改为本机安装的Android SDK的adb地址,否则可能会出现许多意想不到的问题导致环境安装失败,如果本机有其他的adb程序占用端口,无比卸载其他程序避免adb无法正常启动,出现各种奇形怪状的问题.
Appium的安装
由于本次环境是基于Android的,安装Appium许要一系列的环境支持,否则Appium将无法正确运行.
①:Android SDK安装
安装Android SDK的方法有很多,可以通过官网的SDK Manger 安装,也可以通过Android Studio安装.这边选择通过Android Studio安装.安装成功之后会自动检测安装Android SDK,选择安装之后一定要设置好安装的路径,因为安装成功之后许要设置两个环境变量.
变量名称:ANDROID_HOME, 变量值:你的SDK安装路径(eg:E:\AndroidSDK) 在Path变量下面添加:%ANDROID_SDK_HOME%\platform-tools 在Path变量下面添加:%ANDROID_SDK_HOME%\tools
环境变量的配置作为开发者都应该不陌生,不同的是win7与win10的差别.配置好环境变量在CMD窗口输入adb version
控制台就会打印出Android SDK的版本信息和安装路径,如图所示:
②:Node.js安装
Node.js请请 跳转官网下载,由于安装方法比较简单,选择好路径next下来就好了,Node.js的安装程序会自动添加一个环境变量指向node.js安装路径.如果没有添加成功需要自己手动将Node.js的安装路径加入到Path路径下面,安装成功可以使用node -v
和 npm -v
两条指令查看是否安装成功.
③:Appium安装
Appium需要先在官网下载桌面版安装包,针对不同的系统,Appium都有相应的支持.我们这里选择的是Appium-windows版本,安装过程异常简单,安装程序不可选择安装路径,默认安装到C盘,所以直接下一步就能完成安装.同样的还是需要配置相应的环境变量:
变量名称:APPIUM_HOME, 变量值:你的Appium安装路径(eg:C:\Program Files\Appium) 在Path变量下面添加:%APPIUM_HOME%
环境变量配置完成之后在控制台输入appium-doctor
,会自动检查环境,安装成功会有如下输出(PS:由于Appium-Desktop没有自带appium-doctor所以需要我们通过npm安装,并且将目录添加到Path环境变量.):
至此,我们所有环境都准备就绪了,现在可以用相应的语言编写一些自动化测试的代码了.
自动化测试实例
Appium各语言用到的支持库地址
- Ruby: http://rubygems.org/gems/appium_lib
- Python: https://pypi.python.org/pypi/Appium-Python-Client
- Java: https://search.maven.org/#search%7Cga%7C1%7Cg%3Aio.appium%20a%3Ajava-client
- JavaScript: https://www.npmjs.org/package/wd
- PHP: https://github.com/appium/php-client
- C#: http://www.nuget.org/packages/Appium.WebDriver/
- RobotFramework: https://github.com/jollychang/robotframework-appiumlibrary
Python自动化测试实例
Python的测试需要安装支持库appium-python-client,直接在虚拟环境下用 pip install appium-python-client
安装即可.简单的测试实例见下方代码:
from appium import webdriver desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['udid'] = '192.168.13.101:5555' # Android Emulator desired_caps['deviceName'] = 'deviceName' desired_caps['platformVersion'] = '5.1.1' # 安卓app包名 desired_caps['appPackage'] = 'com.android.providers.downloads.ui' desired_caps['appActivity'] = 'com.android.providers.downloads.ui.MainActivity' desired_caps['unicodeKeyboard'] = True # 连接appium app_web = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps
运行成功后会在虚拟机桌面上安装如下app:
代码只用作检测环境是否安装成功,没有实际意义.具体测试代码的编写还要阅读Appium文档和appium-python-client的api文档.weiney也是新手刚入门,但是万事开头难嘛,总会学到些知识和技能的.技多不压身.Appium同时也支持IOS的自动化测试,有时间可以写篇博客记录一下,只不过安装MAC虚拟机着实不是很方便,还是需要慢慢研究.
luke
博主请问下 安装app时报 Failure [INSTALL_FAILED_NO_MATCHING_ABIS],你那个将压缩包拖到虚拟机是怎么拖~
luke
知道了~原来是我的中文文件夹问题。。。。。=秀死我了
lute
安装appnium具体要怎么装啊
Weiney
安装appium需要很多环境支持,Java,node.js,android SDK,这三个环境安装好了再尝试安装appium
laker
您这个文章小白看了完全不懂,可能适合有经验得人看吧
Weiney
这个环境安装确实麻烦,我自己都是捯饬了很久.但是如果嫌麻烦是学不到东西的
TAF_MT
在Path变量下面添加:%ANDROID_SDK_HOME%\platform-tools
在Path变量下面添加:%ANDROID_SDK_HOME%\tools
这两句话写错了吧,应该是%ANDROID_HOME\tools的吧,博主看下(我用%ANDROID_HOME\tools成功了)
Weiney
对的对的,感谢指正,上面是弄错了