第一,Appium 介绍

Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。所谓的 “混合应用” 是指原生代码封装网页视图——原生代码和 web 内容交互。

重要的是,Appium 是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套 API 来写自动化测试脚本,这样大大增加了 iOS 和 Android 测试套件间代码的复用性。

Appium 无需重新编译或修改你的应用,同时,它还不局限于某种编程语言或者框架来编写和运行你的测试脚本,不得不说出 Appium 是一款非常优秀的测试工具。

在安装 Appium 过程中,新手可能会遇到一些麻烦和遭遇学习动力上打击,尽管如此,我们社区对 Appium 测试框架的讨论、学习热情丝毫不减,一片如火如荼的场景。下面就 Ubuntu(14.04 LTS) 系统安装 Appium 框架展开学习及给出在安装过程中遇到的错误问题的解决方法。

第二,安装环境依赖准备

node

npm

Android SDK

...

注意,由于在安装 Appium 文档中,官方特别指出最好不要使用sudo命令安装node、npm软件,否则后面安装 appium 会遇到麻烦,鉴于此,这里我们使用已编译好的 nodejs 版本省去了源码本地编译操作,根据自己机器型号下载对应版本,下载错了,安装时会出问题的。下载地址二进制 nodejs 版本下载

第三,安装 nodejs

1,将从上面链接中获取的二进制 nodejs 版本压缩包解压到某一目录下,之后把解压包中bin目录添加到PATH环境变量中。

测试 nodejs 是否配置成功,如下命令:

$node -v

v5.6.0

$npm -v

3.6.0

如果显示以上输出,则 nodejs 安装成功。

2,安装 appium

执行命令:

$npm install -g appium

第四,安装 Android SDK

1,将 Android SDK 压缩包解压到某一目录下,配置ANDROID_HOME和PATH环境变量。如下,

在.bashrc 文件中添加两行代码:

ANDROID_HOME=your_android_sdk_path/sdk

PATH=$PATH:$ANDROID_HOME/tools/:$ANDROID_HOME/platform-tools

注意,即便已在.bashrc文件中设置好了 ANDROID_HOME 环境变量,在启动appium-doc --android之前,也必须在 shell 会话里重新执行设置ANDROID_HOME变量:

$exportANDROID_HOME="your_android_sdk_path/sdk"

2,添加 SDK 软件包

终端执行命令:

$android

需要等待几分钟安装 SDK 软件包,安装完成后验证 ANDROID 环境是否搭建成功。在终端执行:

$exportANDROID_HOME="your_android_sdk_path/sdk"

$appium-doctor --android --verbose

若有以下输出,则 Android 配置成功:

第五,安装 Appium Python Client

$pip installAppium-Python-Client

第六,启动 Appium

还是少不了 shell 中设定ANDROID_HOME环境变量

$exportANDROID_HOME="your_android_sdk_path/sdk"

$appium

输出如下,则启动正常

第七,创建 Android 模拟器

1,列出所有可用的 Android 系统镜像文件,执行:

$android list targets

我机子上安装了 20 多个 android 系统镜像文件,这里选择Android 5.1.1版本。

2,创建 android 模拟器,执行:

$android create avd -n emulator-22 -t 10 --abi default/x86

上面命令参数n指定模拟器的名称,参数t指定所使用系统镜像id编号,即命令android list targets列出的可用镜像文件 id 编号,具体值为上图id的值。

3,启动 android 模拟器

上面命令执行无误后,开启刚创建 android 模拟器,执行:

$emulator -avd emulator-22

avd参数指定需要开启的模拟器名称,即为我们创建模拟器时使用参数n指定的名称。

第八,使用 Python 运行 appium 测试样例

Github 上官方测试样例代码,下载

1,以 android_simple.py 文件为例子,使用 Appium Python 语言客户端对 android 应用测试。打开 android_simple.py,修改 setUp 方法:

def setUp(self):

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '4.2'

desired_caps['deviceName'] = 'Android Emulator'

desired_caps['app'] = PATH(

'../../../sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk'

)

