1、当一个接口出现异常时你是如何分析的?
- 考察点:对系统了解程度(那个服务查看日志),接口了解程度(接口文档、接口传参、接口如何交互、是同步接口、是异步接口)
- 先通过抓包获取接口请求参数,返回参数,与接口文档对比;查看是传参错误,还是后端错误;
- 如果没有接口文档,找到后端开发确认对应服务器日志,对日志进行分析(用户操作都可以通过日志进行还原);
- 如果 服务日志 和 接口传参 没有问题,也有可能是 中间件出了问题,因为服务与服务之间基本是通过 MQ(消息)来进行通信的,如果 MQ 和 数据同步 挂掉了(一般公司数据库都会做读写隔离)也会出现异常;
2、在自动化测试过程中上下游接口有数据依赖如何处理?
- 考察点:有没有真正做过自动化
- 将依赖的参数提取出来,然后做成全局变量,然后进行参数化,带入场景举个项目中的例子
- 或者可以使用 mock服务
3、依赖第三方数据的接口如何进行测试?
- 考察点:是否有能力对接第三方系统
- 根据第三方的接口文档写一个 mock服务
- 让开发直接写死参数
- 开发debug修改参数(比较复杂的接口)
4、Cookie 与 Session 的区别?
- 考察点:网络基础
- Session:保存在服务端,作用是跟踪 用户状态;
- Cookie:保存在客户端(浏览器、App),一般 session 放在 cookie 当中,再传到服务端中,前端通过这种方式,把跟踪用户的状态参数,传给服务端;
- 区别:存储的位置不同,作用不一样;session 是会失效的;
5、Selenium 工作原理
- 考察点:是否深入了解过 Selenium
- Selenium 是通过 webdriver 实现对浏览器的操作;
- 工作流程:启动一个 webdriver,打开浏览器,发送命令给浏览器,浏览器执行对应的操作;
6、web自动化过程中如何处理多窗口?
- 考察点:经验有没有那么丰富
- 先获取到当前页面的句柄 handle
- 获取到新页面的句柄 handle
- 很多窗口的时候可以根据 url 地址去进行筛选
- 进行切换
- https://www.cnblogs.com/shouhu/p/12198988.html
7、web自动化过程中弹框如何处理?
- 考察点:能不能处理各种弹框?经验问题
https://www.cnblogs.com/shouhu/p/12198988.html
8、做自动化的过程中如何处理验证码?
- 考察点:经验
- 万能验证码
- 注释掉验证码校验的代码
- 花钱使用验证码识别技术
- 你遇到的场景:redis、数据库、服务器的日志
9、python 为什使用 *args 和 *kwargs ?
- 考察点:python基础
- args:不确定要传多少个参数的时候
- kwargs:不确定要传多少个关键字参数的时候a=2,b=3
10、自动化测试在什么阶段执行会带来什么收益?
- 考察点:自动化实施阶段;自动化的作用
- 接口自动化:前后端联调完成后,接口测试,当我们功能测完后,做接口自动化
- UI自动化:页面功能稳定之后,做UI自动化
- 效率问题:提高回归测试效率
- 回归测试容易漏测的问题
11、自动化测试框架包含哪些模块?
- 考察点:有没有真正设计过自动化框架
- 基础方法、数据驱动、PO分层、接口分层(业务与数据分离)、工具包、配置、测试报告、日志
12、web ui 自动化中显示等待、隐式等待有什么区别?
- 都是智能等待,在一定时间范围内,找不到元素,就会报错
- 显示等待:针对某一个元素,设置一个等待时间,设置的查询间隔时间去查找元素
- 隐式等待:针对所有元素,设置一个等待时间,在设置的时间以内,程序会不停的去检查元素是否全部加载完成
- https://www.cnblogs.com/shouhu/p/12194347.html
13、如果提高 selenium 脚本的执行效率与稳定性?
sleep 强制等待尽量不要用,https://www.cnblogs.com/shouhu/p/12236539.html