知乎首发地址:https://zhuanlan.zhihu.com/p/141439504
一、什么是Capability和session
Capability的功能是配置Appium会话。他们告诉Appium服务器您想要自动化的平台和应用程序。DesiredCapabilities是一组设置的键值对的集合,其中键对应设置的名称,而值对应设置的值。(如:"platformName": "Android")Desired Capabilities主要用于通知Appium服务器建立需要的Session。
会话Session:Appium的客户端和服务端之间进行通信都必须在一个Session的上下文中进行。客户端在发起通信的时候首先会发送一个叫作“Desired Capabilities”的JSON对象给服务器。服务器收到该数据后,会创建一个session并将session的ID返回到客户端,之后客户端可以用该session的ID发送后续的命令。
二、常用Capability配置讲解
如果有了解过Capability的人会发现一个问题,其实他主要分成了三部分:公共部分、ios部分、android部分,如果你android想用ios的那是不可能的,so,老老实实去了解每个平台有哪些,他们的作用是什么。下面我们介绍一些公用常用的,红色标记的为常用的选项。
官方文档:http://appium.io/docs/cn/writing-running-appium/caps/#android
1、Appium服务器初始化参数
下面红框圈出来的是我们常用的一些键值对。
2、Android独有的Capability
还有很多,截图不全。
3、IOS独有的Capability
还有很多键值对,可以参考官方文档:
三、使用Appium创建一次会话
通过设置Capability,创建与Android设备应用的会话session。
1、启动appium服务
Host:127.0.0.1(如果是其他主机,则填相应的IP地址)
端口:4723(固定值)
点击start server v1.7.1
2、创建New Session Window
方式1:File->New Session window
方式2:点击上图圈的按钮
3、New Session Window设置
Automatic Server 本地AppiumServer服务
Custom Server:例如,如果要针对运行在网络中另一台计算机上的Appium服务器启动Inspector会话,这很有用。
Sauce Labs:如果您无法访问机器上的iOS模拟器,则可以利用Sauce Labs帐户在云中启动Appium会话。
TestObject:您还可以利用TestObject的真实设备云来进行真机测试。
4、启动会话
点击上图右下角的Start Session,启动一个新的会话,如果你的android模拟器或者真机已经连接上ADB,则可以直接抓取到设备的页面,如下图(itools中启动了,并安装了qq):
启动成功之后就可以使用 Inspector来进行元素空间获取了。 注意:默认的元素定位有一些不准,需要切换到第二个坐标点定位选项后再切换回来才能准确定,后续就可以针对这些页面元素进行自动化脚本的开发啦。
附图移动端测试的知识脑图,可以完善我们测试的知识体系,如果知友对这部分内容感兴趣,可以持续关注小编的账号。
除此之外,小编还录制了不少这方面的技术视频,知友如果有需要,可以私聊本小编获取哦!
欢迎关注作者,如果觉得写的还不错,就给点个赞同、喜欢、收藏(后续持续更新)。
【全文手打 如需转载 请标注此出处】