jmeter自动化测试步骤_对答如流!面试官常考的Selenium Web自动化面试题总结(下篇)...

本文深入探讨了自动化测试面试中的常见问题,重点关注Selenium处理Web弹窗、触发鼠标悬停事件、获取CSS属性、截图等操作。此外,还介绍了自动化测试框架的选择与优势,如SeleniumGrid的使用场景和Selenium的局限性。文中列举了多种测试框架类型,并提及了JUnit和TestNG的注释与用法,强调了自动化测试在提升测试效率和代码复用性方面的价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

29868f438e0a7d2c8f1498c16780eb25.gif

出品 | 51Testing软件测试网

在上一篇分享中,给大家带来了selenium核心技术点在笔试/面试中的常见题型,本篇将继续深入探究自动化测试相关面试点,如果说selenium是一款web自动化测试不可缺的“武器”,那就需要安装到合适的装置上,才能尽情发挥其优势,在自动化测试中,所谓的“合适装置”即:自动化测试框架的选取,自动化框架必备面试问答将是此次分享的重点。

4bebfdf5f6e89532ac972ad389c8ad8c.gif

Selenium WEB自动化技术深入掌握

Q

如何处理基于Web的弹出窗口?

A:WebDriver中提供了专门用于处理Alert弹框的API,包含四种常用方法:

(1) void dismiss(): 单击弹出窗口中的“取消”按钮;

(2) void accept(): 单击弹出窗口中的“确定”按钮;

(3) String getText(): 返回显示在Alert框中的文本;

(4) void sendKeys(String stringToSend): 以字符串形式输入内容至Alert框中。

Sample code:

// 单击弹出窗口中的“确定”按钮Alert alert = driver.switchTo().alert();alert.accept();

Q

如何通过WebDriver触发鼠标悬停事件?

A:WebDriver提供了广泛的交互应用API,用户可以利用这些API自动触发鼠标/键盘事件。Action API就是这样一种交互性应用API,它可以模拟单个用户的交互动作。

例如我们可以通过Action API将鼠标悬停在某个下拉菜单上,然后打开其中的选项列表。

Sample Code:

// 初始化Action APIActions actions=new Actions(driver);// 鼠标悬停的到下拉菜单上actions.moveToElement(driver.findElement(By.id("下拉菜单的ID"))).perform();// 定位并点击下拉菜单中某个选项WebElement  subLinkOption = driver.findElement(By.id("某选项的ID"));subLinkOption.click();

Q

如何获取元素的CSS属性?

A:通过get() 方法获取web元素css的属性值。

例如获取某web元素CSS中“font-size”的属性值:

driver.findElement(By.id(“某元素ID“)).getCssValue(“font-size”);

Q

WebDriver中如何捕获屏幕截图?

WebDriver中如何捕获屏幕截图?

答:通过selenium提供的TakesScreenshot和OutputType 完成屏幕截图。

Sample Code:

// 获取截屏File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);// 将截屏保存到指位置FileUtils.copyFile(scrFile, new File("C:\\CaptureScreenshot\\sample.jpg"))

Q

web测试中如何验证网页标题是否正确?

A:可以结合junit/testNG中的断言。

// 验证页面标题内容是否正确assertTrue(“验证当前页面标题正确性:”,driver.getTitle().equals(“预期页面标题内容”));

Q

selenium如何处理基于Windows的弹出窗口?

A:Selenium仅支持Web应用程序测试,不支持基于Windows的应用程序。但可以通过一些第三方工具处理windows弹框,例如AutoIT,Robot。

Q

什么时候应该使用Selenium Grid?

A:Selenium Grid能在多个平台和浏览器上同时执行相同/不同的测试脚本,从而实现分布式测试执行,Selenium Grid在不同环境下执行测试脚本的特性,可以大大节省自动化测试的执行时间,大幅提高效率。

Q

列举Selenium的局限性有哪些?

A:Selenium有以下不足之处:

(1) Selenium仅支持基于Web的应用程序的测试;

(2) 无法使用Selenium测试移动应用程序,可以选择Appium进行移动端功能测试;

(3) 验证码和条形码阅读器无法使用Selenium进行测试;

(4) Selenium本身不具有生成测试报告的功能,以JAVA为例,需要结合第三方框架如TestNG或JUnit来生成测试报告。

4bebfdf5f6e89532ac972ad389c8ad8c.gif

自动化测试框架相关知识点技能

Q

自动化测试框架的优势有哪些?

A:优势主要包括:

(1) 代码的可重用性;

(2) 尽可能确保最大测试覆盖率;

(3) 场景可恢复性;

(4) 低廉的后期维护成本;

(5) 尽可能减少人工干预;

