转: Appium ---移动自动化测试

转自:http://www.cnblogs.com/nbkhic/p/3803830.html

什么是appium?

下面这段介绍来自于appium的官网。

Appium is an open-source tool you can use to automate mobile native, mobile web, and mobile hybrid applications on iOS and Android platforms. “Mobile native apps” are those written using the iOS or Android SDKs. “Mobile web apps” are web apps accessed using a mobile browser (Appium supports Safari on iOS and Chrome on Android). “Mobile hybrid apps” have a native wrapper around a “webview” – a native control that enables interaction with web content. Projects like Phonegap, for example, make it easy to build apps using web technologies that are then bundled into a native wrapper – these are hybrid apps.

Importantly, Appium is “cross-platform”: it allows you to write tests against multiple platforms (iOS, Android), using the same API. This enables a large or total amount of code reuse between iOS and Android testsuites.

我们可以从上面的介绍里获得这样的一些信息:

  • appium是开源的移动端自动化测试框架;
  • appium可以测试原生的、混合的、以及移动端的web项目;
  • appium可以测试ios,android应用(当然了,还有firefox os);
  • appium是跨平台的,可以用在osx,windows以及linux桌面系统上;

appium的哲学

Appium was designed to meet mobile automation needs according to a certain philosophy. The key points of this philosophy can be stated as 4 requirements:

  1. You shouldn’t have to recompile your app or modify it in any way in order to automate it.
  2. You shouldn’t be locked into a specific language or framework to write and run your tests.
  3. A mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs.
  4. A mobile automation framework should be open source, in spirit and practice as well as in name!

appium的设计哲学是这样的:

1. 不需要为了自动化而且重新编译或修改测试app;

2. 不应该让移动端自动化测试限定在某种语言和某个具体的框架;也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做移动端自动化测试;

3. 不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的api;也就是说webdriver协议里的api已经够好了,拿来改进一下就可以了;

4. 移动端自动化测试应该是开源的;

appium的技术架构

appium的设计思想

We meet requirement #2 by wrapping the vendor-provided frameworks in one API, theWebDriver API. WebDriver (aka “Selenium WebDriver”) specifies a client-server protocol (known as the JSON Wire Protocol). Given this client-server architecture, a client written in any language can be used to send the appropriate HTTP requests to the server. There are already clients written in every popular programming language. This also means that you’re free to use whatever test runner and test framework you want; the client libraries are simply HTTP clients and can be mixed into your code any way you please. In other words, Appium & WebDriver clients are not technically “test frameworks” – they are “automation libraries”. You can manage your test environment any way you like!

We meet requirement #3 in the same way: WebDriver has become the de facto standard for automating web browsers, and is a W3C Working Draft. Why do something totally different for mobile? Instead we have extended the protocol with extra API methods useful for mobile automation.

It should be obvious that requirement #4 is a given – you’re reading this because Appium is open source.

首先,为了能够实现哲学里描述的第2条,也就是不应该让移动端自动化测试限定在某种语言和某个具体的框架;也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做移动端自动化测试;appium选择了client-server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及webdriver如何做到支持多语言的;

其次,为了能够实现不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的api;也就是说webdriver协议里的api已经够好了,拿来改进一下就可以了;这个思想,appium扩展了webdriver的协议,没有自己重新去实现一套。这样的好处是以前的webdriver api能够直接被继承过来,以前的webdriver各种语言的binding都可以拿来就用,省去了为每种语言开发一个client的工作量;

最后appium当然是开源的,这也实现了哲学思想里的最后一点。

时间: 2024-10-05 05:00:27

转: Appium ---移动自动化测试的相关文章

RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

Mac下Appium环境搭建: 消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为TestYao刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速把移动端自动化这块搞起来,试用几款目前流行的工具,腾讯的xtest定制版.神州数码的自动化测试平台.开源rf+appium框架. 经过一段试用最终还是选择了rf+appium主要原因有: 1.开源,网上社区活跃 2.扩展性强,针对不同项目不同的需求,封装

