精选自动化测试面试题
1、自动化测试基础
1、公司如何把自动化测试在项目中开展起来?
项目组调研自动化(选择工具)---》开会演示demo(例子)---》在项目中开展自动化 ---》把该项目的自动化流程、框架固化成文档 ---》推广到公司的其它项目组应用
2、描述公司自动化测试流程?
编写自动化测试计划 ---》设计自动化测试用例 ---》编写自动化测试脚本 ---》调试并维护脚本 ---》无人值守测试 ---》后期维护(添加用例、开发更新版本)
3、自动化测试用例如何编写?
- 方式一:自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录 ---》完成一个业务 ---》退出)。
- 方式二:从功能测试用例中进行筛选或由业务人员、功能测试人员提供。
4、上一个项目中自动化测试的执行策略?
上一个项目中是定时执行的,一般设置的执行时间是晚上和周末,执行完毕会自动发送邮件通知。
5、自动化测试发现的 BUG 多吗?
不多,因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,它主要是保证已经测试通过的功能在新版本更新后也很稳定,不会产生功能错误。
6、在上一家公司你是如何开展自动化测试的?
在进上家公司之前,我有一点 Java/python 代码基础,也简单学习过自动化,加入公司之后,组长做了一些岗前培训(代码规范、自动化测试框架组成等),实际做自动化测试过程中,根据组长的分工,编写相应的自动化测试脚本放到指定位置、自测没问题提交到 git 上进行管理,中途遇到问题就上网解决或找组长解决。
7、自动化测试的价值在哪里?你们公司为什么要做自动化测试?
引用自动化测试之后,能代替繁琐的手工测试工作,节省出来的时间把业务测试人员尽量集中测试复杂的业务功能模块。自动化测试一般是对固化下来的功能进行自动化,保证不会因为产品的更新导致之前固化下来的功能出现 BUG。
8、自动化测试产生误报怎么办?
误报就是指自动化测试发现了 BUG,实际通过手工测试确认又不存在该 BUG。
误报原因: 元素识别不稳定 ---》尽量提高脚本的稳定性;开发更新了页面 ---》测试脚本没有及时维护。
9、自动化测试的价值体现在哪里?
自动化测试脚本在企业重复使用的次数越多,价值越大。
10、自动化测试过程中,你遇到了哪些问题,是如何解决的?
- 自动化测试偶尔出现过误报。参考问题:8、自动化测试产生误报怎么办?
- 自动化测试结果出现覆盖的情况。解决:Jenkins 根据时间建立文件夹。
- 自动化测试代码维护麻烦。解决:线性测试代码引入测试框架。
- 自动化测试校验数据准确性。解决:进行数据库数据比对验证。
2、自动化测试工具
1、在上一家公司做自动化测试用的什么框架?
可以说出以下自己擅长的一种:
- Python Selenium unittest htmltestrunner
- Java Selenium testng reportng
- robotframework SeleniumLibrary
2、做自动化测试过程中,你是如何定位和识别元素的?
谷歌浏览器开发者工具打开之后,用鼠标选中元素去识别元素信息。 元素定位使用定位 api,可以根据 id/name/classname/tagname/link_text/xpath/css
3、如果一个元素通过写的方式无法识别,会有哪些方面的原因,如何处理?
- 页面加载元素过慢,加等待时间。
- 页面可能会有 frame 层,需要进行跳转。
- 可能该元素是动态元素,识别方式需要优化。
- 可能识别了元素,但是不能操作,先把前置的操作完成。
4、对于属性动态变化的元素如何处理?
可以利用 xpath 的属性包含或属性开头来识别,或者通过 css 的属性开头、属性结尾、属性包含来识别。
5、元素定位方法你熟悉的有哪些?常用哪一种,为什么?
熟悉定位方式有:id、name、classname、link_text、xpath、css 常用 xpath 来进行定位,xpath 算是万能的,但缺点就是定位速度相比其他方式要慢。
6、xpath 如何通过标签的文本内容定位?
xpath 包含有 text() 函数
7、遇到 frame 层页面怎么处理?
使用 api 函数跳转进去 frame,frame 中页面操作完成,再跳转出来。