Appium是什么?-问答-阿里云开发者社区-阿里云

开发者社区> 猫饭先生> 正文

Appium是什么?

2017-10-25 10:13:55 1410 0

Appium是一个开源的、跨平台的测试框架,可以用来测试Native App、混合应用、移动Web应用(H5应用)。
  • Appium坚持的测试理念:
  1. [backcolor=transparent]无需用户对[backcolor=transparent]App[backcolor=transparent]进行任何修改或者重新编译,[backcolor=transparent]App[backcolor=transparent] [backcolor=transparent]应该[backcolor=transparent] [backcolor=transparent]Born[backcolor=transparent] to be automated[backcolor=transparent]
  2. [backcolor=transparent]不应该限制用户只能使用特定的语言或者框架来编写和执行测试。
  3. [backcolor=transparent]移动测试框架的[backcolor=transparent]API[backcolor=transparent]应该是稳定的,合理的。不应对自动化[backcolor=transparent]API [backcolor=transparent]反复地造轮子。
  4. [backcolor=transparent]移动测试框架应该是开源的,包括“精神和肉体”。

目前,Appium支持Python、JavaScript、Objective C、Java、Ruby、PHP、C#。MQC目前首先选择支持Python语言和Java语言。其他语言将会陆续在MQC上得到支持。您也可以告诉我们您希望下一个被支持的语言。
  • Appium的架构是如何设计的?

事实上,Appium 真正的工作引擎全部是第三方自动化框架。这样,就不需在你的应用里植入其他任何代码。也就是说你测试使用的应用和最终发布的应用完全一致。使用以下的第三方框架如下:
  1. [backcolor=transparent]iOS  [backcolor=transparent]9.3[backcolor=transparent]-:[backcolor=transparent] [backcolor=transparent]Apple[backcolor=transparent][backcolor=transparent]UIAutomation
  2. [backcolor=transparent]iOS [backcolor=transparent]10.0[backcolor=transparent]+:[backcolor=transparent] [backcolor=transparent]Facebook[backcolor=transparent][backcolor=transparent]WebDriverAgent
  3. [backcolor=transparent]Android[backcolor=transparent] [backcolor=transparent]4.2[backcolor=transparent]+:[backcolor=transparent] [backcolor=transparent]Google[backcolor=transparent][backcolor=transparent]UiAutomator
  4. [backcolor=transparent]Android[backcolor=transparent] [backcolor=transparent]2.3[backcolor=transparent]+:[backcolor=transparent] [backcolor=transparent]Google[backcolor=transparent][backcolor=transparent]Instrumentation[backcolor=transparent] [backcolor=transparent](由单独的项目[backcolor=transparent]Selendroid[backcolor=transparent]提供支持)

Appium把这些第三方框架封装成一套 WebDriver API。(协议格式参见 JSON Wire Protocol)。使用这种CS架构,Appium就可以通过任何语言来封装API调用,从而提供不同语言的客户端给不同的人员。
Appium 的核心是一个 web 服务器,它提供了一套 REST 的接口。它收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在 HTTP响应中返还给客户端。事实上,这种客户端/服务端的架构给予了许多的可能性:比如我们可以使用任何实现了该客户端的语言来写我们的测试代码。比如我们可以把服务端放在不同 的机器上。
  • WebDriver 的Session概念

自动化始终围绕一个session进行,客户端初始化一个seesion(会话)来与服务端交互,不同的语言有不同的实现方式,但是他们最终都是发送为一个POST请求给服务端,请求中包含一个JSON对象,被称作“desired capabilities”。此时,服务端就会开启一个自动化的 session,然后返回一个 session ID,session ID将会被用户发送后续的命令。
  • 什么是Desired Capabilities?

Desired capabilities 是一些键值对的集合 (比如,一个 map 或者 hash),客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。比如,我们可以把platformName capability 设置为 iOS,告诉 Appium 服务端,我们想要一个iOS 的 session,而不是一个 Android 的。完整列表参见 capabilities 文档
取消 提交回答
全部回答(0)
相关问答

40

回答

[@徐雷frank][¥20]什么是JAVA的平台无关性

大河人家 2018-10-29 23:55:20 144313浏览量 回答数 40

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 223072浏览量 回答数 162

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333958浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292381浏览量 回答数 110

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146823浏览量 回答数 22

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 643298浏览量 回答数 18

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 145662浏览量 回答数 31

82

回答

OSS入门教程

belle.zhoux 2014-07-07 17:14:27 149608浏览量 回答数 82

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302663浏览量 回答数 249

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 471633浏览量 回答数 24
+关注
350
文章
1300
问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载