(6) 自动生成测试报告。

Q

你了解哪些不同类型的测试框架?

A:比较常见的测试框架种类如下:

(1) 基于模块(module)的测试框架:这类框架将整个“被测应用程序”按逻辑性划分为若干个独立模块。对于每个模块,我们创建一个独立的测试脚本。因此,当这些测试脚本合在一起时,就构建成一个更大的测试脚本,对应了更大范围内的逻辑独立性模块;

(2) 库级别(library)的测试框架:基本原理是先确定通用步骤,然后将它们按组进行封装,封装成库函数,任何时候,如有需要,可以在测试脚本中随时调用这些库函数;

(3) 数据驱动(DDT)测试框架:DDT框架旨在将测试数据从业务逻辑脚本中独立出来,从而使用户可以将测试数据存储到外部数据库/配置文件中,测试数据一般按“键值”对存储居多,在测试脚本中可以通过测试数据的key, 来获取实际的value;

(4) 关键字驱动(Key)测试框架:是对数据驱动的测试框架的扩展,从某种意义上说,它不仅将测试数据与脚本分离,还将测试脚本按业务拆分,单独封装,即每一个关键字,就是一个业务,关键字驱动下的业务拆分粒度的精细程度可按实际项目需求来确定, 例如一个简单的登录业务可以封装成一个login关键字,一个完整的购物流程同杨也能封装成一个purchase关键字。

Q

常见的Junit注释?

A:Junit注释主要包含如下几种:

(1) @Test:告知系统被注释为“@Test”的方法是一种测试方法。一个测试脚本中可以有多个测试方法;

(2) @Before:该方法应在每个测试方法被执行之前执行;

(3) @After:该方法应在每个测试方法之后再被执行;

(4) @BeforeClass:此方法在当前测试类中所有测试方法执行之前,先被执行一次;

(5) @AfterClass:此方法在当前测试类中所有测试方法都执行完毕后,最后被执行一次;

(6) @Ignore:告知系统不执行此测试方法。

Q

TestNG比Junit更好吗?

A:TestNG是一个开源代码框架,对比Junit主要优势如下:

(1) 大大扩展了注释范围和类别;

(2) 可以设置执行模式;

(3) 支持并发执行测试脚本;

(4) 可以设置测试用例依赖性。

Q

如何在TestNG中设置测试用例优先级?

A:以如下代码为例,进行优先级的设置:

import org.testng.annotations.*;public class SettingPriority {@Test(priority=1)public void method1() {}@Test(priority=2)public void method2() {}@Test(priority=0)public void method3() {}}

测试执行顺序为:method3 ——》method1 ——》method2

Q

断言(assert)和验证(verify)之间有什么区别?

A:断言(assert)用于检查给定条件是否满足,即True or False;假设我们断言某给定元素是否存在于页面上。如果条件为真True,则程序将执行下一个测试步骤,但如果条件为假False,则程序将停止执行,并且不再往下执行后续的测试步骤。

验证(verify) 同样是检查给定条件是对还是错,即True or False;不同的是,不管条件是否满足,程序的执行都不会停止,即验证过程中的任何失败都不会停止当前的程序执行,并且所有测试步骤都将被执行到。

4bebfdf5f6e89532ac972ad389c8ad8c.gif

总结

综合上下两篇,分别从Selenium核心要点,测试框架的认知及运用等方面进行了web自动化测试中面试或笔试常被问及的技术点, 大家可以在准备相关面试前将此文当作面试备考题的一部分,在大脑中自行过一遍,相信或多或少都能帮到你。当然,成功的面试不仅需要“考前突击”,更重要的还是平日里技术经验的积累,希望本次分享能够帮到即将面试的你,通过自己的努力披荆斩棘,拿到心仪的OFFER。

31664e511a93f32bc4c702e35f924b9a.gif

51Testing测试交流群,欢迎大家加入!每日分享测试干货+技术交流加下方小姐姐,可领取干货&加群备注【领资料】即可~

51b629e4e2153e89dd7bf05c0272c6b4.png

62338ef60d239fa89db125dc171f75ff.gifEND07ee4e05ed35c9c24109e909de2b68c8.gif

66cb623037695748c7b172b9f49595f4.gif

推荐阅读

点击阅读☞3个步骤,轻松实现web自动化测试!

点击阅读☞Robotframe Work之Web自动化测试小例子

点击阅读☞RobotFrameWork Web自动化测试环境是如何搭建的?

点击阅读☞JavaScript在Web自动化测试中的作用

点击阅读☞JMeter如何联合Selenium WebDriver进行自动化测试?

5e41c51249d7a3c05ecfe615af59a348.gif

6c79b0c15cb4338e47f29f1c1567e64e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值