自动化测试面试题

什么是自动化测试

一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件,自动化测试是一种使用自动化工具编写和执行测试脚本和案例的技术,自动化应处理测试过程中那些基本的逻辑算法的部分和劳力密集的部分。这将使软件工程师有更多的时间去做价值更高的测试工作

自动化测试分为哪几类

接口自动化测试,WebUI自动化测试,App自动化测试
这几天会陆续整理这部分的学习笔记

什么时候会用到自动化测试

从工作的角度来看,互联网行业需要反复快速,人员流动相对较快。因此,从发布到上线可能迫在眉睫,其影响范围可能不明确。在上线之前,它必须对原有功能进行回归测试。无论是接口还是客户端,都需要大量的测试工作,测试用例量也非常大,手工测试的工作繁琐单调,无法保证效率和质量,所以它必须是通过非人为手段实现的,这个时候会用到自动化测试

自动化过程涉及哪些步骤

分析测试需求
制订测试计划
设计测试用例
搭建测试环境
编写并执行测试脚本
分析测试结果、记录测试问题
跟踪测试Bug

简述你了解的延迟等待的方式

硬性等待,也叫线程等待,通过休眠的方式完成等待:如等待5秒Thead.sleep(5000)
隐式等待,通过imlicitlyWait完成延时等待,这种事针对全局设置的等待,如设置超时10秒,使用imlicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环查找元素,如果超时间10秒还没有找到,则抛出异常
显式等待,智能等待,针对指定元素定位指定等待时间,指定的范围内进行元素查找,找到元素则直接返回,超时没有找到元素则抛出异常

如何设计出一个高质量的自动化脚本

使用四层结构实现业务逻辑、脚本、数据分离
使用PO设计模式,将一个页面用到的元素和操作步骤封装在一个页面类中。如果一个元素定位发生了改变,我们只用修改这个页面的元素属性
对于页面类的方法,我们尽量从客户的正向逻辑去分析,方法中是一个独立场景,例如:登录到退出,而且不要想着把所有的步骤都封装在一个方法中
测试用例设计中,减少测试用例之间的耦合度

良好的自动化测试工具的特征是什么

测试环境支持且易于使用
良好的调试设施
强大的物体识别
对象和图像测试能力
对象识别
测试数据库
支持多个框架

简述你知道的自动化测试工具

QTP

全名HP QuickTest Professional software ,最新的版本为HP QuickTest
WebUI自动化测试
使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。

Appium

AppUI自动化测试
Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 HTTP 响应中返还给客户端。

Selenium

WebUI自动化测试
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。其升级版本为Webdriver。

Jenkins

持续集成
自动化构建 编译,部署,任务执行,测试报告,邮件通知等。

手动测试的缺点是什么

手工测试缺点:
重复的手工回归测试,代价昂贵、容易出错。
依赖于软件测试人员的能力。

如何提高selenium脚本的执行速度

尽量减少不必要的操作:可以直接访问页面的,不要通过点击操作访问
中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载
实现多线程
尽量使用by_css_selector()方法:by_css_selector()方法的执行速度比by_id()方法的更快
使用等待时,尽量使用显示等待,少用sleep(),尽量不用隐式等待
并发执行测试用例:同时执行多条测试用例,降低用例间的耦合

Selenium 元素定位的类型有哪些

By.id() By.name() By.xpath() By.classname() By.tagName() By.cssSelector() By.linkText() By.partialLinkText() By.xpath()

什么是断言

断言(assert):测试将会在检查失败时停止,并不运行后续的检查
可以直截了当的看到检查是否通过
检查失败后,后续检查不会执行,无法收集那些检查结果状态

Xpath是什么

XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航
在这个之前,我们要了解 HTML / XHTML XML / XML 命名空间

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值