29个Selenium常见面试问题和答案
软件应用在最终交付给最终用户之前需要经过多个阶段。
测试是软件开发生命周期(SDLC)中最重要的部分之一,因为它可以识别错误并检查应用程序是否按预期工作。
过去,软件测试人员使用手动测试技术。然而,手动测试耗时且存在其他各种挑战。Selenium的创建就是为了自动化测试。
Selenium现在是市场领导者,大多数软件测试人员已经在使用它。如果你想得到软件测试人员的工作,掌握常见的Selenium面试问题将使你在其他求职者中具有竞争优势。
以下是你可能遇到的Selenium面试问题和答案:
什么是自动化测试?
简单来说,自动化测试是使用自动化测试套件或在无需人工干预的情况下编写和执行软件测试的过程。自动化测试允许测试人员使用单独的工具重复执行测试任务。
自动化测试的好处有哪些?
- 节省时间和金钱。如果你必须支付手动测试人员,软件测试可能会很昂贵。从长远来看,自动化测试可能更便宜。
- 促进代码复用。你可以设置一次测试,然后重复执行。
- 减少人为错误,提高准确性。
- 适用于大规模应用。测试小型应用程序可以很简单地进行手动测试。然而,随着应用规模的扩大,自动化测试工具将变得非常有用。
什么是Selenium?
Selenium是一个免费的基于Web UI的自动化测试套件,由Jason Huggins于2004年开发。强大的社区使得Selenium成为最受欢迎的自动化软件测试套件之一。Selenium套件可以在各种浏览器和平台上使用。
Selenium有哪些不同的形式?
Selenium不仅是一个测试工具,而且是一套包含多个工具的套件。以下是Selenium的不同形式:
- Selenium集成开发环境(IDE)
- Selenium WebDriver
- Selenium远程控制器(RC)
- Selenium Grid
Selenium支持哪些编程语言?
- Python
- Java
- C-Sharp
- JavaScript
- Ruby
- PHP
- Perl
Selenium支持哪些测试类型?
- Regression Testing
- 功能测试
什么是Selenium WebDriver?
Selenium WebDriver负责与Web浏览器进行通信。这个工具还依赖于其本地兼容性来自动化各种任务。
什么是Selenium IDE?
Selenium IDE是一个Firefox插件,充当录制和回放工具。该插件的创建是为了加快自动化脚本的创建速度。
什么是Selenium Grid?
这个工具允许用户同时将测试执行分布到多个环境和平台。
什么是Selenium RC(远程控制)?
RC是一个工具,允许用户在他们希望的编程语言中创建测试脚本。这个工具还允许用户在广泛的浏览器中执行测试脚本。
Selenese是什么意思?
Selenium IDE有一种语言叫做Selenese,用于编写Selenium命令。这些命令帮助Selenium理解要执行的操作或动作。
Selenese有哪些类型?
- 操作。这些是用于操作应用程序状态的命令。'在此框中输入'和'点击此链接'是操作的示例。
- 访问器。这些命令访问应用程序的状态并将结果存储在变量中。
- 断言。这些命令使测试人员能够验证应用程序的状态。
在Selenium中定位元素的方法有哪些?
- ID
- ClassName
- Name
- TagName
- LinkText
- PartialLinkText
- Xpath
- CSS选择器
- DOM
什么是XPath?
XPath根据其可扩展标记语言路径定位Web元素。XML存储、组织和传输任意数据。
XPath中的“/”和“//”有什么区别?
“/”或单斜杠创建具有绝对路径的XPath。因此,XPath是从起始节点/文档节点开始进行选择的。
“//”或双斜杠用于创建具有相对路径的XPath。因此,创建的XPath从文档中的任何位置开始进行选择。
什么是绝对XPath?
绝对XPath以单斜杠“/”开头。此类路径从根到要识别的元素具有完整路径。
区分findElement()和findElements()
- findElements():使用给定的定位机制在当前页面上查找所有元素,并返回所有Web元素的列表。
- findElement():使用给定的定位机制在当前页面上查找第一个元素,并返回单个Web元素。
Selenium中使用的哪些注解类型?
- BeforeSuite
- BeforeTest
- BeforeClass
- BeforeMethod
- Test Case
- AfterMethod
- AfterClass
- AfterTest
- AfterSuite
Selenium中的断言是什么?
断言确定应用程序是否按预期工作。如果断言失败,测试用例失败,执行停止。
Assert和Verify命令有什么区别?
- Assert:如果断言条件为真,则程序将继续执行下一个测试步骤。但是,如果条件为假,则执行停止,不会执行其他测试。
- Verify:无论验证条件是真还是假,测试执行都将继续。
什么是同源策略,Selenium如何处理它?
同源策略可以描述为一种安全机制,限制了由特定来源加载的脚本或文档与来自另一个来源的资源交互的方式。这种方法有助于隔离恶意脚本。
Selenium使用代理注入方法实现同源策略。在这个设置中,Selenium服务器将充当在测试应用程序和浏览器之间的客户端配置的代理,此代理注入将通过虚构的URL掩盖AUT。
Selenium IDE中的暂停功能是什么?
暂停是Selenium IDE中的等待命令,它延迟自动化测试的执行一段指定的时间。等待以毫秒为单位表示,如果要等待3秒,应输入3000。
Selenium IDE测试失败的原因是什么?
- 异步网站。Selenium测试是按照一定顺序创建的。然而,有些网站是基于异步架构的,有时候,响应的顺序并不一致。
- 超时。在等待组件加载时,Selenium可能会失败。可以使用“等待”来处理此类错误。
- 错误。Selenium一直在不断改进。然而,有时候可能会遇到一些错误,这些错误可能导致测试失败。
- 源代码的小改动。如果检查到定位器的更改,则所有指向该定位器的测试都可能失败。
什么是TestNG,它的一些特点是什么?
TestNG是一个受JUnit和NUnit启发的测试自动化框架。NG代表Next Generation,它是一个开源免费的工具。
以下是TestNG的一些特点:
- 具有不同类型的断言。
- 允许用户并行运行测试。
- 您可以使用“dependsOnMethods”和“dependsOnGroups”属性使测试相互依赖。
- 进行数据驱动的测试。
- 您可以对各种测试进行分组。
隐式等待和显式等待有什么区别?
- 隐式等待告诉WebDriver在抛出异常之前等待一段时间。默认值为0,一旦设置了时间,WebDriver将等待直到时间到期才抛出异常。
- 显式等待在抛出“ElementNotVisibleException”异常之前,告诉WebDriver在满足某些条件或ExpectedConditions之前等待。显式等待是一种只适用于指定元素的“智能”等待。
什么是对象存储库?
对象存储库是自动化GUI测试脚本中的一组键值对集合,可以减轻测试脚本维护的负担。在这种情况下,键是标识对象的逻辑名称,值是带有唯一属性的对象的属性,用于标识屏幕上的对象。
它还是存储和管理所有数据的中央位置。
在Selenium Web Driver中可能遇到哪些不同的异常?
异常是程序或软件应用执行过程中可能发生的异常或异常事件。它也可以被描述为干扰或影响常规程序流程的意外事件或结果的运行时错误。
以下是Selenium Web Driver中的主要异常:
- NoSuchWindowException。WebDriver尝试切换到无效(不可用)的窗口。
- NoSuchElementException。当无法访问元素时发生。
- NoAlertPresentException。在尝试切换到未显示的警报时发生此异常。
- TimeoutException。特定命令没有在指定的时间内完成。
- ElementNotVisibleException。
- ElementNotSelectableException。当元素被禁用(无法选择或单击)时发生此异常,尽管该元素在DOM中可用。
- SessionNotFoundException。在关闭浏览器后,WebDriver立即发生此异常。
列出不同类型的定位器
- Id
- Name
- className
- tagName
- linkText
- partialLinkText
- CSS选择器
- XPath
什么是断点和起始点?
- 起始点显示代码应该从哪里开始执行。起始点可以用于从代码中间或断点处运行测试脚本。
- 断点用于停止代码执行。断点用于验证代码是否按预期工作。
总结
以上是您在下一次测试自动化工程师职位面试中可能会遇到的一些问题。在申请测试自动化工程师角色之前,请确保您具备必要的技能。