UIAutomator2、Appium、Robotium搭建环境与框架对比
UIAutomator2、Appium、Robotium搭建环境与框架对比
一.框架介绍
Appium
特点
appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。
- “移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。
- “移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。
- “混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。
重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。
安装Appium
搭建环境比较繁琐:JDK + Android-sdk + Node.Js + Appium + Python_Client + 环境变量配对
[root@BenLam-vm_0 ~]# appium -v
[Appium] Welcome to Appium v1.8.1
通过命令启动 Appium
[root@BenLam-vm_0 ~]# appium_services
(node:7224) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the
Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[Appium] Welcome to Appium v1.8.1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
Python 客户端安装
[root@BenLam-vm_0 ~]# pip install Appium-Python-Client
Robotium
特点
obotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长 按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测 试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
Robotium 核心类是Solo 通过Solo 类可以对控件进行各种操作
下载Robotium
搭建环境:JDK + Android-sdk + Android-Studio + Robotium
[root@BenLam-vm_0 ~]# wget http://dl.bintray.com/robotium/generic/:robotium-solo-5.6.3.jar
done~
[root@BenLam-vm_0 ~]# mv robotium-solo-5.6.3.jar 拷到目标libs文件夹(自行创建libs文件夹)
启动Robotium
启动 Android-Studio
[root@BenLam-vm_0 ~]# Android-Studio
# 创建junit test case,选择junit4,并输入类名,点击finish
# 打开新建的测试类,修改继承ActivityInstrumentationTestCase2,并创建该类的构造函数,引用方法setUp()和tearDown()
# 编写完测试用例后,连上设备,右击测试类,选择Android junit Test,此时就会开始执行测试用例了。
# Project --> Properties --> Java Build Path --> Order and Export
UIAutomator2
特点
UIAutomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试。
它封装了谷歌自带的uiautomator2测试框架,提供便利的python接口。他允许测试人员直接在PC上编写Python的测试代码,操作手机应用,完成自动化,大大提高了自动化代码编写的效率。
安装UIAutomator2
[root@BenLam-vm_0 ~]# pip install uiautomator2
初始化
[root@BenLam-vm_0 ~]# adb connect Your_Android_ip
* daemon not running; starting now at tcp:5037
* daemon started successfully
connected to 10.0.1.10:5555
[root@BenLam-vm_0 ~]# python -m uiautomator2 init
success
测试链接状态
import uiautomator2
d = uiautomator2.connect('10.0.1.10')
print(d.info)
二.优缺点对比
| 测试点 | Appium | Robotium | UiAutomator |
|---|---|---|---|
| 是否支持设备无源码测试(黑盒测试) | ☑ | ☑ | ☑ |
| 能否进行跨应用测试 | ☑ | ☒ | ☑ |
| 是否是谷歌原生 | ☒ | ☒ | ☑ |
| 支持编程语言 | 所有语言 | Java | Java |
| 是否有签名一致的问题 | ☒ | ☑ | ☒ |
| 是否需要解决中文输入问题 | ☑ | ☒ | ☑ |
| 是否需要API17及以上 | ☒ | ☒ | ☑ |
| Junit支持版本 | Junit3\Junit4 | Junit3 | Junit4 |
| 是否支持webview | ☑ | ☑ | ☒ |
| 支持平台 | Android\IOS | Android | Android |
UIAutomator2、Appium、Robotium搭建环境与框架对比的更多相关文章
- MAC中在eclipse luna上搭建移动平台自动化测试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天因为原来在用的hp laptop的电池坏掉了,机器一不小心就断电,所以只能花时间在自己的macbook pro上重新搭建整套环境,大家都知道搭建环境是个很琐碎需要耐心的事情,特别是当你搭建的安卓 ...
- Appium 介绍与环境搭建
目录 Appium 介绍 APP 自动化测试介绍 什么是 Appium ? Appium 优势 Appium 架构 Appium 生态 Appium 组件 UiAutomator API Bootst ...
- Appium入门指南 - 环境搭建和Case编写
本文档将详细介绍如何搭建 Appium 的运行环境,以及如何编写一个简单的 UI 自动化测试用例.其中,也会穿插讲解一些 Appium 的基本知识.关于 Appium 的更多信息,大家可以查看官方文档 ...
- appium+python自动化☞环境搭建
前言:appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.略懂Python,所以接下来的教程是 appium+pyt ...
- Appium+python自动化环境搭建
一.步骤及环境 环境:Windows 7版本 64位系统(python) 1.jdk安装配置:jdk1.6.0 (64位) 2.android-sdk下载安装:android-sdk_r24.3.4- ...
- Windows环境搭建Web自动化测试框架Watir
Windows环境搭建Web自动化测试框架Watir 一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...
- mac上搭建appium+IOS自动化测试环境(一)
阅读须知 由于OS X系统最近才开始接触,所以有些东西也不是很清楚,这里只提供方法不提供原理,能解释清楚的我也会尽量解释.可能也有一些地方说的不严谨或有错的,还望大家指点一二. 实验环境 操作系统: ...
- 【从零开始搭建自己的.NET Core Api框架】(三)集成轻量级ORM——SqlSugar:3.1 搭建环境
系列目录 一. 创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...
- 使用intellij idea搭建spring-springmvc-mybatis整合框架环境
使用intellij idea搭建spring-springmvc-mybatis整合框架环境 1.打开idea,创建maven项目,File-New-Project 2.选择Maven,勾选Cr ...
随机推荐
- POJ-1159 Palindrome---变成回文串的最小代价
题目链接: https://cn.vjudge.net/problem/POJ-1159 题目大意: 题意很明确,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符 ...
- Uva 11582 巨大的斐波那契数 模运算
题目链接:https://vjudge.net/contest/156903#problem/A 题意:计算 f(a^b)%n 分析: 1.斐波那契数列是 f(i+2) = f(i+1) + f(i) ...
- 2017.11.18 C语言的算法分析题目
算法分析 1. 选定实验题目,仔细阅读实验要求,设计好输入输出,按照分治法的思想构思算法,选取合适的存储结构实现应用的操作. 2. 设计的结果应在Visual C++ 实验环境下实现并进行调试.(也可 ...
- JS无限添加HTML到指定位置
用JS把HTML添加到指定位置有两种写法,一种是用字符串,一种是用javascript中的方法 第一种: 用字符串写 <h2>利用JS无限添加一个相同部分</h2> <h ...
- Django之模型(model)中的choices字段的使用
转载自:http://quke.org/post/django-model-choices.html Django模型中的字段有个choices属性,这个属性可以提供被选数据,choices的参数是一 ...
- Docker 日常指令
镜像 制作镜像 docker build –t 172.0.0.1/demo/xxx:20180906_002 .[不要忘记 点] 查看镜像 docker images 删除镜像 docker rmi ...
- Data Warehouse 业务系统不入仓表
根据数据仓库的实施经验,凡符合如下特征的表,建议不入仓. ① 备份数据表 此类表是对现有表中某个时点数据的一份拷贝,根据需要进行数据恢复使用.因此,只需取当前表中的数据即可. ② 冗余数据表 同一类数 ...
- js实现二分查找
二分查找需要数组是有序的,1.先从有序数组的最中间元素开始查找,如果和要查找的元素相等,直接返回索引,若不相等则下一步.2.如果指定的元素大于或者小于中间元素,则在大于或小于的那一半区域内查找,重复第 ...
- LeetCode111. Minimum Depth of Binary Tree
题目 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15, ...
- WIN10下解决Failed installing tomcat X service
Win10下无法安装Tomcat的service.bat 来看本文的网友想必已经在自己电脑的cmd看了几百遍的Failed installing tomcat X service 字样,也认真检查过自 ...