Appium移动自动化测试(四)--one demo

继续更新. -------------------------------------------- 第四节  安装Appium Client Appium Client是对webdriver原生api的一些扩展和封装.它可以帮助我们更容易的写出用例,写出更好懂的用例. Appium Client是配合原生的webdriver来使用的,因此二者必须配合使用缺一不可. 在本文档的开始已经介绍Appium支持多种编程语言编写自动化测试脚本,由于我个人熟悉Python语言,所以选择Python语言来编

Appium IOS 自动化测试初探

手机平台的自动化测试工具很多,之前研究过了安卓和苹果的原生自动化测试框架,经一些同事介绍,貌似Appium是个不错的工具. 想记录一下研究的结果,也算是篇干货的文章 在网上也看了一些视频,个人认为这个自动化测试的特点就是 1. 多编程语言支持 相对于传统的IOS UIautomation只能支持js语言,Appium起到了一个翻译的作用,它其实是一个CS架构,服务器和IOS模拟器或真机直接通讯,客户端和服务器之间用HTTP协议进行交互,所以客户端用什么语言其实不重要.下面会有一个python编程

手机自动化测试:搭建appium手机自动化测试开发环境

poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478.poptest已经开始了移动测试开发的课程,在课程中加入了公司的实际案例,学员上课的过程中感觉课程难度很高,我们在想办法保证课程的难度和深度的情况,调整教学方式让学员可以在同样的时间里掌握更深的知识. 本次和大家分享appium的环境搭建. 第一步:安装appium,我安装的是<AppiumForWindows-1.0.0.3

移动(appium)自动化测试-爬虫的另一种手段

appium自动化测试环境搭建: 1.Python环境(推荐2.7)和jdk. 2.Adb工具的下载:自己单独下载adb.夜神模拟器自带和Android sdk 3.Apk安装介质:真机.Android自带模拟器和第三方模拟器:这里推荐使用:第三方模拟器(夜神模拟器).这里需要将夜神模拟器设置为:开发者模式. 4.安装appium PC客户端. (1)安装python开发模块appium-python-client:pip install Appium-Python-Client. (2)使用a

Appium移动自动化测试(一)

Appium 自动化测试是很时之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿.现在终于有了. 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰. ==================== web自动化测试的路线是这样的:编程语言基础--->测试框架--->webdriver API--->开发自动化测试项目. 移动自动化的测试的路线要长一些:编程语言基础--->测试框架--->android/IOS开发测试基础----&g

appium移动自动化测试-one demo

参考教程:appium新手入门(5)-- python-client安装与测试 使用 Python 语言编写 appium 自动化测试脚本 1.安装python 访问Python官方网站:https://www.Python.org/ 一直点next,直至finish.. 配置环境变量:我的电脑-属性-高级系统设置-环境变量-系统变量-找到path,添加变量值:C:\Python27 打开window命令窗口,输入python,显示python版本表示等信息表示成功了 2.安装Appium-Cl

在Mac OSX 上配置Appium+Android自动化测试环境

前提准备 开始正文之前,你需要准备好一些基本条件: 安装好Mac OSX 操作系统的设备 能够访问中国局域网以外资源的方法(没有也行,但很痛苦) 已经安装好 homebrew 已经安装好 Python3.x 已经安装好 Java Runtime Environment 安装 Android Studio / SDK 本文主要为了测试安卓应用,那么这里我们就需要安装Android Studio或者Android SDK. Android Studio - 完整的开发以及测试工具,需要梯子 Andr

Mac下appium ios自动化测试(一)

mac下ios自动化测试,可以使用appium,也可以直接用facebook-wda库. 此篇先介绍appium: 开始之前先要知道测试app的bundleId,这是ios特有的.可以采用如下命令: ideviceinstaller -l 遇到问题: Could not connect to lockdownd. Exiting. 解决办法: 打开命令行一次输入如下代码: brew uninstall ideviceinstaller -gbrew uninstall libimobiledev