问题
自我介绍
项目介绍
技术描述(需求背景 → 技术选型 → 开发过程 → 结果。)
- Web 自动化测试框架: Selenium
- 接口自动化测试: Requests/ Jsonpath / Jsonschema
- 测试框架: Pytest
Web
需求背景
- 因为团队内部的同学主要都是以Python 技术栈为主的。所以在技术选型的时候主要考虑的技术栈为:
技术选型
Web: selenium + pytest
接口 : requests + pytest + 其他工具(断言、数据库链接)
开发
- 框架开发:
- 易用性。
- 复用性。
- 可维护性。
为了实现以上的需求,在设计过程中,主要使用了PO设计模式,对代码进行了明确的分层: BasePage 层、界面层、 用例层、还有其他的工具层,以及数据层对我们的脚本进行进一步的优化。
反问的一个技巧: 具体的每一层,我需要和您介绍一下吗?
第二种回答方式
之前的公司内已经有一套测试脚本了,但是稳定性非常差,而且可参与的同学比较少。所以就对测试框架做了一个优化。主要优化点,就是提升 :
- 易用性。
- 复用性。
- 可维护性。
为了实现以上的需求,在设计过程中,主要使用了PO设计模式,对代码进行了明确的分层: BasePage 层、界面层、 用例层、还有其他的工具层,以及数据层对我们的脚本进行进一步的优化。
优化了之后的脚本,编写效率提升了30%。
反问的一个技巧: 具体的每一层,我需要和您介绍一下吗?
接口
需求背景
- 辅助功能测试进行造数,提效。
- 接口自动化测试。
- 第一阶段: 冒烟、回归。
- 第二阶段: 全量测试。
技术选型
开发
- 应用场景:
- 易用性
- 复用性
- 可维护性
- 接口测试几个需求:
- 返回信息字段嵌套较深,如果直接提取,可能要直接写4/5层,所以不好提取 → 使用jsonpath 可以比较方便的进行提取。
- 需要对数据库里面的数据做一下二次校验: 封装数据库操作。
- 响应信息字段多: 重点的字段做断言;其他的数据做结构断言。(json schema)
响应状态码(异常的)
- 401、 403 、 404 、405
- 5xx
常见问题
UI 自动化测试问题
- 随机弹窗(非固定弹窗)。
- 元素定位不到 。
- 用例干扰问题 → 发生原因: 脏数据、 自动化测试脚本是按顺序进行定位。(自动化测试_xxxxxx)
- 解决方案: 自动化测试数据命名要有明确的规范,而且和功能测试互不影响,使用文本定位; 使用干净的自动化测试环境
- 用例执行效率(难度较高)-> 并行执行、 分布式执行。
接口测试问题
- 异常场景 {“name”: “xxx”} ,多传了一个字段,研发没有做异常处理。(简单)
- 数据类型的问题 {“age”: 20} ,使用参数化,传递了一个float 类型2.0,发现研发没有做异常处理。 (简单)
- 响应值字段太多,不好做断言 → json schema
- 幂等性问题。(中等)
- 中间件测试问题。(高)
需要总结的
- 项目介绍
- Web自动化测试怎么做的
- 接口自动化测试怎么做的。
- 做Web 自动化测试过程中,有没有什么印象深刻的问题
- 做接口自动化测试过程中,有没有什么印象深刻的问题