基于Appium、Python的自动化测试环境部署和实践

发表于:2017-04-20来源:cnblogs作者:bacon刘点击数: 标签:pythonAppium
该文档为选用Appium作为移动设备原生(Native)、混合(Hybrid)、移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员、开发人员等提供参考。

第一章 导言

1.1 编制目的

该文档为选用Appium作为移动设备原生(Native)、混合(Hybrid)、移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员、开发人员等提供参考。

1.2 预期读者

自动化测试人员、测试代表、开发人员等。
 

第二章 概述

2.1 Appium设计哲学

不需要为了自动化而且重新编译或修改测试app;
不应该让移动端自动化测试限定在某种语言和某个具体的框架;也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做移动端自动化测试;
不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的api;也就是说webdriver协议里的api已经够好了,拿来改进一下就可以了;
移动端自动化测试应该是开源的;

2.2 Appium技术框架(C/S 框架)

Appium的核心是一个暴露了一系列REST API的Server。这个server的主要功能:监听一个端口,然后接收由client发送来的命令(command)。解析这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给server, server再把执行结果返回给client。
client就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。
这样的设计思想带来了一些好处:
1)多语言的支持;
2)可把server放在任意机器上,支持云测试;

 
 
图1 Appium架构

 
 
 
图2 Appium Android模型
 

 
 
图3 AppiumiOS模型

2.3 Appium Server/Client

Appium Server即服务器,连接Appium客户端和移动设备。原生的webdriverapi为web端设计,因此扩展到移动端要拓展。Appium官方提供了一套appium client,涵盖多种语言ruby/java/python等。

2.4 会话Session

在webdriver/appium,所有测试都必须在Appium Server和移动设备之间创建会话(Session)后才可以进行。一般来说,通过POST/session这个URL,然后传入会话属性(Desired Capabilities)就可以开启会话了。开启会话后,会返回一个全局唯一的会话ID(session id),之后几乎所有的请求都基于该会话ID,该会话ID代表了你所打开的浏览器或者是移动设备的模拟器,连接执行机器和移动设备。由于每个移动设备的连接会话ID是全局唯一的,那么在同一台机器上启动多个会话就变成了可能,这使多移动设备的并发测试成为可能。
会话属性(Desired Capabilities)包含会话配置信息,以key-value形式存在,可以理解成是java里的map,python里的字典,ruby里的hash以及javascript里的json对象(实际上,Appium Server和移动设备之间的会话属性就是通过json对象传输)
 

第三章 Appium安装

Appium Windows版仅支持Android设备(手机),Appium Mac版同时支持Android和iOS设备(手机)。

3.1 Windows版安装(64位)

3.1.1 软件列表

1)JDK> 1.6
2)vcredist_x86_c++
3).Net Framework > 4.0
3)Android Developer Tools(ADT-Bundle-windows-x86-64)
4)Appium for windows(最新版1.4.16.1)
5) Appium client(根据使用的语言安装一种即可:Java/Python/Ruby等),对于Java客户端,还需要Selenium包selenium-java-2.46.0.jar , selenium-server-standalone-2.46.0.jar,python的是Appium-python-client(就是一个python类库)
6)Android手机驱动(for windows),windows必须安装任意一个Android手机驱动,否则,adb无法检测无设备。

3.1.2 安装过程

按照JDK、vcredist_x86_c++、.NET Framework、Appium的顺序安装好各软件,ADT直接下载就可以用无需安装
1)JDK安装:设置系统环境变量JAVA_HOME为JDK安装路径:(Java安装和环境变量配置,自行百度)
 

原文转自:http://www.cnblogs.com/baconLiu/p/6735441.html