页首: 页脚:

自动化岗位常见面试题

1、当一个接口出现异常时你如何分析?

考察点:考察队你们系统了解程度,接口了解程度

1、通过fiddle或Charles等抓包工具抓取请求报文,返回报文,与接口文档对比

2、Xshell连接服务器,查看日志进行分析

3、中间件(nginx,tomcat)出问题,消息队列,数据同步

 

2、在自动化测试过程中上下游接口有数据依赖如何处理?

考察点:有没真正做过自动化

将依赖的参数提取出来做成全局变量,然后进行参数化

mock服务

 

3、依赖第三方数据的接口如何进行测试

考察点:是否有能力对接第三方系统

根据第三方的接口文档写一个mock服务

让开发直接写死参数

开发debug修改参数

 

4、cookie与session的区别

考察点:网络基础

session:保存在服务端,跟踪用户状态

cookie:客户端(浏览器,app),session放在cookie

区别:

存放位置不同

作用不一样

session是会失效

 

5、selenium的工作原理

考察点:是否深入了解selenium

selenium是通过webdriver实现对浏览器的操作

工作流程:

打开一个webdriver

打开浏览器

发送命令给浏览器

浏览器执行对应的操作

我们可以把WebDriver驱动浏览器类比成出租车司机开出租车。

在开出租车时有三个角色:

  • 乘客:他/她告诉出租车司机去哪里,大概怎么走
  • 出租车司机:他按照乘客的要求来操控出租车
  • 出租车:出租车按照司机的操控完成真正的行驶,把乘客送到目的地

 

在WebDriver中也有类似的三个角色:

工程师写的自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
浏览器的驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器
浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。
所以在这个类比中:

1. 工程师写的自动化测试代码就相当于是乘客

2. 浏览器的驱动就相当于是出租车司机

3. 浏览器就相当于是出租车

6、web自动化中如何处理多窗口?

考察点:经验有没那么丰富

1、先获取当前页面的headkle

2、获取到新页面的headle

3、很多窗口时候可以根据url地址去进行帅选

4、进行切换

 

7、web自动化过程中弹窗的处理

考察点:经验问题

浏览器弹框、

alert弹框:driver.switch_to.alert

自定义弹框:模态框

 先触发,再定位

 

8、自动化过程中如何处理验证码

考察点:经验问题

万能验证码

开发写死或注释校验的代码

使用第三方识别验证码(花钱)

数据库,redis,服务器日志查找

 

9、python为什么使用*args和 **kwargs?

考察点:python基础

*args:不定长参数,不确定要传对少个参数的时候

**kwargs:关键字参数,不确定要传多少个关键字参数的时候

 

 

10、自动化测试在什么阶段执行会带来什么收益?

考察点:自动化实施阶段,自动化的作用

接口自动化:前后端联调完成后,接口测试,当我们功能测完后,做接口自动化

UI自动化:页面功能稳定之后,做UI自动化

效率问题:提高回归测试效率

回归测试容易漏测问题

 

11、自动化测试框架包含哪些模块?

考察点:有没有真正设计过自动化框架

基础方法,数据驱动,po分层,接口分层(业务与数据分离),工具包、配置文件、测试报告、日志

 

12、web ui自动化中显性等待、隐形等待的区别?

智能等待:在一定的时间内,找不到元素,就会报错

显性等待:针对某一个元素,设置等待时间和轮循时间去查找

隐形等待:针对所有元素,设置一个等待时间,在设置的时间内,程序会不断得检查元素是否全部加载完成

 

13、如何提高selenium的脚本的执行效率与稳定性?

使用等待时,尽量使用显示等待,少用sleep(),尽量不用隐式等待

多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率

降低用例的之间的耦合度

 

14、unittest与pytest的区别?

1、用例设计规则

2、用例前置与后置条件

3、断言

4、测试报告

5、失败重跑机制

6、参数化

7、用例分类执行

posted @ 2021-02-28 23:57  hi~gong  阅读(1333)  评论(0编辑  收藏  举报
页首: 页脚: