中级面试题
你是怎么管理数量众多的自动化测试用例的?
面试题目
- 级别: L3
- 知识模块: App自动化测试
你是怎么管理数量众多的自动化测试用例的?
公司
- 优酷外包
招聘类型
- 社招
- 校招
题目解析
这个问题中牵涉到的主要知识点就是在对于自动化测试框架的理解这一层面:
- 测试用例的分类
- 测试套件的使用
- 测试用例如何串行,如何并行,如何设定用例的执行顺序
你是怎么存放这些用例的?
面试官的本质问题: 测试用例的项目结构,以及管理方式。比如你的项目结构是不是按照业务模块去分为了不同的 package。包括用例如果需要多人开发以及版本化管理有没有使用类似于 git 或 svn 这样的代码管理工具。
还有一个潜在问题: 用例数量很庞大的情况下,不可能每一次执行测试用例都是全量执行,如何做用例管理可以覆盖多种用例的使用场景;
- 如何按照用例优先级执行用例?
- 如果想要执行不同的业务模块用例应该如何执行?
- 如果想要执行不同类型的测试用例应该如何执行?
- 回归测试场景
- 冒烟测试场景
- 灰度测试场景
- 针对不同的被测版本,用例应该如何执行,比如回归需要使用 v1.1 版本的用例, 冒烟需要执行 v1.2 版本的用例
以上的所有场景, 只要深刻理解并熟悉测试框架的使用以及标准结构,一定是可以回答出来的。
以下的答案更多的是思路,而非一板一眼的标准答案,因为任何一个答案,如果说你没有很多对应的项目经验和处理经验,一问就玩完。从用例版本管理这种大的维度到每个使用场景进行归纳与总结。
答案
- 使用 git 或 svn 对测试用例进行管理,因为有版本化管理,回滚也比较方便,多人协作也比较方便。
- 用例的项目结构通常是和产品的业务模块统一,比如我们的产品有用户管理功能,那用例编写的时候就会写在 user package 内。
- 另外会使用测试框架(pytest 是装饰器 mark、junit5 就太多了,displayname 、tag)自带的标识功能。给测试用例添加不同类型的标识,保证可以执行不同类型的测试用例。
只要用例的标识打的明确,以及用例的业务目录结构合理,就可以实现对用例的规范化管理,同样可以选择不同类型的用例进行执行
用例依赖执行顺序怎么搞?并发执行怎么搞?
回答如何使用测试框架的并行和串行(指定顺序)功能的就 OK 了。
是本地写的用例还是用公司自有的测试开发平台来存放?
使用 git 存放的用例
app 突然出现弹框,导致元素遮挡如何处理
面试题目
- 级别: L3
- 知识模块: App 自动化测试
app 突然出现弹框,导致元素遮挡,如何处理?
公司
- 优酷外包
招聘类型
- 社招
- 校招
题目解析
在 App 自动化测试过程中,弹框可能会突然出现并遮挡原本要操作的元素。这种情况需要处理弹框以继续进行测试操作,常用的方法包括等待弹框消失、手动关闭弹框或跳过被遮挡的元素。
答案
可以通过添加黑名单异常处理解决。
如何获取 app 中的 toast 消息提示
面试题目
- 级别: L3
- 知识模块: App 自动化测试
如何获取 app 中的 toast 消息提示?
公司
- 优酷外包
招聘类型
- 社招
- 校招
题目解析
获取 App 中的 Toast 消息提示通常需要处理系统级的 UI 元素,因为 Toast 是短时间显示的系统级消息,不能直接通过标准的 UI 元素定位方法获取。需要使用特定的工具或方法来捕获这些消息。
答案
通过 Toast 元素的 class 属性,使用 xpath 定位结合隐式等待获取。