2023年6月21日发(作者:)
Appium⾯试题1、Appium有什么特点?以下是 Appium 的特点:-[图⽚上传失败...(image-7cc230-72)]Appium 不需要使⽤应⽤程序的源代码或库。Appium 拥有⼀个充满活⼒且参与度⾼的开发者社区,因此可以轻松地从社区获得帮助。Appium ⽀持多平台测试,这意味着它可以在 iOS 移动、Android 移动和 Windows 桌⾯应⽤程序等多个平台上执⾏相同的测试⽤例。Appium 允许测试脚本与其他测试脚本并⾏运⾏。Appium 中的⼩修改不需要重新安装应⽤程序。Appium ⽀持使⽤ Selenium 客户端库的多种语⾔,包括 C#、Python、Java、Ruby、PHP、带有 的 JavaScript 等等。2. 提⼀下Appium的优缺点。以下是Appium的优点:-Appium 是⼀个开源应⽤程序,这意味着它可以免费下载并且设置简单。它可⽤于在混合、本机和 Web 应⽤程序上运⾏⾃动化测试。为了使 Appium 与⾃动化兼容,您不需要在应⽤程序中集成任何新代理,这与其他测试解决⽅案不同。它在将上传到 App Store 的应⽤程序上进⾏测试。Appium 现在有⼀个新功能。除了移动应⽤程序测试,它现在还⽀持 Windows 桌⾯应⽤程序测试。Appium 是⼀个跨平台、开源的移动测试解决⽅案,允许我们进⾏跨平台测试。因此,您将能够跨多种平台进⾏测试(Android 和 IOS 平台的单⼀ API)。以下是Appium的缺点:-不⽀持⽣成已执⾏测试的详细报告。测试有点慢,因为它们依赖于远程 Web 驱动程序。Appium 使⽤ UIAutomator for Android,它只⽀持 Android SDK、API 16 或更⾼版本,这不是限制,⽽是开销。另⼀⽅⾯,Appium本⾝并不⽀持早期的 API。为了⽀持较旧的 API,它使⽤了⼀个名为 Selendroid 的开源库。在 Mac OS 设备上,⼀次只能运⾏⼀个 iOS 脚本,这意味着⼀次只能运⾏⼀个测试。如果我们希望同时在多个 iOS 设备上运⾏我们的测试,我们将需要相同数量的 Mac 机器。另⼀⽅⾯,组织许多 Mac 机器的成本会很⾼。3.模拟器和模拟器的区别。模拟器:模拟器⽤于模拟环境,其中包含将出现在应⽤程序的实际⽣产环境中的所有软件变量和配置。模拟器不会尝试复制将在⽣产中运⾏应⽤程序的实际硬件。模拟器可以⽤⾼级编程语⾔编写,因为它们只是构建软件环境。例如,可以将赛车游戏应⽤程序视为模拟器,因为它模拟了真实的赛车。模拟器:模拟器确实会尝试复制真实世界环境的所有硬件和软件⽅⾯。在⼤多数情况下,您需要⽤汇编语⾔开发⼀个模拟器来完成此操作。因此,模拟器可能被认为占据了模拟器和现实世界⼩⼯具之间的中间地带。例如,可以将汽车模拟器赛车游戏视为模拟器。它还借助模拟器提供赛车的硬件⽅⾯。模拟器复制硬件和软件功能,⽽模拟器仅模拟可以使⽤软件调整或创建的环境功能。仿真器不能替代真实设备测试,因为它们并不总是能很好地模拟⽣产系统的硬件和软件。它们只是允许您创建⼀个更类似于真实设备的环境。与模拟器相⽐,模拟器要慢⼀些,因为模拟器需要感知硬件设备的运动,将其转换为数字信号,然后对其进⾏处理。4. 什么时候应该使⽤模拟器,什么时候应该使⽤模拟器?我们应该使⽤模拟器的情况:模拟器通常⽤于软件测试情况,其⽬标是确保应⽤程序在与外部应⽤程序或环境交互时按预期运⾏。例如,您可能希望查看⼀个应⽤程序是否可以将数据传递给另⼀个应⽤程序。因为实际的硬件配置不太可能对程序的数据传输产⽣太⼤影响,所以模拟环境通常就⾜够了。模拟测试环境对于确保应⽤程序的界⾯在⼀系列屏幕分辨率下正确显⽰也很有⽤。我们应该使⽤模拟器的情况:当您需要测试软件如何与底层硬件或硬件和软件的组合交互时,模拟器会派上⽤场。例如,如果我们想发现固件更新是否会导致我们的软件出现问题,我们可以在模拟器的帮助下找出答案。或者,我们可能想知道我们的程序在多个 CPU 上运⾏或使⽤不同的内存分配时的执⾏情况。模拟器在这些情况下也能派上⽤场。5. 有哪些不同类型的移动应⽤程序?以下是不同类型的移动应⽤程序:原⽣应⽤程序:原⽣应⽤程序是⽤特定编程语⾔(例如 iOS 的 Objective C 或 Android 的 Java)编写并直接安装在设备上的程序,允许它充分利⽤设备的所有特性。本机应⽤程序可以离线⼯作并利⽤设备的通知系统。应⽤商店(例如 Google Play 或 Apple 的 App Store)⽤于安装本机应⽤程序。本机移动应⽤程序具有⾼⽔平的性能和可靠性。Temple Run、Candy Crush 和其他本地应⽤程序就是⽰例。Web 应⽤程序: Web 应⽤程序是专门为移动设备创建、调整和托管的移动 Web 门户。使⽤移动设备的 Web 浏览器上的 URL 访问它们。当 HTML5 发布时,⼈们了解到他们可以在浏览器中拥有类似本机的功能,并且 Web 应⽤程序变得⾮常流⾏。设备功能在移动 Web 应⽤程序中不可⽤。、、 和更多⽹站都是 Web 应⽤程序的⽰例。混合应⽤程序:嵌⼊在设备上运⾏并使⽤ Web 技术创建的本机应⽤程序的 Web 应⽤程序称为混合应⽤程序(HTML5、CSS 和JavaScript)。混合应⽤程序在本机容器内运⾏,并使⽤设备的浏览器引擎(⽽不是浏览器)在本地呈现 HTML 和处理 JavaScript。Web到本机的抽象层使您可以访问移动 Web 应⽤程序中不可⽤的设备功能,例如加速度计、摄像头和本地存储。混合应⽤程序不限于单⼀平台或移动设备。因此,⼀旦构建,它就可以在任何设备上运⾏。Flipkart、Facebook、Twitter 和其他混合应⽤程序就是⽰例。6. 有哪些重要的移动应⽤程序测试?以下是⼀些重要的移动应⽤程序测试:可⽤性测试:可⽤性测试是 Web 应⽤程序测试的⼀种,⾮常适合评估应⽤程序如何使⽤户更容易实现其⽬标。在这个测试中,参与者被给予特定的、真实的环境来使⽤应⽤程序。在收集来⾃最终⽤户的直接输⼊的基础上,可⽤性测试也是可靠的。因此,测试过程没有偏见,同时保证突出区域得到改善。可⽤性测试还确保设计直观,并优先考虑可⽤性和客户体验。性能测试:性能测试是移动应⽤程序测试的⼀个重要⼦集,⽤于检查应⽤程序在各种⼯作负载情况下的性能、稳定性和响应能⼒。性能测试的主要⽬标是确保应⽤程序完全符合性能⽬标。此外,它在启动应⽤程序之前解决了性能限制。瓶颈是系统整体功能内部的进程,会导致系统的整体性能变慢或停滞。负载测试、容量测试、浸泡测试、尖峰测试和压⼒测试都是流⾏的性能评估形式。安全测试:在当今世界,安全是⼏乎每个移动应⽤程序开发⼈员的主要担忧。据报道,出于安全考虑,80% 的⽤户更有可能删除应⽤程序。因此,专注于移动应⽤安全测试⾄关重要。某些程序(例如旅⾏应⽤程序)需要⽤户的个⼈信息来进⾏各种交易。如果您的应⽤程序需要类似的东西,您必须保证应⽤程序的机密性、完整性和真实性。您应该在您的应⽤程序上运⾏强⼤的测试,以确保没有⼈可以通过不公平的⽅式侵⼊他⼈的帐户。中断测试:中断测试对于确定应⽤程序在返回之前的状态之前被中断时的⾏为⾮常重要。来电或短信、警报、来⾃移动应⽤程序的推送通知、电池电量不⾜或已满、⽹络连接丢失和恢复以及充电时插⼊或拔出都是中断的⽰例。如果发⽣中断,应⽤程序通常应该在后台运⾏并返回到之前的状态。⼿动测试:⼿动测试是⼀种经过验证的⽅法,可以彻底解决移动应⽤程序测试的复杂性。⼿动测试可确保成品按照计划的预期以最佳⽅式运⾏。在⽤例不是⽴即显⽽易见的情况下,它特别有⽤。专业的 QA 测试⼈员可以在短时间内评估应⽤程序并确保它产⽣准确的结果。兼容性测试:兼容性测试是最重要的移动应⽤程序测试类型之⼀。它是⼀种⾮功能测试形式,可确保移动应⽤程序在各种操作系统、应⽤程序、设备、内部硬件规格和⽹络条件下的功能。兼容性测试确定移动应⽤程序是否与各种操作系统和版本兼容。它还测试移动应⽤程序与各种设备、浏览器、⽹络和其他特性的兼容性。向后兼容性测试和前向兼容性测试是兼容性测试的两种类型。本地化测试:针对特定地理位置的移动应⽤程序必须进⾏本地化测试。测试移动应⽤程序对该地区独特语⾔和⽂化⽅⾯的响应能⼒⾄关重要。当地货币、使⽤合适的时区⽇期和时间格式、众多当地法规需求以及⽂本和⽤户界⾯只是本地化测试评估的⼏个重要领域。功能测试:功能移动应⽤程序测试确保应⽤程序的功能满⾜指定的要求。这种形式的测试主要关注移动应⽤程序的主要⽬标和流程。功能测试确定应⽤程序是否可以正确启动和安装。它还测试了注册和登录的简单性,以及推送通知的呈现以及⽂本框和按钮的正确操作。安装测试:安装测试,也称为实现测试,是确保移动应⽤程序正确安装和删除的好⽅法。此外,安装测试对于确保更新⽆缝且⽆错误是必要的。安装测试还检查如果⽤户未能更新移动应⽤程序会发⽣什么。⾃动化测试:某些移动应⽤程序质量评估过于复杂且耗时。在这种情况下,移动应⽤程序测试⾃动化服务开始发挥作⽤,提供最佳准备和有效执⾏的⾃动化测试以及⼿动测试,这有助于确保质量,同时也允许更快地发布优质产品。因此,在移动应⽤程序测试⽅⾯,⾃动化测试是节省时间和成本的可靠来源。有多种⼯具可以执⾏⾃动化测试。Appium就是其中之⼀。7. 你需要⼀台服务器机器来在 Appium 上运⾏测试吗?不,我们不需要服务器机器来在 Appium 上运⾏测试。Appium ⿎励两层架构,其中⼀台测试机器连接到运⾏ Appium 的测试服务器,使整个过程⾃动化。此设置是可选的;您可以在与测试相同的系统上运⾏ Appium。您的测试将使⽤环回地址连接到 Appium,⽽不是连接到远程主机。8. Appium 适合哪些类型的测试?在进⾏测试时,可以测试许多场景,尤其是对于 Web 应⽤程序,具体取决于您要确保的功能覆盖率。Appium 在测试⽤户在使⽤您的应⽤程序时会遇到的场景时很有帮助。另⼀⽅⾯,如果您需要测试的不仅仅是 UX 简单交互,那么 Appium 就会成为⼀种限制。考虑诸如键盘输⼊之类的功能。当涉及复杂的触摸/键盘混合环境时,错误失败的可能性很⼤。使⽤ Appium 交换数据是另⼀个⼩⿇烦。当您的测试需要与您的应⽤程序交换数据时,您需要使⽤各种策略。所以请记住,发送和接收信息并不总是那么简单。这不是 Appium 的错。WebDriver 规范的创建是为了⾃动化流程,⽽不是数据交换。9. 在 Sauce Labs 上使⽤ Appium ⽽不是在本地使⽤ Appium 的主要优势是什么?以下是在 Sauce Labs 上使⽤ Appium ⽽不是在本地使⽤ Appium 的优势:它节省了我们在本地设置 Appium 服务器所需的时间。我们不需要在我们的系统中离线安装移动模拟器和模拟器。我们可以直接在 Sauce Labs(⼀家位于加利福尼亚州旧⾦⼭的美国云托管 Web和移动应⽤程序⾃动化测试平台公司)上使⽤它。它让我们可以⽴即扩展我们的应⽤程序。我们不需要像在本地使⽤ Appium 那样对应⽤程序的源代码进⾏任何修改。10. 解释移动应⽤测试框架的⼀般职责。还解释了移动应⽤程序测试框架的⼀般结构。以下是移动应⽤程序测试框架的⼀般职责:选择表达期望的格式开发连接或控制测试应⽤程序的⽅法执⾏测试并报告结果移动应⽤程序测试框架的⼀般结构由以下部分组成:应⽤程序包:这是指需要运⾏和测试的⽬标应⽤程序。Instrumentation TestRunner:针对⽬标应⽤程序执⾏测试⽤例的测试⽤例运⾏器。它包括⼀个⽤于创建测试的 SDK ⼯具以及⼀个 API ⼯具,例如 MonkeyRunner,它提供了⽤于设计控制 Android 设备的程序的 API。测试包:测试包中包含两个类,测试⽤例类和 Mock 对象。模拟对象包含将⽤作测试⽤例的样本输⼊的模拟数据,⽽测试⽤例类包含要在⽬标应⽤程序上运⾏的测试⽅法。[图⽚上传失败...(image-da5da5-71)]在上图中,我们可以看到⼀个移动应⽤测试框架由三个部分组成:Application package、InstrumentationTestRunner、Test package。测试包由模拟对象、测试⽤例类以及 Instrumentation 和 JUnit 类组成。11. 列出在 Appium 本地运⾏ Android 应⽤程序测试所需的先决条件。必须安装以下先决条件才能在 Appium 本地成功地在 Android 应⽤程序上运⾏测试:Java 开发⼯具包 (JDK)。安卓⼯作室。Android SDK ⼯具。Eclipse IDE。Appium 桌⾯客户端。测试NG。硒服务器 JAR。Webdriver 语⾔绑定库。12. Appium Inspector 是什么意思?Appium 提供了⼀个“Inspector”来记录和回放,类似于 Selenium IDE 的记录和回放⼯具。它检查⽂档对象模型以记录和播放本机应⽤程序⾏为,并以任何⾸选语⾔提供测试脚本。您可以使⽤ Appium Desktop 中的 Inspector 来查找或定位应⽤程序的元素。为了定位⼀个元素,Appium 检查器提供了四个选项:通过 id 查找元素按类名查找元素通过可访问性 id 查找元素通过 xpath 查找元素。Appium Inspector 不⽀持 Windows,⽽是使⽤ UIAutomator 查看器作为选项。13.解释Appium的架构。Appium 是⼀个⽤ 编程语⾔实现的 HTTP 服务器。它在设备上创建⼀个服务器并等待来⾃主 Appium 服务器的代理命令。测试脚本由测试⼈员编写并在设备或模拟器上运⾏。Appium 为各种平台(如 Android 和 iOS)创建和管理许多 webdriver 会话。测试⼈员⽣成的测试脚本作为请求发送到 Appium 服务器,然后在模拟器或设备上执⾏。每个供应商都有⾃⼰的技术和⽅法来在设备上执⾏测试⽤例,例如 IOS 或 Android。因此,测试⽤例在 Appium 服务器接收到命令后运⾏。为了将命令请求传输到 Appium 服务器,Appium 使⽤JSON(Javascript Object Notation)有线协议。在这⾥,JSON ⽤于在服务器和客户端之间传输数据。14.您对端到端移动测试⾃动化了解多少?执⾏端到端移动测试⾃动化时应牢记哪些事项?端到端移动应⽤程序测试⾃动化是⼀种从头到尾测试软件产品以确保应⽤程序流程按计划进⾏的⽅法。它建⽴产品的系统要求并确保所有集成组件按预期运⾏。端到端 (E2E) 移动应⽤程序测试⾃动化的⽬标是从最终⽤户的⾓度进⾏测试,通过复制⽤户使⽤应⽤程序的真实情况,并确认被测系统及其⽤于数据完整性和集成的组件。如今,软件系统⾮常复杂,并与众多⼦系统集成在⼀起。如果⼦系统之⼀发⽣故障,则整个软件系统可能会发⽣故障。我们采⽤端到端的移动应⽤程序测试⾃动化来消除这⼀巨⼤风险。在执⾏端到端移动测试⾃动化时,应牢记以下⼏点:应⽤程序的安装在没有⽹络访问权限的情况下⾸次启动应⽤程序。应⽤程序的卸载。如果应⽤程序在⽔平模式下受⽀持,则应⽤程序的⽅向。在各种设备和⽹络条件下测试应⽤程序的性能。测试应⽤程序的响应以及在提供⽆效的⽤户凭据时它的反应。15. 什么是移动应⽤测试,它与移动测试有何不同?测试为⼿持移动设备制作的应⽤程序软件的功能、可⽤性和⼀致性的做法称为移动应⽤程序测试。移动应⽤程序测试可以通过两种⽅式完成:⾃动或⼿动。它与移动测试不同,移动测试侧重于移动设备的原⽣应⽤程序功能,例如通话、短信和媒体播放器等。同时,在移动应⽤测试中,我们只关注特定应⽤的操作和端到端的特性。16.解释Appium使⽤的JSON Wire协议。JSON Wire Protocol 是交换客户端和服务器数据的⽅法。它是由 WebDriver 的开发⼈员创建的。根据他们的说法,该协议由⼀组通过RESTful API 提供给客户端的标准化端点组成。这使 webdriver 能够与服务器和客户端通信,以⾃动执⾏任务。在该协议中,JSON ⽤于在服务器和客户端之间传输数据。在将对象交付给服务器之前,客户端(或运⾏ WebDriver API 的计算机)将其转换为 JSON 对象。JSON 对象由服务器解析并转换回 JavaScript 对象。响应对象由服务器转换为 JSON 字符串并返回给客户端。为了使⽤,客户端将 JSON 字符串转换为JavaScript 对象。在上图中,我们可以看到客户端和服务器通过 JSON 有线协议相互通信。服务器向 appium 服务器发送请求以运⾏测试,appium 服务器将响应发送回主服务器。Appium 使⽤移动 JSON Wire 协议,它是 Selenium JSON Wire 协议的扩展。除了建⽴通信流外,它还⽤于规范其他⼿机⾏为。17.在Appium的上下⽂中解释Appium Session。Appium 会话是向特定测试应⽤程序发送命令的媒介。命令总是在会话的上下⽂中执⾏。在执⾏任何命令之前,客户端使⽤会话标识符作为sessionId 参数。客户端库从服务器请求会话。之后,服务器将返回⼀个 sessionId 端点,该端点可⽤于提交其他命令以与正在测试的应⽤程序进⾏交互。每个“测试”都包含在⼀个会话中。鉴于 Appium 是⼀个简单的基于客户端和服务器的⽅法,这是不⾔⽽喻的。发布请求,也称为会话请求,由客户端发送到服务器。这些查询使⽤ JSON Wire Protocol 以 JSON 对象格式通信和传达信息。18. 在 Appium 的上下⽂中解释所需的能⼒。在 iOS 和 Android 上,Appium 的⾏为不同。因为它是⼀个“跨平台”的⼯具,所以必须有⼀种⽅法来区分两个操作系统的会话请求。JSON对象,称为 Desired Capabilities,被引⼊来解决这个特定的问题陈述。所需功能是键值对数据,将 Android 应⽤程序测试会话的建⽴与 iOS 应⽤程序测试会话的建⽴区分开来。使⽤ platformName、deviceName、appPackage 和 appActivity 等参数,服务器将能够⾮常快速地分辨出两个操作系统之间的区别。19. 测试⼈员在使⽤ Appium 时可以在多线程环境中运⾏测试吗?是的,Appium 允许测试⼈员在多线程环境中执⾏测试。他们唯⼀需要担⼼的是不能同时针对同⼀个 Appium 服务器运⾏⼀个测试。20. 是否可以在运⾏ Appium 测试时使⽤ JavaScript 与应⽤程序交互?是的,我们可以在运⾏ Appium 测试时使⽤ javascript 与应⽤程序交互。当我们在 Appium 上执⾏指令时,服务器会将封装在匿名函数中的脚本传输到我们的应⽤程序,然后执⾏。21. Appium Package master是什么意思?你将如何创建⼀个包?Appium Package master 是指⼀组⽤于创建和管理 Appium 包的⼯具。要创建⼀个新的 Appium 包,我们可以使⽤以下代码⾏://For es7/ babelGulp create-package -n
2023年6月21日发(作者:)
Appium⾯试题1、Appium有什么特点?以下是 Appium 的特点:-[图⽚上传失败...(image-7cc230-72)]Appium 不需要使⽤应⽤程序的源代码或库。Appium 拥有⼀个充满活⼒且参与度⾼的开发者社区,因此可以轻松地从社区获得帮助。Appium ⽀持多平台测试,这意味着它可以在 iOS 移动、Android 移动和 Windows 桌⾯应⽤程序等多个平台上执⾏相同的测试⽤例。Appium 允许测试脚本与其他测试脚本并⾏运⾏。Appium 中的⼩修改不需要重新安装应⽤程序。Appium ⽀持使⽤ Selenium 客户端库的多种语⾔,包括 C#、Python、Java、Ruby、PHP、带有 的 JavaScript 等等。2. 提⼀下Appium的优缺点。以下是Appium的优点:-Appium 是⼀个开源应⽤程序,这意味着它可以免费下载并且设置简单。它可⽤于在混合、本机和 Web 应⽤程序上运⾏⾃动化测试。为了使 Appium 与⾃动化兼容,您不需要在应⽤程序中集成任何新代理,这与其他测试解决⽅案不同。它在将上传到 App Store 的应⽤程序上进⾏测试。Appium 现在有⼀个新功能。除了移动应⽤程序测试,它现在还⽀持 Windows 桌⾯应⽤程序测试。Appium 是⼀个跨平台、开源的移动测试解决⽅案,允许我们进⾏跨平台测试。因此,您将能够跨多种平台进⾏测试(Android 和 IOS 平台的单⼀ API)。以下是Appium的缺点:-不⽀持⽣成已执⾏测试的详细报告。测试有点慢,因为它们依赖于远程 Web 驱动程序。Appium 使⽤ UIAutomator for Android,它只⽀持 Android SDK、API 16 或更⾼版本,这不是限制,⽽是开销。另⼀⽅⾯,Appium本⾝并不⽀持早期的 API。为了⽀持较旧的 API,它使⽤了⼀个名为 Selendroid 的开源库。在 Mac OS 设备上,⼀次只能运⾏⼀个 iOS 脚本,这意味着⼀次只能运⾏⼀个测试。如果我们希望同时在多个 iOS 设备上运⾏我们的测试,我们将需要相同数量的 Mac 机器。另⼀⽅⾯,组织许多 Mac 机器的成本会很⾼。3.模拟器和模拟器的区别。模拟器:模拟器⽤于模拟环境,其中包含将出现在应⽤程序的实际⽣产环境中的所有软件变量和配置。模拟器不会尝试复制将在⽣产中运⾏应⽤程序的实际硬件。模拟器可以⽤⾼级编程语⾔编写,因为它们只是构建软件环境。例如,可以将赛车游戏应⽤程序视为模拟器,因为它模拟了真实的赛车。模拟器:模拟器确实会尝试复制真实世界环境的所有硬件和软件⽅⾯。在⼤多数情况下,您需要⽤汇编语⾔开发⼀个模拟器来完成此操作。因此,模拟器可能被认为占据了模拟器和现实世界⼩⼯具之间的中间地带。例如,可以将汽车模拟器赛车游戏视为模拟器。它还借助模拟器提供赛车的硬件⽅⾯。模拟器复制硬件和软件功能,⽽模拟器仅模拟可以使⽤软件调整或创建的环境功能。仿真器不能替代真实设备测试,因为它们并不总是能很好地模拟⽣产系统的硬件和软件。它们只是允许您创建⼀个更类似于真实设备的环境。与模拟器相⽐,模拟器要慢⼀些,因为模拟器需要感知硬件设备的运动,将其转换为数字信号,然后对其进⾏处理。4. 什么时候应该使⽤模拟器,什么时候应该使⽤模拟器?我们应该使⽤模拟器的情况:模拟器通常⽤于软件测试情况,其⽬标是确保应⽤程序在与外部应⽤程序或环境交互时按预期运⾏。例如,您可能希望查看⼀个应⽤程序是否可以将数据传递给另⼀个应⽤程序。因为实际的硬件配置不太可能对程序的数据传输产⽣太⼤影响,所以模拟环境通常就⾜够了。模拟测试环境对于确保应⽤程序的界⾯在⼀系列屏幕分辨率下正确显⽰也很有⽤。我们应该使⽤模拟器的情况:当您需要测试软件如何与底层硬件或硬件和软件的组合交互时,模拟器会派上⽤场。例如,如果我们想发现固件更新是否会导致我们的软件出现问题,我们可以在模拟器的帮助下找出答案。或者,我们可能想知道我们的程序在多个 CPU 上运⾏或使⽤不同的内存分配时的执⾏情况。模拟器在这些情况下也能派上⽤场。5. 有哪些不同类型的移动应⽤程序?以下是不同类型的移动应⽤程序:原⽣应⽤程序:原⽣应⽤程序是⽤特定编程语⾔(例如 iOS 的 Objective C 或 Android 的 Java)编写并直接安装在设备上的程序,允许它充分利⽤设备的所有特性。本机应⽤程序可以离线⼯作并利⽤设备的通知系统。应⽤商店(例如 Google Play 或 Apple 的 App Store)⽤于安装本机应⽤程序。本机移动应⽤程序具有⾼⽔平的性能和可靠性。Temple Run、Candy Crush 和其他本地应⽤程序就是⽰例。Web 应⽤程序: Web 应⽤程序是专门为移动设备创建、调整和托管的移动 Web 门户。使⽤移动设备的 Web 浏览器上的 URL 访问它们。当 HTML5 发布时,⼈们了解到他们可以在浏览器中拥有类似本机的功能,并且 Web 应⽤程序变得⾮常流⾏。设备功能在移动 Web 应⽤程序中不可⽤。、、 和更多⽹站都是 Web 应⽤程序的⽰例。混合应⽤程序:嵌⼊在设备上运⾏并使⽤ Web 技术创建的本机应⽤程序的 Web 应⽤程序称为混合应⽤程序(HTML5、CSS 和JavaScript)。混合应⽤程序在本机容器内运⾏,并使⽤设备的浏览器引擎(⽽不是浏览器)在本地呈现 HTML 和处理 JavaScript。Web到本机的抽象层使您可以访问移动 Web 应⽤程序中不可⽤的设备功能,例如加速度计、摄像头和本地存储。混合应⽤程序不限于单⼀平台或移动设备。因此,⼀旦构建,它就可以在任何设备上运⾏。Flipkart、Facebook、Twitter 和其他混合应⽤程序就是⽰例。6. 有哪些重要的移动应⽤程序测试?以下是⼀些重要的移动应⽤程序测试:可⽤性测试:可⽤性测试是 Web 应⽤程序测试的⼀种,⾮常适合评估应⽤程序如何使⽤户更容易实现其⽬标。在这个测试中,参与者被给予特定的、真实的环境来使⽤应⽤程序。在收集来⾃最终⽤户的直接输⼊的基础上,可⽤性测试也是可靠的。因此,测试过程没有偏见,同时保证突出区域得到改善。可⽤性测试还确保设计直观,并优先考虑可⽤性和客户体验。性能测试:性能测试是移动应⽤程序测试的⼀个重要⼦集,⽤于检查应⽤程序在各种⼯作负载情况下的性能、稳定性和响应能⼒。性能测试的主要⽬标是确保应⽤程序完全符合性能⽬标。此外,它在启动应⽤程序之前解决了性能限制。瓶颈是系统整体功能内部的进程,会导致系统的整体性能变慢或停滞。负载测试、容量测试、浸泡测试、尖峰测试和压⼒测试都是流⾏的性能评估形式。安全测试:在当今世界,安全是⼏乎每个移动应⽤程序开发⼈员的主要担忧。据报道,出于安全考虑,80% 的⽤户更有可能删除应⽤程序。因此,专注于移动应⽤安全测试⾄关重要。某些程序(例如旅⾏应⽤程序)需要⽤户的个⼈信息来进⾏各种交易。如果您的应⽤程序需要类似的东西,您必须保证应⽤程序的机密性、完整性和真实性。您应该在您的应⽤程序上运⾏强⼤的测试,以确保没有⼈可以通过不公平的⽅式侵⼊他⼈的帐户。中断测试:中断测试对于确定应⽤程序在返回之前的状态之前被中断时的⾏为⾮常重要。来电或短信、警报、来⾃移动应⽤程序的推送通知、电池电量不⾜或已满、⽹络连接丢失和恢复以及充电时插⼊或拔出都是中断的⽰例。如果发⽣中断,应⽤程序通常应该在后台运⾏并返回到之前的状态。⼿动测试:⼿动测试是⼀种经过验证的⽅法,可以彻底解决移动应⽤程序测试的复杂性。⼿动测试可确保成品按照计划的预期以最佳⽅式运⾏。在⽤例不是⽴即显⽽易见的情况下,它特别有⽤。专业的 QA 测试⼈员可以在短时间内评估应⽤程序并确保它产⽣准确的结果。兼容性测试:兼容性测试是最重要的移动应⽤程序测试类型之⼀。它是⼀种⾮功能测试形式,可确保移动应⽤程序在各种操作系统、应⽤程序、设备、内部硬件规格和⽹络条件下的功能。兼容性测试确定移动应⽤程序是否与各种操作系统和版本兼容。它还测试移动应⽤程序与各种设备、浏览器、⽹络和其他特性的兼容性。向后兼容性测试和前向兼容性测试是兼容性测试的两种类型。本地化测试:针对特定地理位置的移动应⽤程序必须进⾏本地化测试。测试移动应⽤程序对该地区独特语⾔和⽂化⽅⾯的响应能⼒⾄关重要。当地货币、使⽤合适的时区⽇期和时间格式、众多当地法规需求以及⽂本和⽤户界⾯只是本地化测试评估的⼏个重要领域。功能测试:功能移动应⽤程序测试确保应⽤程序的功能满⾜指定的要求。这种形式的测试主要关注移动应⽤程序的主要⽬标和流程。功能测试确定应⽤程序是否可以正确启动和安装。它还测试了注册和登录的简单性,以及推送通知的呈现以及⽂本框和按钮的正确操作。安装测试:安装测试,也称为实现测试,是确保移动应⽤程序正确安装和删除的好⽅法。此外,安装测试对于确保更新⽆缝且⽆错误是必要的。安装测试还检查如果⽤户未能更新移动应⽤程序会发⽣什么。⾃动化测试:某些移动应⽤程序质量评估过于复杂且耗时。在这种情况下,移动应⽤程序测试⾃动化服务开始发挥作⽤,提供最佳准备和有效执⾏的⾃动化测试以及⼿动测试,这有助于确保质量,同时也允许更快地发布优质产品。因此,在移动应⽤程序测试⽅⾯,⾃动化测试是节省时间和成本的可靠来源。有多种⼯具可以执⾏⾃动化测试。Appium就是其中之⼀。7. 你需要⼀台服务器机器来在 Appium 上运⾏测试吗?不,我们不需要服务器机器来在 Appium 上运⾏测试。Appium ⿎励两层架构,其中⼀台测试机器连接到运⾏ Appium 的测试服务器,使整个过程⾃动化。此设置是可选的;您可以在与测试相同的系统上运⾏ Appium。您的测试将使⽤环回地址连接到 Appium,⽽不是连接到远程主机。8. Appium 适合哪些类型的测试?在进⾏测试时,可以测试许多场景,尤其是对于 Web 应⽤程序,具体取决于您要确保的功能覆盖率。Appium 在测试⽤户在使⽤您的应⽤程序时会遇到的场景时很有帮助。另⼀⽅⾯,如果您需要测试的不仅仅是 UX 简单交互,那么 Appium 就会成为⼀种限制。考虑诸如键盘输⼊之类的功能。当涉及复杂的触摸/键盘混合环境时,错误失败的可能性很⼤。使⽤ Appium 交换数据是另⼀个⼩⿇烦。当您的测试需要与您的应⽤程序交换数据时,您需要使⽤各种策略。所以请记住,发送和接收信息并不总是那么简单。这不是 Appium 的错。WebDriver 规范的创建是为了⾃动化流程,⽽不是数据交换。9. 在 Sauce Labs 上使⽤ Appium ⽽不是在本地使⽤ Appium 的主要优势是什么?以下是在 Sauce Labs 上使⽤ Appium ⽽不是在本地使⽤ Appium 的优势:它节省了我们在本地设置 Appium 服务器所需的时间。我们不需要在我们的系统中离线安装移动模拟器和模拟器。我们可以直接在 Sauce Labs(⼀家位于加利福尼亚州旧⾦⼭的美国云托管 Web和移动应⽤程序⾃动化测试平台公司)上使⽤它。它让我们可以⽴即扩展我们的应⽤程序。我们不需要像在本地使⽤ Appium 那样对应⽤程序的源代码进⾏任何修改。10. 解释移动应⽤测试框架的⼀般职责。还解释了移动应⽤程序测试框架的⼀般结构。以下是移动应⽤程序测试框架的⼀般职责:选择表达期望的格式开发连接或控制测试应⽤程序的⽅法执⾏测试并报告结果移动应⽤程序测试框架的⼀般结构由以下部分组成:应⽤程序包:这是指需要运⾏和测试的⽬标应⽤程序。Instrumentation TestRunner:针对⽬标应⽤程序执⾏测试⽤例的测试⽤例运⾏器。它包括⼀个⽤于创建测试的 SDK ⼯具以及⼀个 API ⼯具,例如 MonkeyRunner,它提供了⽤于设计控制 Android 设备的程序的 API。测试包:测试包中包含两个类,测试⽤例类和 Mock 对象。模拟对象包含将⽤作测试⽤例的样本输⼊的模拟数据,⽽测试⽤例类包含要在⽬标应⽤程序上运⾏的测试⽅法。[图⽚上传失败...(image-da5da5-71)]在上图中,我们可以看到⼀个移动应⽤测试框架由三个部分组成:Application package、InstrumentationTestRunner、Test package。测试包由模拟对象、测试⽤例类以及 Instrumentation 和 JUnit 类组成。11. 列出在 Appium 本地运⾏ Android 应⽤程序测试所需的先决条件。必须安装以下先决条件才能在 Appium 本地成功地在 Android 应⽤程序上运⾏测试:Java 开发⼯具包 (JDK)。安卓⼯作室。Android SDK ⼯具。Eclipse IDE。Appium 桌⾯客户端。测试NG。硒服务器 JAR。Webdriver 语⾔绑定库。12. Appium Inspector 是什么意思?Appium 提供了⼀个“Inspector”来记录和回放,类似于 Selenium IDE 的记录和回放⼯具。它检查⽂档对象模型以记录和播放本机应⽤程序⾏为,并以任何⾸选语⾔提供测试脚本。您可以使⽤ Appium Desktop 中的 Inspector 来查找或定位应⽤程序的元素。为了定位⼀个元素,Appium 检查器提供了四个选项:通过 id 查找元素按类名查找元素通过可访问性 id 查找元素通过 xpath 查找元素。Appium Inspector 不⽀持 Windows,⽽是使⽤ UIAutomator 查看器作为选项。13.解释Appium的架构。Appium 是⼀个⽤ 编程语⾔实现的 HTTP 服务器。它在设备上创建⼀个服务器并等待来⾃主 Appium 服务器的代理命令。测试脚本由测试⼈员编写并在设备或模拟器上运⾏。Appium 为各种平台(如 Android 和 iOS)创建和管理许多 webdriver 会话。测试⼈员⽣成的测试脚本作为请求发送到 Appium 服务器,然后在模拟器或设备上执⾏。每个供应商都有⾃⼰的技术和⽅法来在设备上执⾏测试⽤例,例如 IOS 或 Android。因此,测试⽤例在 Appium 服务器接收到命令后运⾏。为了将命令请求传输到 Appium 服务器,Appium 使⽤JSON(Javascript Object Notation)有线协议。在这⾥,JSON ⽤于在服务器和客户端之间传输数据。14.您对端到端移动测试⾃动化了解多少?执⾏端到端移动测试⾃动化时应牢记哪些事项?端到端移动应⽤程序测试⾃动化是⼀种从头到尾测试软件产品以确保应⽤程序流程按计划进⾏的⽅法。它建⽴产品的系统要求并确保所有集成组件按预期运⾏。端到端 (E2E) 移动应⽤程序测试⾃动化的⽬标是从最终⽤户的⾓度进⾏测试,通过复制⽤户使⽤应⽤程序的真实情况,并确认被测系统及其⽤于数据完整性和集成的组件。如今,软件系统⾮常复杂,并与众多⼦系统集成在⼀起。如果⼦系统之⼀发⽣故障,则整个软件系统可能会发⽣故障。我们采⽤端到端的移动应⽤程序测试⾃动化来消除这⼀巨⼤风险。在执⾏端到端移动测试⾃动化时,应牢记以下⼏点:应⽤程序的安装在没有⽹络访问权限的情况下⾸次启动应⽤程序。应⽤程序的卸载。如果应⽤程序在⽔平模式下受⽀持,则应⽤程序的⽅向。在各种设备和⽹络条件下测试应⽤程序的性能。测试应⽤程序的响应以及在提供⽆效的⽤户凭据时它的反应。15. 什么是移动应⽤测试,它与移动测试有何不同?测试为⼿持移动设备制作的应⽤程序软件的功能、可⽤性和⼀致性的做法称为移动应⽤程序测试。移动应⽤程序测试可以通过两种⽅式完成:⾃动或⼿动。它与移动测试不同,移动测试侧重于移动设备的原⽣应⽤程序功能,例如通话、短信和媒体播放器等。同时,在移动应⽤测试中,我们只关注特定应⽤的操作和端到端的特性。16.解释Appium使⽤的JSON Wire协议。JSON Wire Protocol 是交换客户端和服务器数据的⽅法。它是由 WebDriver 的开发⼈员创建的。根据他们的说法,该协议由⼀组通过RESTful API 提供给客户端的标准化端点组成。这使 webdriver 能够与服务器和客户端通信,以⾃动执⾏任务。在该协议中,JSON ⽤于在服务器和客户端之间传输数据。在将对象交付给服务器之前,客户端(或运⾏ WebDriver API 的计算机)将其转换为 JSON 对象。JSON 对象由服务器解析并转换回 JavaScript 对象。响应对象由服务器转换为 JSON 字符串并返回给客户端。为了使⽤,客户端将 JSON 字符串转换为JavaScript 对象。在上图中,我们可以看到客户端和服务器通过 JSON 有线协议相互通信。服务器向 appium 服务器发送请求以运⾏测试,appium 服务器将响应发送回主服务器。Appium 使⽤移动 JSON Wire 协议,它是 Selenium JSON Wire 协议的扩展。除了建⽴通信流外,它还⽤于规范其他⼿机⾏为。17.在Appium的上下⽂中解释Appium Session。Appium 会话是向特定测试应⽤程序发送命令的媒介。命令总是在会话的上下⽂中执⾏。在执⾏任何命令之前,客户端使⽤会话标识符作为sessionId 参数。客户端库从服务器请求会话。之后,服务器将返回⼀个 sessionId 端点,该端点可⽤于提交其他命令以与正在测试的应⽤程序进⾏交互。每个“测试”都包含在⼀个会话中。鉴于 Appium 是⼀个简单的基于客户端和服务器的⽅法,这是不⾔⽽喻的。发布请求,也称为会话请求,由客户端发送到服务器。这些查询使⽤ JSON Wire Protocol 以 JSON 对象格式通信和传达信息。18. 在 Appium 的上下⽂中解释所需的能⼒。在 iOS 和 Android 上,Appium 的⾏为不同。因为它是⼀个“跨平台”的⼯具,所以必须有⼀种⽅法来区分两个操作系统的会话请求。JSON对象,称为 Desired Capabilities,被引⼊来解决这个特定的问题陈述。所需功能是键值对数据,将 Android 应⽤程序测试会话的建⽴与 iOS 应⽤程序测试会话的建⽴区分开来。使⽤ platformName、deviceName、appPackage 和 appActivity 等参数,服务器将能够⾮常快速地分辨出两个操作系统之间的区别。19. 测试⼈员在使⽤ Appium 时可以在多线程环境中运⾏测试吗?是的,Appium 允许测试⼈员在多线程环境中执⾏测试。他们唯⼀需要担⼼的是不能同时针对同⼀个 Appium 服务器运⾏⼀个测试。20. 是否可以在运⾏ Appium 测试时使⽤ JavaScript 与应⽤程序交互?是的,我们可以在运⾏ Appium 测试时使⽤ javascript 与应⽤程序交互。当我们在 Appium 上执⾏指令时,服务器会将封装在匿名函数中的脚本传输到我们的应⽤程序,然后执⾏。21. Appium Package master是什么意思?你将如何创建⼀个包?Appium Package master 是指⼀组⽤于创建和管理 Appium 包的⼯具。要创建⼀个新的 Appium 包,我们可以使⽤以下代码⾏://For es7/ babelGulp create-package -n
发布评论