其中desired_caps['platformVersion']值设定为我们创建模拟器时所使用的 android 对应版本。由于这里我们前面创建的模拟器为android-22,故,4.2修改为5.1.1。同样,desired_caps['deviceName']设备名称修改为emulator-22,即为我们前面创建模拟器指定的名称。最终setUp方法为:

def setUp(self):

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '5.1.1'

desired_caps['deviceName'] = 'emulator-22'

desired_caps['app'] = PATH(

'../../../sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk'

)

2,开启测试

$py.test android_simple.py

3,测试完成结束模拟器

$adb emu kill

第九,遇到的问题及解决方法

1,在终端里设置ANDROID_HOME环境变量,

$exportANDROID_HOME="your_android_sdk_path/sdk"

在前文中多次提到,很重要。如果缺少,则会在运行

$appium-doctor --android --verbose

报错:ANDROID_HOME is not set

2,创建 android 模拟器中时会提示虚拟机加速问题,需要安装 KVM

2-1,安装 kvm

$sudoapt-get installqemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

2-2,

添加用户到 kvm 和 libvirtd 组

$sudoadduser `id -un` kvm

$sudoadduser `id -un` libvirtd

2-3,验证用户添加到组是否成功

执行:

$groups

输出

r00t adm cdrom sudo dip plugdev lpadmin sambashare kvm libvirtd

以上输出表明用户已添加到kvm and libvirtd组

2-4,验证 kvm 安装是否成功

$virsh -c qemu:///system list

输出:

Id 名称 状态

----------------------------------------------------

表示 KVM 安装成功。

2-5,KVM 安装成功后机器可能还不能使用,最好可能需要进入 bios 中设置下。具体:进入 Bios 修改Configure选项卡下的SVM为Enable,这样机器就支持虚拟机加速了。

第十,总结

正如 Appium 所倡导的哲学一样,它不局限于某种语言或者框架来编写和运行测试脚本,对同一个测试我们可以使用不同的编程语言,而且 Appium 支持的语言有很多,如 Python、Java、Php、Ruby 等。Appium 自诞生已有 3 年历史,社区讨论氛围很火,相信以后 Appium 受众应该会越来越来多,Appium 越来越强大。

第一次安装 Appium 时是使用源码的方式,多次尝试没有成功,可能是由于 npm、node 安装存在问题,换成使用 nodejs 二进制版本顺利安装成功了。遇到异常使用 google 或者百度搜索都可以找到解决方法,除非碰到的问题太奇葩了。

刚接触学习 Appium 测试框架,写得不到的地方,欢迎各位大大批正。

附相关资源:

1,Android AVD 命令

http://developer.android.com/intl/zh-cn/tools/help/android.html

http://developer.android.com/intl/zh-cn/tools/help/adb.html

2,Android 模拟器命令

http://developer.android.com/intl/zh-cn/tools/devices/emulator.html

3,安装 KVM 相关

https://help.ubuntu.com/community/KVM/Installation

