[自动化测试]Appium + Genymotion搭建安卓自动化测试环境简明教程
  • 分类:Python
  • 发表:2019-04-28
  • 围观(6,126)
  • 评论(8)

关于软件的介绍

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 -vnpm -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各语言用到的支持库地址

  1. Ruby: http://rubygems.org/gems/appium_lib
  2. Python: https://pypi.python.org/pypi/Appium-Python-Client
  3. Java: https://search.maven.org/#search%7Cga%7C1%7Cg%3Aio.appium%20a%3Ajava-client
  4. JavaScript: https://www.npmjs.org/package/wd
  5. PHP: https://github.com/appium/php-client
  6. C#: http://www.nuget.org/packages/Appium.WebDriver/
  7. 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虚拟机着实不是很方便,还是需要慢慢研究.


共有 8 条评论

  1. luke

    博主请问下 安装app时报 Failure [INSTALL_FAILED_NO_MATCHING_ABIS],你那个将压缩包拖到虚拟机是怎么拖~

  2. luke

    知道了~原来是我的中文文件夹问题。。。。。=秀死我了

  3. lute

    安装appnium具体要怎么装啊

    1. Avatar photo

      Weiney

      安装appium需要很多环境支持,Java,node.js,android SDK,这三个环境安装好了再尝试安装appium

  4. laker

    您这个文章小白看了完全不懂,可能适合有经验得人看吧

    1. Avatar photo

      Weiney

      这个环境安装确实麻烦,我自己都是捯饬了很久.但是如果嫌麻烦是学不到东西的

  5. TAF_MT

    在Path变量下面添加:%ANDROID_SDK_HOME%\platform-tools
    在Path变量下面添加:%ANDROID_SDK_HOME%\tools

    这两句话写错了吧,应该是%ANDROID_HOME\tools的吧,博主看下(我用%ANDROID_HOME\tools成功了)

    1. Avatar photo

      Weiney

      对的对的,感谢指正,上面是弄错了

Top