干货分享关于Appium一些必须知道的小

本文大概字

读完共需3分钟

Appium是一款开源跨平台支持多种开发语言进行测试Native/Hybrid/Web的Android/iOSApplication的自动化测试框架,采用webdriver协议。不但支持模拟器而且支持真机测试。

Appium坚持的测试理念:

1.无需用户对APP进行任何修改或者重新编译,App应该Borntobeautomated。

2.不应该限制用户只能使用特定的语言或者框架来编写和执行测试。

3.移动测试框架的API应该是稳定的,合理的。不应对自动化API反复的造轮子。

4.移动测试框架应该是开源的,包括“精神和肉体”。

目前,Appium支持Python、JavaScript、ObjectiveC、Java、Ruby、php、c#。MQC目前首先选择支持Python语言和Java语言。其他语言将会陆续在MQC上得到支持。您也可以告诉我们您希望下一个被支持的语言。

Appium的架构是如何设计的?

事实上,Appium真正的工作引擎全部是第三方自动化框架。这样,就不需在你的应用里植入其他任何代码。也就是说你测试使用的应用和最终发布的应用完全一致。使用以下的第三方框架如下:

1.IOS:苹果的UIAutomation

2.Android4.2+:Google’sUiAutomator

3.Android2.3+:Google’sInstrumentation.(由单独的项目Selendroid提供支持)

Appium把这些第三方框架封装成一套WebDriverAPI。(协议格式参见JSONWireProtocol)。使用这种CS架构,Appium就可以通过任何语言来封装API调用,从而提供不同语言的客户端给不同的人员。

Appium的核心是一个web服务器,它提供了一套REST的接口。它收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在HTTP响应中返还给客户端。事实上,这种客户端/服务端的架构给予了许多的可能性:比如我们可以使用任何实现了该客户端的语言来写我们的测试代码。比如我们可以把服务端放在不同的机器上。

WebDriver的Session概念

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

什么是DesiredCapabilities?

Desiredcapabilities是一些键值对的集合(比如,一个map或者hash),客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。比如,我们可以把platformNamecapability设置为iOS,告诉Appium服务端,我们想要一个iOS的session,而不是一个Android的。完整列表参见capabilities文档(







































北京看白癜风医院哪里最好
北京看白癜风哪家医院好点



转载请注明:http://www.nylrzx365.com/gzgj/gzgj/9133.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了