https://github.com/appium/appium/bl
Appium是什么?
1. C/S架构
appium的核心是一个web服务器,提供一套REST接口。
--Appium接受客户端的http连接监听到需要执行的命令
--然后在连接上的移动设备上执行这些命令
--然后将移动设备的执行结果放在http响应中返回给客户端
2.Session
自动化始终围绕一个session进行,客户端初始化一个seesion(会话)来与服务端交互,不同的语言有不同的实现方式,但是他们最终都是发送为一个POST请求给服务端,请求中包含一个JSON对象,被称作“desired capabilities”。此时,服务端就会开启一个自动化的 session,然后返回一个 session ID,session ID将会被用户发送后续的命令。
3.Desired Capabilities
Desired capabilities 是一些键值对的集合 (比如,一个 map 或者 hash),客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。比如,我们可以把platformName
capability 设置为 iOS
,告诉 Appium 服务端,我们想要一个iOS 的 session,而不是一个 Android 的。我们也可以设置 safariAllowPopups
capability 为 true
,确保在 Safari 自动化 session 中,我们可以使用 javascript 来打开新窗口。
查看完整的 capabilities 列表,Appium服务关键字:https://github.com/appium/appium/blob/master/docs/cn/writing-running-appium/caps.cn.md
4. Appium Server
Appium server 是用 Node.js 写的。我们可以用源码编译或者从 NPM 直接安装。
5. Appium服务端 服务端就是C/S中的客户端??
Appium 服务端有很多语言库 Java, Ruby, Python, PHP, JavaScript 和 C#,这些库都实现了 Appium 对 WebDriver 协议的扩展。当使用 Appium 的时候,你只需使用这些库代替常规的 WebDriver 库就可以了。
Appium客户端类库:https://github.com/appium/appium/blob/master/docs/cn/about-appium/appium-clients.cn.md