APPIUM用于测试的自动化工具

 网站优化    |      2020-06-08

Appium最初由DanCueller开发,用于利用AppleiOS的UI自动化框架对本机移动应用程序运行测试。使用与Selenium相同的语法,它共享Selenium通过移动浏览器自动与网站交互的能力,但另外提供了一种与移动应用程序特定的元素(如手势)交互的方式。出于这个原因,虽然Appium可以用于针对移动和桌面浏览器的网站测试,但它更常用于测试iOS和Android的本机和混合移动应用程序。

Appium是一个用node.js编写的HTTP服务器,它为iOS和Android等不同平台创建和处理多个WebDriver会话。

Appium在设备上启动“测试用例”,该设备生成服务器并侦听来自主Appium服务器的代理命令。它与Selenium服务器几乎相同,后者从selenium客户端库中感知http请求,并根据平台以不同方式处理这些请求。

像iOS和Android这样的每个供应商都有不同的方式和机制来在设备上运行测试用例,因此Appium会破解它并在从appium服务器监听命令后运行此测试用例。

Appium如何在iOS上运行?

在iOS上,Appium代理命令到在MacInstruments环境中运行的UIAutomation脚本。Apple提供了这个名为“instruments”的应用程序,用于执行分析,控制和构建iOS应用程序等许多活动,但它还有一个自动化组件,我们可以在javascript中编写一些命令,使用UIAutomationAPI与AppUI进行交互。Appium利用这些相同的库自动化iOS应用程序。

在上图中,我们可以在iOS自动化的上下文中看到Appium的体系结构。如果我们谈论一个命令生命周期,就像Seleniumwebdriver从(Element.click)这样的代码中选择一个命令,并通过http请求以JSon的形式发送给Appium服务器。

Appium服务器知道像iOS和Android这样的自动化上下文,并将此命令发送到Instruments命令服务器,该命令服务器将等待Instruments命令客户端(用node.js编写)来获取它并在iOS中的bootstrap.js中执行它仪器环境。执行该命令后,命令客户端将消息发送回Appium服务器,该服务器在其控制台中记录与该命令相关的所有内容。这个循环一直持续到所有命令执行的时间。

APPIUM设计概念

Appium是使用Node.js平台编写的“HTTP服务器”

为了方便用户快速找到我们,也可以关注我们的微信公众号:唯小宝网络