移动测试Appium工作原理

移动测试Appium工作原理

介绍

Appium是一个开源工具,用于自动化iOS、Android设备和Windows桌面平台上的原生、移动Web和混合应用。

"原生应用"指那些用iOS、Android或者WindowsSDK编写的应用。

"移动web应用"是用移动端浏览器访问的应用(Appium支持iOS上的Safari、Chrome和Android上的内置浏览器)。

"混合应用"带有一个"webview"的包装器——用来和Web内容交互的原生控件。

重要的是:Appium是跨平台的:它允许你用同样的API对多平台写测试,做到在iOS、Android和Windows测试套件之间复用代码。

Appium关键词

Appium是基于nodejs的HTTP服务器,用于创建和处理基JSON wire protocol协议的多webdriver会话,支持IOS和android平台。

以下为Appium架构中关键词:

会话(session):标识Appium客户端和Appium服务器端惟一交互

Desired Capabilities:用于告诉Appium服务端要启动一个什么类型的自动化测试会话

Appium服务器:基于nodejs写的HTTP服务器,实现了对JSON wire protocol的处理

Appium客户端:支持多语言(python、ruby、java、php、javascript、C#)API,提供给测试或开发人员编写appium自动化测试脚本,另外还提供了Inspector用于查看APP的层级结构,便于分析APP的UI结构

APPIUM IOS端工作原理

下面我们通过一张图来看下IOS端APPIUM全过程工作原理:

APPIUM Android端工作原理

下面我们通过一张图来看下android端APPIUM全过程工作原理:

说明

  1. 整个箭头指向为一个完成的指令循环
  2. webdriver script需要自动化测试人员自己编写对应的测试脚本
  3. 建议大家去了解下JSON wire protocol
  4. 建议大家去了解下instruments
  5. 建议大家去了解下UiAutomator

总结

在对appium python client的源码做了一些分析分享后,感觉有必要把appium的工作原理给理理,所以才有了这篇短文,主要引导思路,需要大家进一步去思考和研究其技术细节以增强对整个原理的理解。

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2017-12-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

挖洞经验|雅虎小企业服务平台Luminate身份认证漏洞

对内容管理系统的开发来说,一个重要和关键的步骤就是账户的身份认证实现。身份认证功能可以管理用户登录行为和会话,作出有效的登录访问控制。通常,这种认证功能一般由用...

31940
来自专栏程序员互动联盟

【答疑解惑第九讲】如何在linux下面编译一个简单的c语言程序

存在问题: 习惯了用IDE,习惯了点击执行按钮。在linux就不能这样了,该咋办? 解决方案: 随着android的大热,在linux下搞开发的人也越来越多,好...

388110
来自专栏散尽浮华

zabbix监控-基本原理介绍

一、Linux下开源监控系统简单介绍 1)cacti:存储数据能力强,报警性能差 2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的...

73590
来自专栏知晓程序

小程序服务器崩溃了怎么办?| 小程序问答 #38

不用担心,知晓程序(微信号 zxcx0101)今天就来教你,在小程序出现意外状况时,我们可以做些什么。

11020
来自专栏IT大咖说

前后端高效协作开发的11条建议

内容来源:作者,深予之 (@senntyou),https://github.com/senntyou/blogs;来自,https://segmentfaul...

9710
来自专栏知晓程序

开发 | 只需一步!教你如何轻松部署小程序后端

利用它,你可以在「微信 web 开发者工具」中,直接完成后端代码编写、腾讯云部署等一系列操作。

71240
来自专栏蓝天

选择设置好ext3日志模式

Linux是一种开放的、因Internet而产生的操作系统。Internet的发展、以网络为中心的计算模式如电子商务被迅速接受和普及,都为 Linux提供了更巨...

11620
来自专栏Python中文社区

构建一个pip安装的车辆路径显示的Python包

專 欄 ❈treelake,Python中文社区专栏作者。 简书: http://www.jianshu.com/u/66f24f2c0f36 ❈ 最近有一些...

261100
来自专栏杨建荣的学习笔记

通过shell脚本检测MySQL服务信息

第一部分是通过系统层面来解析MySQL的基本信息,方式是通过ps -ef|grep mysql得到的信息来解析。

13720
来自专栏翻译社

6个虚拟机备份和恢复的最佳实践

虚拟机的体系结构与传统的本地环境大不相同,需要不同的数据备份技术。本文将介绍一些备份虚拟机的最佳实践。

35660

扫码关注云+社区

领取腾讯云代金券