快捷导航
查看: 781|回复: 0

APPIUM – 用于测试的自动化工具

[复制链接]

管理员

发表于 2020-6-29 22:42 | 显示全部楼层 |阅读模式
Appium最初由Dan Cueller开发,用于利用Apple iOS的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代理命令到在Mac Instruments环境中运行的UI Automation脚本。Apple提供了这个名为“instruments”的应用程序,用于执行分析,控制和构建iOS应用程序等许多活动,但它还有一个自动化组件,我们可以在javascript中编写一些命令,使用UI Automation API与App UI进行交互。Appium利用这些相同的库自动化iOS应用程序。在上图中,我们可以在iOS自动化的上下文中看到Appium的体系结构。如果我们谈论一个命令生命周期,就像Selenium webdriver从(Element.click)这样的代码中选择一个命令,并通过http请求以JSon的形式发送给Appium服务器。Appium服务器知道像iOS和Android这样的自动化上下文,并将此命令发送到Instruments命令服务器,该命令服务器将等待Instruments命令客户端(用node.js编写)来获取它并在iOS中的bootstrap.js中执行它仪器环境。执行该命令后,命令客户端将消息发送回Appium服务器,该服务器在其控制台中记录与该命令相关的所有内容。这个循环一直持续到所有命令执行的时间。APPIUM设计概念Appium是使用Node.js平台编写的“HTTP服务器” ,使用Webdriver JSON有线协议驱动iOS和Android会话。因此,在初始化Appium Server之前,必须在系统上预安装Node.js.下载并安装Appium时,会在我们的机器上设置一个公开REST API的服务器。它从客户端接收连接和命令请求,并在移动设备(Android / iOS)上执行该命令。它响应HTTP响应。同样,为了执行此请求,它使用移动测试自动化框架来驱动应用程序的用户界面。框架如: –适用于iOS的Apple Instruments(仪器仅适用于OS X v10.5及更高版本的Xcode 3.0或更高版本)Google UIAutomator for Android API等级16或更高Selendroid for Android API等级为15或更低一般使用APPIUM的先决条件ANDROID SDK [ 链接 ] JDK(Java开发工具包)[ 链接 ]TestNG [ 链接 ]Eclipse [ 链接 ]Selenium Server JAR [ 链接 ]Webdriver语言绑定库[ 链接 ]适用于Windows的APPIUM [ 链接 ]APK App在Google Play上的信息[ 链接 ]Node.js(不需要 – 每当安装Appium服务器时,默认情况下它都带有“Node.exe”和NPM。它包含在当前版本的Appium中。)Appium的基本要求应在系统中安装Eclipse或Android Studio。iOS系统设置要求苹果系统XCodeApple开发者工具(iPhone模拟器SDK)Android系统设置要求应该正确安装Android SDK和Java。适用于Android的Appium设置以及OS X,Linux和Windows上的iOS。定义编写Appium测试所需的功能。如何定义所需的功能?期望的功能是存储属性的键和值的集合,例如deviceName,browserName,platformName,platformVersion等。以下是添加Selenium Jars及其所需功能的示例:APPIUM检查员与Selenium IDE记录和播放工具类似,Appium有一个“Inspector”来记录和播放。它通过检查DOM来记录和播放本机应用程序行为,并以任何所需语言生成测试脚本。但是,目前不支持Appium Inspector for Microsoft Windows。在Windows中,它启动Appium Server但无法检查元素。但是,UIAutomator查看器可用作检查元素的选项。从Mac机上的Appium Inspector开始的步骤: –1)从链接http://appium.io/下载Appium for iOS。2)右键单击下载的文件并使用DiskImageMounter 打开它,如下所示。它将在不同的文件夹中打开Appium.app。3)将Appium.app拖到Applications文件夹,如下所示。4)双击Applications文件夹打开Appium.app。首先,您需要通过单击顶部的苹果图标导航到Appium iOS设置。您无需填写所有表格。还要记得检查图标下方的圆形按钮,确保定位到正确的平台。5)您需要做的第一件事是将Appium服务器指向您要测试的.APP文件(从Xcode项目生成 -只需选中“App Path”框并将路径粘贴到文本字段中的.App文件中,或单击按钮导航到该文件。6)接下来,在屏幕上向下移动一点,直到在“设备设置”下找到“强制设备”字段。选中该框并选择要测试的设备。虽然最后您可以插入任何您喜欢的文本字符串,但此步骤是必需的。7)紧接着是UDID字段。选中复选框并打开Xcode。导航到窗口 – >设备,从左侧边栏中选择您连接的设备。您需要复制“标识符”行前面的文本,返回Appium并将其粘贴到UDID字段中。8)接下来,您需要选中“完全重置”框。这告诉Appium每次运行测试时都要重置我们正在测试的应用程序的状态。9)最后,您需要检查Appium是否知道Xcode应用程序的路径。单击“高级”选项卡,检查底部字段中的路径是否正确。如果没有,只需单击按钮并导航到Xcode10)您现在可以启动服务器了。关闭iOS设置屏幕并选择按钮。您应该会在Appium终端上看到一些信息。几秒钟后,您可以单击带有图标的按钮,这将打开Appium Inspector。此时,应用程序将在您的设备上安装并启动。Inspector的目的是允许您引用正在测试的应用程序的UI元素,以便您可以与它们进行交互。如何使用API​​来定位元素并执行操作?>按名称(按内容-desc)这也是定位元素的有效方法,但问题与UI开发人员在页面上具有非唯一名称或自动生成名称的ID相同。使用此策略,将返回名称属性值与位置匹配的第一个元素。如果没有元素具有匹配的name属性,则将引发NoSuchElementException 。>按类名称有了这个,你可以根据class属性的值找到元素。如果一个元素有很多类,那么这将匹配它们中的每一个。一个类可以包含许多元素。>按ID使用此策略,将返回id属性值与位置匹配的第一个元素。如果没有元素具有匹配的id属性,则将引发NoSuchElementException 。这是定位元素的最有效和首选方式,因为大多数时间ID都是唯一的。>通过XPathXpath 是Appium中的重要定位器,因为你会遇到很多情况,你没有任何选择,只能使用xpath。Xpath可以是相对的和绝对的,但建议始终使用相对xpath。例用例和部署范围Appium由拥有Android和iOS本机应用程序的团队在整个组织中使用。我们正在使用它来自动化大型回归测试,现在我们手动运行。Appium让我们改进了发布过程的持续时间并提高了回归阶段的速度,让我们可以选择将手动测试团队减少到一个人。目前,Appium正在使用TestObject,因为通过这两个协同工作,可以提高设备覆盖率和整个发布过程的速度,并具有良好的质量水平。您甚至可以参考链接获取有关eclipse的其他解释。结论使用Appium,您可以自动执行Android和iOS测试。没有必要学习超过1种语言。配置和使用Appium非常容易; 当你测试策略基于“开发人员编写测试”时,它非常有用。相关文章推荐Node.js-简易教程  Node.js是什么? Node.js是开源的Javascript,它允许用户从服务器端运行脚本。它在用户的W […]...聊天机器人开发框架  Chatbot也被称为IM Bot,人工会话实体,谈话机器人和聊天机器人。它是一个自动化软件程序,通过音频聊天 […]...TypeScript简介:Web的静态类型  TypeScript是使用JavaScript创建更好体验的众多尝试之一。 TypeScript究竟是什么? […]...3D Touch简介:静态快速主屏幕操作  iOS 9引入了3D Touch,用户可以使用该触摸按下主屏幕图标并获取应用程序中某些操作的快捷方式,或者用户 […]...JavaScript是什么?JavaScript的优缺点  JavaScript是世界上最流行的编程语言之一,已有二十多年的历史,它也是web开发人员使用的三种主要语言之 […]...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

966SEO学习网

GMT+8, 2024-4-23 14:48

Powered by SEO学习网  本站采用创作共用版权 CC BY-NC-SA 3.0 CN 许可协议,转载或复制请注明出处

© 2014-2019 投诉建议及友链申请联系邮箱:[email protected]

快速回复 返回顶部 返回列表