0506_面试辅导

问题

自我介绍

项目介绍

技术描述(需求背景 → 技术选型 → 开发过程 → 结果。)

  • Web 自动化测试框架: Selenium
  • 接口自动化测试: Requests/ Jsonpath / Jsonschema
  • 测试框架: Pytest

Web

需求背景

  • 因为团队内部的同学主要都是以Python 技术栈为主的。所以在技术选型的时候主要考虑的技术栈为:

技术选型

Web: selenium + pytest
接口 : requests + pytest + 其他工具(断言、数据库链接)

开发

  • 框架开发:
  1. 易用性。
  2. 复用性。
  3. 可维护性。

为了实现以上的需求,在设计过程中,主要使用了PO设计模式,对代码进行了明确的分层: BasePage 层、界面层、 用例层、还有其他的工具层,以及数据层对我们的脚本进行进一步的优化。

反问的一个技巧: 具体的每一层,我需要和您介绍一下吗?

第二种回答方式

之前的公司内已经有一套测试脚本了,但是稳定性非常差,而且可参与的同学比较少。所以就对测试框架做了一个优化。主要优化点,就是提升 :

  1. 易用性。
  2. 复用性。
  3. 可维护性。

为了实现以上的需求,在设计过程中,主要使用了PO设计模式,对代码进行了明确的分层: BasePage 层、界面层、 用例层、还有其他的工具层,以及数据层对我们的脚本进行进一步的优化。

优化了之后的脚本,编写效率提升了30%。

反问的一个技巧: 具体的每一层,我需要和您介绍一下吗?

接口

需求背景

  1. 辅助功能测试进行造数,提效。
  2. 接口自动化测试。
    • 第一阶段: 冒烟、回归。
    • 第二阶段: 全量测试。

技术选型

开发

  • 应用场景:
  1. 易用性
  2. 复用性
  3. 可维护性
  • 接口测试几个需求:
  1. 返回信息字段嵌套较深,如果直接提取,可能要直接写4/5层,所以不好提取 → 使用jsonpath 可以比较方便的进行提取。
  2. 需要对数据库里面的数据做一下二次校验: 封装数据库操作。
  3. 响应信息字段多: 重点的字段做断言;其他的数据做结构断言。(json schema)

响应状态码(异常的)

  • 401、 403 、 404 、405
  • 5xx

常见问题

UI 自动化测试问题

  1. 随机弹窗(非固定弹窗)。
  2. 元素定位不到 。
  3. 用例干扰问题 → 发生原因: 脏数据、 自动化测试脚本是按顺序进行定位。(自动化测试_xxxxxx)
    • 解决方案: 自动化测试数据命名要有明确的规范,而且和功能测试互不影响,使用文本定位; 使用干净的自动化测试环境
  4. 用例执行效率(难度较高)-> 并行执行、 分布式执行。

接口测试问题

  1. 异常场景 {“name”: “xxx”} ,多传了一个字段,研发没有做异常处理。(简单)
  2. 数据类型的问题 {“age”: 20} ,使用参数化,传递了一个float 类型2.0,发现研发没有做异常处理。 (简单)
  3. 响应值字段太多,不好做断言 → json schema
  4. 幂等性问题。(中等)
  5. 中间件测试问题。(高)

需要总结的

  1. 项目介绍
  2. Web自动化测试怎么做的
  3. 接口自动化测试怎么做的。
  4. 做Web 自动化测试过程中,有没有什么印象深刻的问题
  5. 做接口自动化测试过程中,有没有什么印象深刻的问题