某大厂高级测试岗面试题

1、http请求的过程

  • 建立浏览器和web服务端的连接,是通过TCP进行完成(也可以说是建立tcp连接);
  • 浏览器向服务端发送请求指令(前置条件建立tcp连接);
  • 服务端收到浏览器的请求后做出回应;
  • 服务器关闭TCP连接;
  • 浏览器接受到服务器响应的数据。

某大厂高级测试岗面试题

2、常用的接口请求响应状态码有哪些,分别都代表什么意思?

  • 200 请求成功,请求所希望的响应头或数据体将随此响应返回。
  • 201请求已经被实现,且有一个新资源已经依据请求的需要而建立。
  • 202服务端已经接收请求,但是未处理。
  • 301请求的网页已永久移动到新位置。
  • 303 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
  • 404(未找到) 服务器找不到请求的网页。
  • 401 当前请求需要用户验证。如果当前请求已经包含了 Authorization证书。
  • 500服务端报错,无法完成对请求的处理。
  • 501 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。

3、接口自动化中考虑哪些点避免出现脏数据?

  • 每次在特定环境下执行完接口自动化测试用例,初始化这个环境,清除该环境的数据以备下次执行纯净环境准备;
  • 自动化测试用例执行后需要进行闭环将生成的数据从数据库中删除;
  • pytest-fixture 环境初始化与清除或者使用setup,teardown装饰器;
  • 后置直接系统上把数据删除。

4、你在做UI自动化中遇到的问题以及如何解决的?

问题1:元素无法定位

首先判断该元素是否存在,或者是不是动态元素,如果是动态元素,先触发这个元素加载条件,再进行元素定位

问题2:元素在iframe中无法定位

先将driver切换到iframe才能操作。切换方式:通过id、name、索引、iframe元素对象切换至iframe层中再进行元素定位。

5、查询接口如何判断查出数据的准确性及数据量的准确性?

  • 拿接口需要检验的返回值与数据库查询的结果进行断言比较;
  • 先统计数组某个字段出现的条数,然后在便利循环检验一下。

6、基于PyTest接口自动化测试框能简单介绍一下吗?

  • Api:单接口定义封装
  • testcases: 通过调用单接口来组装测试用例
  • commons:requests 库请求的封装、数据库操作、excel 操作、yaml 文件操作、加解密
  • 封装、日志封装、正则处理、随机数据生成
  • configs:数据库配置、各个服务对应的域名等等
  • data: 数据驱动--接口测试用例数据
  • Logs: 日志文件
  • Report:测试报告
  • conftest.py: 自定义 fixture、pytest 自带的钩子函数

7、UI自动化分布式作用?

分布式是为了提高ui自动化执行效率。

8、list列表去重的方法?

  • for循环遍历去重---不改变原来的顺序
  • 用dict字典去重,列表转换成字典,顺序不变
  • set去重  再用sort排序
  • count()方法统计并且删除,要先排序

9、字典中按照key排序,用什么方法实现?

  • 用sorted()函数:对数字从小到大进行排序 | 使用语法sorted(iterable,key,reverse)
  • 按照key排序:只输出key值排序列表 | 使用语法sorted(d.keys(),reverse=True/False)

10、第三方支付接口无响应如何处理?

如支付宝接口无响应,第一,多调用几次,如无响应,可能是调用超时或者第三支付接口挂了需要相关公司进行排查问题,进行处理。

11、第三支付接口完成支付操作后,未获取响应结果,该订单处于什么状态?

  • 单处于已支付状态,为获取到响应结果的原因可能是网络延迟,获取响应结果时间较长。
  • 接口幂等性,未获取响应结果时,再用支付接口进行支付操作,重复进行支付操作,如其中存在支付成功,获取响应结果成功,则是接口幂等性问题。

12、支付接口从ui层功能到接口,及底层测试点,及流程?

你们来答~(答案参考文章支付功能测试,看这一篇足以

以上为该面试人员过程的面试问题及答案记录,非正确标准答案,欢迎测试大佬们各抒己见,给出自己的答案,留言区等你们~



留言