appium架构分析

http://blog.sina.com.cn/s/blog_60c53af50102v3sb.html

Appium - automation for mobile apps

一.Appium架构介绍

官网:www.appium.io

由SauceLab公司主持。并在Google的GATC2013会上被详细介绍。

Appium是由nodejs的express框架写的Http Server。Appium不是它??创建?套新的测试框

架,是将现有的优秀的框架进?了集成,以Selenium WebDriver的协议

(JsonWireProtocol/Restful web service)统?起来. 使得这个框架满?多??的需求。

Appium启动?动化测试后,在被测设备上启动?个server,监听来?Appium server的指

令。不同的平台(如IOS,Android)采?不同的运?和交换?式。Appium将某个桩程序

“侵入”平台,用于接受指令,来完成测试脚本的运行。

特性:

1. 跨平台, native hybrid webview(H5)

2. 跨设备, android iOS

3. 跨app,可以在多个app之间交互

4. 不依赖APP开源代码(保留意见。。,android Uiautomator对H5的支持需要代码支持,这里不细说)

5. 支持Selenium WebDriver / Selenium Grid

6. 跨语言, java python ruby nodejs

7. Open Source

二. Appium 在Android端的工作模式

1.架构图

简易图:

在Android端,appium基于WebDriver,并利?用Bootstrap.js,最后通过调?用UiAutomator的命

令,实现App的自动化测试。UiAutomator测试框架是Android SDK?自带的App UI自动化测

试Java库。

另外由于UiAutomator对H5的?支持有限,appium引入了chromedriver来实现基于H5的自动

化。

2.主要原理:

1.左边的WebDriver script是我们的selenium测试脚本

2.中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),跟selenium

Webdriver测试框架类似,Appium?支持标准的WebDriver JSONWireProtocol 。在这里提供

了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调?用对应的框

架响应操作。

如:脚本发送一个点击按钮的请求给appium server,

3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.

Bootstrap 接收appium 的命令(4724端口),最终通过调?用UiAutomator的命令来实现。

4.最后执?行的结果由Bootstrap返回给appium server

5.另外,appium还用到了chromedriver来?支持基于H5(webview)的测试。

二. Appium 在IOS端的工作模式

1.架构图:


简易图:

在IOS端,appium同样使?用WebDriver的?一套协议。与Android端测试框架不同的是,

appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple

的?自动化测试框架),然后在设备中注?入bootstrap.js进?行监听。

2.主要原理

1.左边的WebDriver script是selenium测试脚本

2.中间是起的Appium的服务,Appium在这边起了?一个Server(4723端口),跟selenium

Webdriver测试框架类似,Appium?支持标准的WebDriver JSONWireProtocol 。在这里提供

了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调?用对应的框

架响应操作。

如:脚本发送一个点击按钮的请求给appium server,

3. appium server调用instruments.js 启动?一个socket server,同时分出?一个?子进程运?行

instruments.app,将bootstrap.js(一个UIAutomation脚本)注?入到device?用于和外界进?行交

互。

4.对于H5的操作,运?用了 iOS webkit debug proxy来实现

http://appium.io/slate/en/v1.0.0/?java#ios-support

https://github.com/google/ios-webkit-debug-proxy

三. 自动化测试脚本例?子

1)安装配置appium运行环境

参考:

http://appium.io/slate/en/master/?java#running-appium-on-mac-os-x

http://appium.io/slate/en/master/?java#running-appium-on-windows

2)Android & IOS例子

http://blog.sina.com.cn/s/blog_60c53af50102v3sc.html

时间: 2024-12-08 22:36:56

appium架构分析的相关文章

秒杀系统架构分析与实战

0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,

秒杀系统架构分析与实战(参考、转载)

目录[-] 0 系列目录 1 秒杀业务分析 2 秒杀技术挑战 3 秒杀架构原则 4 秒杀架构设计 4.1 前端层设计 4.2 站点层设计 4.3 服务层设计 4.4 数据库设计 4.4.1 基本概念 4.4.2 设计思路 5 大并发带来的挑战 5.1 请求接口的合理设计 5.2 高并发的挑战:一定要“快” 5.3 重启与过载保护 6 作弊的手段:进攻与防守 6.1 同一个账号,一次性发出多个请求 6.2 多个账号,一次性发送多个请求 6.3 多个账号,不同IP发送不同请求 7 高并发下的数据安全

分布式MySQL数据库TDSQL架构分析

摘要:腾讯计费平台部为了解决基于内存的NoSQL解决方式HOLD平台在应对多种业务接入时的不足.结合团队在MySQL领域多年应用和优化经验,终于在MySQL存储引擎基础上,打造一套分布式SQL系统TDSQL.本文是对该系统架构分析. 腾讯计费平台部托管着公司90%以上的虚拟账户.如QB.Q点.包月服务.游戏的二级账户等,为了保证能顺畅支撑公司各大业务的实时在线交易.而且在各种灾难场景下数据是一致而且可用的,对系统的可用性.一致性切换要求很高,因此计费团队历来都很重视高一致性存储系统的建设. 到眼

Android基础入门教程——1.1 背景相关与系统架构分析

Android基础入门教程--1.1 背景相关与系统架构分析 1.Android背景与当前的状况 Android系统是由Andy Rubin创建的,后来被Google收购了:最早的版本是:Android 1.1版本 而现在最新的版本是今年5.28,Google I/O大会上推出的Android M,有趣的是Android系统的命名都是以点心来命名的,下述表是15个Android版本名称,对应API号以及发布时间! 系统版本名称 API版本号 发布时间 Android 1.5:Cupcake:纸杯

虚拟化技术研究及架构分析

什么是虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率. 几种虚拟化软件介绍 RedHat KVM 虚拟化方式:完全虚拟化 架构:寄居架构(linux内核);祼金属架构RHEV-H 特点:祼金属架构RHEV-H或在关键的硬盘和网卡上支持半虚拟化VirtIO,达到最佳

【转载】Instagram架构分析笔记

原文地址:http://chengxu.org/p/401.html Instagram 架构分析笔记 全部 技术博客 Instagram团队上个月才迎来第 7 名员工,是的,7个人的团队.作为 iPhone 上最火爆的图片类工具,instagram 用户数量已经超过 1400 万,图片数量超过 1.5 亿张.不得不说,这真他妈是个业界奇迹. 几天前,只有三个人的 Instagram 工程师团队发布了一篇文章:What Powers Instagram: Hundreds of Instance

【转载】秒杀系统架构分析与实战

本文转载自:http://my.oschina.net/xianggao/blog/524943 0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是100

Redis 2.8 架构分析

1  Redis架构分析 1.1   为什么要用nosqlàredis? 1)存储方式的区别: nosql:使用K-V的方式存储数据 例如:mset   id 0001  name  zhangsan age   18 关系型数据库:使用多表结构关联的方式存储数据 例如: Id Name Age 0001 Zhangsan 18 - - - 2)读写方式的区别: nosql:可以把不同类型的数据通过k-v的方式进行快速的读写操作,无关系性.数据结构简单. 关系型数据库:在不同类型的数据下需要进行

tomcat架构分析-索引

tomcat架构分析 (概览) tomcat架构分析 (容器类) tomcat架构分析 (valve机制) tomcat架构分析 (valve源码导读) tomcat架构分析 (Session管理) tomcat架构分析 (JNDI配置) tomcat架构分析 (JNDI体系绑定) tomcat架构分析 (connector BIO 实现) tomcat架构分析 (connector NIO 实现)