自动化测试是一种使用自动化工具编写和执行测试人员测试脚本和案例的技术。
自动化测试的主要目标是减少手动运行的测试用例数量,而不是完全取消手动测试。
什么时候自动化测试?
在以下情况下首选自动化:
- 重复性任务
- 烟雾和理智测试
- 使用多个数据集进行测试
- 回归测试用例
- 通常,决定基于ROI(投资回报率)
什么时候不自动化测试?
人们不应该在以下情况下自动化:
- 当受测试的应用程序频繁更改时
- 一次测试案例
- 临时 - 随机测试
自动化过程涉及哪些步骤?
在自动化过程中,涉及的步骤是
- 选择测试工具
- 定义自动化范围
- 规划,设计和开发
- 测试执行
- 保养
规划自动化阶段时涉及的要点是什么?
在自动化的规划阶段,必须考虑的事项是
- 选择“正确”的自动化工具
- 如果选择自动化框架
- 范围内和自动范围外的项目列表
- 测试环境设置
- 为测试脚本开发和执行准备项目时间表的授予图表。
- 确定测试可交付成果
在什么条件下我们不能使用Agile方法的自动化测试?
在以下条件下,自动化测试对敏捷方法无用
- 当敏捷测试总是要求改变需求时
- 当敏捷需要详尽的文档级别时
- 仅适用于敏捷测试期间的回归测试,如持续集成
良好的自动化工具的主要特征是什么?
- 测试环境支持且易于使用
- 良好的调试设施
- 强大的物体识别
- 对象和图像测试能力
- 对象识别
- 测试数据库
- 支持多个框架
软件自动化测试中使用的框架有哪些类型?
在软件自动化测试中使用了四种类型的框架
- 数据驱动的自动化框架
- 关键字驱动的自动化框架
- 模块化自动化框架
- 混合自动化框架
执行自动化测试时的脚本标准是什么?
在编写用于自动化的脚本时,您必须考虑以下事项:
- 统一命名约定
- 每10行代码3行注释
- 足够的缩进
- 强大的错误处理和恢复方案
- 尽可能使用框架
受欢迎的自动化测试工具?
QTP(HP UFT)、Selenium、Robot Framework、appium...
您可以在什么基础上绘制自动化测试的成功图?
通过遵循标准,可以映射自动化测试的成功
- 缺陷检测率
- 自动化执行时间和时间节省以释放产品
- 减少人工和其他费用
可以列出手动测试的一些缺点吗?
- 手动软件测试需要更多时间和更多资源。
- 不准确
- 反复执行相同的测试用例容易出错并且很无聊。
- 在非常大的项目和有时限的项目上进行手动测试是不切实际的。
对Selenium的了解
Selenium是一个免费的(开源)Test Suite框架。它用于自动化Web和移动环境。它包括
Selenium IDE(浏览器插件 - 录制和播放工具)
Selenium WebDriver
Selenium Grid(分布式测试)
Selenium支持Java,C#,Python,Ruby,PHP,Perl,Javascript等语言的脚本编写。
告诉我有关QTP的信息
QTP(Quick Test Professional)现在称为HP UFT。它是一种商业自动化工具,支持各种测试环境Web,桌面,SAP,Delphi,Net,ActiveX,Flex,Java,Oracle,Mobile,PeopleSoft,PowerBuilder,Siebel,Stingray,Visual Basic等。
QTP的突出特点包括业务流程测试,关键字驱动框架,XML支持,强大的检查点,测试结果。
- TestNG的注释非常强大和方便
- TestNG允许并行测试
- TestNG可以给予group方式执行测试
- TestNG可以生成测试报表,并且报表展示多样化,可以在其基础上自行开发测试报告,插件以及测试监听器等
什么是断言
断言assert 用于代码中验证实际结果符合预期结果,如果测试用例失败,则抛出异常并且提供断言日志
什么是web自动化
指的是从UI界面,也就是用户界面层面进行的自动化测试,测试人员通过编程自动化的程序也就是自动化脚本实现打开界面,操作界面的业务逻辑
写出selenium 中你最熟悉的接口或者类
WebDriver InternetExplorerDriver FirefoxDriver ChromeDriver WebElement WebDriverWait By
元素定位的类型有哪些
By.id() By.name() By.xpath() By.classname() By.tagName() By.cssSelector() By.linkText() By.partialLinkText() By.xpath()
Xpath 是什么?
是web页面元素定位的一种方式,相当于元素dom中的一个路径,可以采用绝对路径和相对路径的方式进行定位,对于定位页面元素有很大的帮助,同时需谨慎使用,当页面结果发生变化,那么定位信息也可能需要变化
findElement()和findElements()方法有什么区别
两个都是查找元素的方式
findElement()查找一个页面元素,只会返回WebElement对象
findElements()查找页面是所有符合匹配的元素,返回元素集合
登录按钮除了click方法还有其他方式吗?
submit() ,前提是input元素的type 为submit
简述你知道的延迟等待方式
硬性等待,也叫线程等待,通过休眠的方式完成等待如等待5秒Thead.sleep(5000)
隐式等待,通过imlicitlyWait完成延时等待,这种事针对全局设置的等待,如设置超市10秒,使用imlicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环查找元素,如果超时间10秒还没有找到,则抛出异常
显式等待,智能等待,针对指定元素定位指定等待时间,指定的范围内进行元素查找,找到元素则直接返回,超时没有找到元素则抛出异常
如何提高selenium脚本的执行速度
- 优化等待时间,使用WebDriverWait智能等待代替 线性等待sleep和隐式等待imlicitlyWait
- 减少不必要的操作
- 在服务器允许的情况下,使用多线程实现并发执行测试用例
怎么对含有验证码的功能进行自动化测试
图像识,难度大,效果不好不推荐
屏蔽验证码,邀请开发处理,在测试环境,预发和正式环境恢复
万能验证码,使用复杂的其他人无法猜到的验证码
如何验证复选按钮是不是被选中
可以使用元素的is Selected()方法,如果返回的是true则说明被选中,否则表明未被选中
如何处理alert 弹窗?
先定位跳转到alert上,然后点击确认或取消
Alert alert = dirver.swichTo().alert();//切换到alert
alert.accept();//确定
alert.dismiss();//
如何用webdriver进行鼠标右键点击操作
使用Actions 类
Actions actions = new Actions(driver)
actions.moveToElement(element).perform();
actions.contextClick.perform();
如何使用webdriver 执行拖拽 的操作
还是使用actions类
Actions actions = new Actions(driver)
WebElement element1 = driver.findElement(by);
WebElement element2 = driver.findElement(by);
actions.dragAndDrop(element1,element2)perform();
举一个WebDriver中方法重载的例子
frame(string, name), frame(int index), frame(Web Element element)
下拉菜单如何选择一个菜单项?
如果下拉菜单是Select 标签,使用方法;Select By Value() 或者SelectByIndex()或者Select ByVisibleText()即可
如果这个下拉菜单不是通过Select标签创建,则直接通过xpath 定位元素然后去点击选择
自动化测试分为哪几类
&l