linux appium 安装教程,Ubuntu 系统安装 Appium 及样例运行教程相关推荐

  1. Linux Deploy安装配置Ubuntu使用教程

    记录Linux Deploy使用总结 1. 前言 最近换了一部新手机,老的手机荣耀play也不能空着.正好平时电脑装了个虚拟机Ubuntu来做开发/运维环境,有点占电脑配置,无法一边开虚拟机一边玩游戏 ...

  2. linux软件安装 home,Ubuntu中安装建筑设计软件Sweet Home 3D

    原标题:Ubuntu中安装建筑设计软件Sweet Home 3D 本教程介绍如何在Ubuntu 16.04,Ubuntu 18.04,Ubuntu 19.04及更高版本中轻松安装最新的Sweet Ho ...

  3. linux远程桌面x11,Ubuntu系统安装X11VNC实现远程可视化桌面操作

    老蒋在之前的博文中分享过不少关于基于Linux各种发行版本安装可视化桌面远程桌面的方法,这样可以适合有些项目需要的朋友通过Windows客户端VNCVIEWS链接软件可以远程登入Linux模拟桌面环境 ...

  4. ubuntu linux kvm安装,基于Ubuntu 14.04 KVM拟化安装部署

    1. 宿主机环境(dell备份服务器) Ubuntu 14.04 LTS 64位 内存:16G 硬盘:2T 2. 确认CPU是否支持硬件虚拟化 root@linuxidc:~# egrep -o '( ...

  5. 一键 linux桌面安装vnc,Ubuntu 16.04 LTS一键安装VNC

    Ubuntu 16.04 LTS 安装VNC,在搜索上找了很多教程,不是太老,就是说的驴唇不对马嘴,所以忍不住写一些以正视听. Ubuntu 16.04 LTS是最近出的LTS版本系统,估计未来也会有 ...

  6. linux testlink 安装,在ubuntu上安装TestLink指南

    本指南适用Bitnami TestLink Stack方式在linux系统上安装TestLink 1.安装包下载 https://bitnami.com/stack/testlink/installe ...

  7. EMUI10安装java_linux ubuntu系统安装java jdk和配置环境,pycharm安装

    最近想使用pycharm,可是要想搭建java 环境,搞了很久才搞定,网上很多资料都是没用的.记录下来以后有用. 首先加下载jdk安装包.我下的是jdk-6u37-linux-x64.bin,我把jd ...

  8. linux编译安装wine,Ubuntu 13.10 编译安装Wine 1.7

    Ubuntu 13.10 编译安装Wine 1.7 先安装依赖的库: sudo apt-get install flex bison qt4-qmake apt-get install libfree ...

  9. 普耐尔momo7w安装Linux,momo7w安装单系统(安卓)或双系统(安卓+windows)教程第七次修订版.doc...

    momo7w安装单系统(安卓)或双系统(安卓windows)教程第七次修订版 MOMO7W(P716) V01 16 XXXX 1XXXXX MOMO7W(P716) V02 16 XXXX 1XXX ...

  10. 基于linux的MsQUIC编译及样例运行

    参考链接: https://github.com/microsoft/msquic/blob/main/docs/BUILD.md 软件相关版本 Ubuntu 20.04 编译/构建 1. 下载源代码 ...

最新文章

  1. Curator: ZooKeeper的使用配方
  2. html5-6 Frame框架窗口类型
  3. NgRx Store createSelector 的单步调试和源代码分析
  4. Kafka高性能相关
  5. Java代理设计模式(Proxy)的具体实现:静态代理和动态代理
  6. bzoj1180: [CROATIAN2009]OTOCI
  7. Mysql的数据库引擎 区别特点_mysql数据库存储引擎及区别
  8. Zookeeper原理架构
  9. 触发器 创建 删除 等操作
  10. html5动画在线制作工具,KoolShow-KoolShow(HTML5动画制作工具) v2.4.4 官方版-CE安全网...
  11. ARTS打卡第14周
  12. 如何学习硬件设计——硬件开发实践篇
  13. PTX-NPs 纳米粒子修饰紫杉醇/与桦木酸PEG/邻硝基苯丙酸紫杉醇偶联物的制备
  14. VS2017 LINK : fatal error LNK1104: cannot open file ‘atls.lib‘错误解决方案
  15. 关于大数据相关的问答汇总,每天持续更新中哦~
  16. matlab基础语法
  17. 【2011NOIP普及组】T3. 瑞士轮 试题解析
  18. WordPress 元老 Alex King 逝世
  19. 开源OA办公平台搭建教程:O2OA+Arduino实现物联网应用(五)
  20. E104-BT01超低功耗蓝牙模块BLE4.0协议的片载系统解决方案

热门文章

  1. java scjp 试题_JAVA认证历年真题:SCJP考试真题和解析[1]
  2. Macromedia Studio 8 简体中文正式版激活码
  3. go 导出 html 报告(使用 hero 预编译 html 模板引擎)
  4. WordPress淘宝客ZZDGM主题Upanel插件使用补充
  5. 30 多个有内味道且笑死的人代码注释
  6. 推荐5款优质的黑科技软件,好不好用你来判断
  7. lcd1602显示自己的学号和姓名拼音的c语言程序,LCD1602显示字符.doc
  8. (第3章)Docker核心原理解读
  9. 含泪推荐5款WIN10装机必备的软件
  10. 别人教我学计算机的作文,我学会了电脑作文(通用3篇)