1.解释什么是Appium?
答案:一款应用于移动端的自动化测试框架,支持跨平台应用,Native、Hybird、Mobile Web都支持。跨平台只要一套代码、不需要设置签名,不污染源代码、不需要项目源代码就可以测试、多语言支持、可支持多种通用框架、完全开源,社区活跃
2.列出使用Appium的局限性?
答案:Appium不支持Android版本低于4.2的测试有限的支持混合应用程序测试。 例如,不可能将应用程序从Web应用程序的切换动作测试为本机,反之亦然,不支持在Microsoft Windows上运行Appium Inspector
3.解释移动应用程序中如何查找DOM元素或xPath?
答案:要找到DOM元素,使用“UIAutomateviewer”来查找Android应用程序的DOM元素。
4.解释Appium的设计理念?
答案:Appium是使用Node.js平台编写的“HTTP Server”,并使用Webdriver JSON线协议驱动iOS和Android会话。 因此,在初始化Appium Server之前,必须在系统上预先安装Node.js 当Appium被下载并安装时,在我们的机器上设置一个暴露REST API的服务器
它从客户端接收连接和命令请求,并在移动设备(Android / iOS)上执行该命令,
它响应HTTP响应。 再次,为了执行此请求,它使用移动测试自动化框架来驱动应用程序的用户界面。 框架像Apple Instruments for iOS(仅适用于Xcode 3.0或更高版本的OS X v10.5及更高版本)适用于Android API的Google UIAutomator 16级或更高版本
Selendroid for Android API等级在15以下。
5.解释App的利弊?
答案:优点:
对于程序员而言,无论平台如何,他都在自动化(Android或iOS),所有的复杂性都将保留在单一的Appium服务器上它打开跨平台移动测试的大门,这意味着相同的测试可以在多个平台上工作,Appium在您的应用程序中不需要额外的组件,使其自动化友好,它可以自动化Hybrid,Web和Native移动应用程序
缺点:
使用Appium可以同时在多个iOS模拟器上运行脚本
它使用UIAutomator for Android Automation,它仅支持Android SDK平台,API 16或更高版本,对于较低版本的API,Appium并不支持,我们需要使用另一个名为Selendroid的开源库。
7.提到编写Appium测试的基本要求是什么?
答案:驱动程序客户端:Appium驱动移动应用程序,就像它是用户一样。 使用客户端库编写您的Appium测试,其中包含您的测试步骤,并通过HTTP发送到Appium服务器。
应用会话:您必须首先初始化一个会话,因为这样的测试会在会话中进行。 一旦自动化完成一个会话,它可以结束并等待另一个会话
所需功能:要初始化Appium会话,您需要定义名为“所需功能”的某些参数,如PlatformName,PlatformVersion,设备名称等。 它指定了从Appium服务器需要的自动化类型。
驱动程序命令:您可以使用大型和表达式的命令词汇编写测试步骤。
8.提到使用Appium可能遇到的错误是什么?
答案:在Appium中可能出现的错误包括
错误1:需要以下所需的功能,但不提供:设备名称,platformName
错误2:找不到adb。请使用Android SDK根目录路径设置ANDROID_HOME环境变量
错误3:openqa.selenium.SessionNotCreatedException:无法创建新的会话
错误4:如何在移动应用程序中查找DOM元素或XPath?
9.您需要一台服务器机器来运行Appium上的测试?
答案:不,您不需要服务器机器在Appium上运行测试。 Appium促进了一个2层架构,其中测试机连接到运行Appium的测试服务器并自动化整个事情。您可以在运行测试的同一台机器上运行Appium。
10.当我使用Appium进行测试时,是否可以使用Javascript与我的应用进行交互?
是的,可以使用Javascript与App进行交互。当命令在Appium上运行时,服务器会将脚本发送到您的应用程序,并将其包装成一个要执行的匿名函数。
11.提到使用Appium测试最困难的场景是什么?
答案:使用Appium测试最困难的情况是数据交换。
12.使用Appium可以在多线程环境中运行我的测试?
是的,您可以在多线程环境中运行测试,但必须确保同一个Appium服务器同时运行不超过一个测试。
13.在Android中,您需要一个应用程序的.apk来自动化使用Appium,还需要在我的工作区中的应用程序?
答案:在Android中,您只需要.apk文件即可自动使用Appium。
14.解释什么是Appium包主机?如何创建包?
答案:Appium包主机是一套管理和创建应用程序包的工具。例如创建包可以使用代码
#使用es7 / babe1
Gulp create-package -n <package-name>
15.appium的哲理是:
用Appium自动化测试不需要重新编译App;
支持很多语言来编写测试脚本,Java、Javascript、PHP、Python、C#、Ruby等主流语言;
不需要为了自动化测试来重造轮子,因为扩展了WebDriver。(WebDriver是测试WebApps的一种简单、快速的自动化测试框架,所以有Web自动化测试经验的测试人员可以直接上手);
移动端自动化测试应该是开源的;
如果对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。感兴趣可以175317069,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。
16.appium的设计理念:
Client/Server架构,运行的时候Server端会监听Client端发过来的命令,翻译这些命令发送给移动设备或模拟器,然后移动设备或模拟器做出响应的反应。正是因为这种架构,所以Client可以使用Appium client libraries多种语言的测试脚本,而且Server端完全可以部署在服务器上,甚至云服务器。
Session,每个Client连接到Server以后都会有一个Session ID,而且Client发送命令到Server端都需要这个Session ID,因为这个seesion id代表了你所打开的浏览器或者是移动设备的模拟器。所以你甚至可以打开N个Session,同时测试不同的设备或模拟器。
Desired Capabilities,其实就是一个键值对,设置一些测试的相关信息来告诉Server端,我们需要测试iOS、还是Android,或者换是WebApp等信息。
Appium Server是Node.js写的,所以可以直接用NPM来进行安装。
Appium Clients,Mac OS和Win下提供GUI,不需要装Node.js,方便测试人员操作。
17.appium相关限制:
如果你在Windows使用Appium,你没法使用预编译专用于OS X的.app文件,因为Appium依赖OS X专用的库来支持iOS测试,所以在Windows平台你不能测试iOS Apps。这意味着你只能通过在Mac上来运行iOS测试b.它的哲理是:
用Appium自动化测试不需要重新编译App;
支持很多语言来编写测试脚本,Java、Javascript、PHP、Python、C#、Ruby等主流语言;
不需要为了自动化测试来重造轮子,因为扩展了WebDriver。(WebDriver是测试WebApps的一种简单、快速的自动化测试框架,所以有Web自动化测试经验的测试人员可以直接上手);
移动端自动化测试应该是开源的;