Hi,大家好,新的一年,你有什么Flag呢?想必加薪搞钱必定是其中一项,新年伊始,给大家分享一波自动化面试题。祝2024年加薪成功~
一 如何做⾃动化测试,谈谈你的思路和⽅向?
Web端的自动化测试,基本就是模拟手工测试人员来做功能测试。用机器的自动执行代替人的操作。web端呈现的产品有两个方向可以做自动化测试:接口层和界面操作层,且接口层自动化的比例要高于界面操作层。对产品稳定的功能进行自动化测试,主要用于产品的核心功能冒烟测试、回归测试。从系统最核心的功能开始做,再根据情况慢慢展开。
二 UI自动化测试用例如何设计?
UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:
-
优先选取覆盖产品核心功能的用例;
-
从成本考量,不要选择流程过于复杂的用例;
-
选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;
-
优先实现正向的测试用例,反向用例一般情况复杂、数量多;
三 UI 自动化测试,如何判断元素在页面上是否存在?
-
方法一:通过异常处理来判断元素是否存在,可以使用 try…except…f 未找到元素的时候捕获这个异常;
-
方法二:通过查找元素列表find_elements() 判断元素是否存在,定义一个方法,如果元素列表大于 0 则元素存在,返回 True, 如果元素列表等于 0 则元素不存在,返回 False;
-
方法三:显式等待,结合 WebDriverWait 和 expected_conditions 判断(推荐)
四 你怎么提高UI自动化脚本的稳定性?
-
尽量用相对路径的xpath表达式;
-
查找元素优先用显示等待;
-
用例与用例之间尽量避免产生依赖,用例可以独立执行;
-
用例执行结束后对测试场景进行还原,避免影响其他用例的执行;
-
脚本执行失败后加入重试机制,提升用例的稳定性;
-
尽量保证单独的测试环境,避免其他的测试同步进行;
五 接口测试能发现哪些问题?
可以发现很多在页面上操作发现不了的 bug;
检查系统的异常处理能力;
检查系统的安全性、稳定性;
可以测试并发情况,一个账号,同时(大于 2 个请求)对最后一个商品下单,或不同账号,对最后一个商品下单;
可以修改请求参数,突破前端页面输入限制(如金额)。
六 测试的数据你放在哪?
-
对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如 ini);
-
对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成;
-
对于一个接口有多组测试的参数,可以参数化,数据放 YAML,Text,JSON,Excel 都可以;
-
对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据初始化,用完后再清理;
-
对于邮箱配置的一些参数,可以用 ini 配置文件;对于全部是独立的接口项目,可以用数据驱动方式,用 excel/csv 管理测试的接口数据;
-
对于少量的静态数据,比如一个接口的测试数据,也就 2-3 组,可以写到 py脚本的开头。
七 其他接口都需要登录接口的信息,怎么去让这个登录的接口只在其他接口调用一次?
-
使用单例模式
-
使用自定义缓存机制
-
使用测试框架中的 setup 机制
-
pytest 中 fixture 机制
八 你做接口自动化时怎么做的数据验证?
数据验证主要包括两个方面:
-
接口响应报文的验证
利用jsonpath取出响应数据(大多数情况是json)中的关键字段的值,通过AssertEqual断言期望值和实际结果是否符合预期。
-
数据库表数据的验证
做表数据验证要先明白两点:
a. 表数据验证首先得明白这个接口的基本业务,会影响到哪些表,哪些字段的数据,然后才能准备查询sql去有针对性的查数据。
b. 并不是所有用例的执行都会操作数据库,影响到表数据,因此只有影响到了表数据的用例,才准备查询脚本。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。