高级
高级测试工程师
目标公司
- 上市公司
适合人群
- 学历:全日制本科
学习规划
总体计划安排为:
内容模块 | 优先级 |
---|---|
业务测试 | P0 |
自动化测试 | P1 |
编程与算法 | P1 |
性能测试/客户端测试 | P2 |
CICD/持续集成 | P2 |
业务测试
- 输出业务架构图、技术架构图以及相关的测试点和测试方法。
自动化测试与持续集成
Web 自动化测试
1. Selenium 基础:
- WebDriver: 深入理解 WebDriver 的架构,它如何与浏览器驱动和浏览器交互。
- 元素定位: 学习多种元素定位策略(id、name、class、xpath、css 选择器等),并理解它们的适用场景和性能影响。
- 操作浏览器/元素: 掌握浏览器命令(前进、后退、刷新、截图)、元素交互(点击、输入、滚动、拖拽)等操作。
- Selenium Grid: 了解 Selenium Grid 的概念,学习如何设置和使用 Grid 进行远程测试。
2. Selenium 进阶:
- 隐式/显式等待: 了解它们的工作机制,何时以及如何在测试中应用它们。
- Alert 处理: 理解不同类型的 alert(如警告、确认、提示框)的处理方法。
- Frame 切换: 学习在嵌套 frames 或 iframes 中定位元素和切换上下文。
- 多窗口切换: 掌握如何处理和在多个标签页或窗口间切换。
3. 自动化框架设计:
- Page Object 模式: 深入理解此模式的原则,如何在 UI 测试中实现页面封装,减少代码冗余。
- 数据驱动测试: 学习如何设计数据驱动的测试用例,使用外部数据(如 CSV、Excel、数据库)驱动测试。
- 测试报告: 学习如何集成测试报告工具(如 Allure 或 Extent Reports),生成详细和吸引人的测试报告。
- 异常处理与日志记录: 学习如何在测试中有效处理异常和进行日志记录,以便于调试和错误追踪。
4. 附加技能:
- JavaScript 执行: 学习如何在 Selenium 中执行 JavaScript 代码,以及它的用例。
- 移动端测试: 了解如何使用 Appium 进行移动应用的 UI 测试。
-
持续集成: 理解如何将 Selenium 测试集成到 CI/CD 流程(如使用 Jenkins)。
-
接口自动化测试:
接口相关:
1. HTTP 协议:
- 请求方法:GET、POST、PUT、DELETE、PATCH、OPTIONS 等。
- 状态码:2xx、3xx、4xx、5xx 系列的常见状态码及其含义。
- 请求/响应头部:常见的头部字段如
User-Agent
、Accept-Encoding
、Authorization
等。 - Cookie 和 Session:工作原理、区别、应用场景。
- RESTful API 设计原则:理解 REST 架构风格对 API 设计的影响。
- HTTPS 和 SSL/TLS:了解 HTTPS 协议的工作原理和 SSL/TLS 在传输安全中的作用。
2. Python requests 库:
- GET/POST 请求:如何发送、传递参数。
- 请求头设置:如何自定义请求头。
- 参数设置:URL 参数、请求体参数。
- Cookie 和 Session 管理:使用
Session
对象、处理登录态。 - 错误处理:处理网络请求中的异常,如超时、连接错误等。
- 响应内容处理:处理和解析 JSON、XML 格式的响应内容。
3. PyTest 框架:
- 用例编写:基本的测试函数、断言使用。
- 断言:使用
assert
进行断言、常见的断言方法。 - fixture:作用、定义和使用、scope 参数。
- 参数化:使用
@pytest.mark.parametrize
进行参数化测试。 - 测试结果分析:分析测试结果,理解测试覆盖率和失败原因。
- 高级 fixtures 应用:数据库连接、环境清理等复杂场景。
4. 自动化框架设计:
- 封装 HTTP 类:封装 GET、POST 方法,统一处理请求头和响应。
- 设计测试用例:组织测试用例、使用数据驱动测试。
- 生成测试报告:使用
pytest-html
或allure
生成报告。 - 日志记录:实现日志记录,方便问题追踪和调试。
- 配置管理:管理不同环境的配置。
5. 接口测试策略与最佳实践:
- 接口测试用例设计:包括正常流程、异常流程和边界测试。
- 接口依赖关系处理。
- 使用 Mock 和 Stub 进行接口测试。
- 性能测试:进行接口的性能测试。
- 安全性测试:API 的安全性测试。
6. 持续集成与部署:
- 集成到 CI/CD 流程:接口自动化测试的集成。
- 使用工具如 Jenkins 自动触发接口测试任务。
- 测试报告的自动生成和通知。
- 版本控制集成:与版本控制系统(如 Git)结合。
- 环境部署:自动化部署测试环境。
性能测试
1. 性能测试基础:
- 性能测试类型:了解负载测试、压力测试、稳定性测试和并发测试等不同类型。
- 性能测试的目标和指标:理解吞吐量、响应时间、并发用户数等关键指标。
2. 性能测试工具:
- JMeter:熟悉 JMeter 的基础使用,包括测试计划、线程组、采样器和监听器等。
- LoadRunner:了解 LoadRunner 的基本概念和使用方法。
- 其他工具:了解 Locust、Gatling 等现代性能测试工具。
3. 性能测试设计和执行:
- 脚本录制和编辑:学习如何使用工具录制性能测试脚本,以及如何手动编辑脚本。
- 参数化和关联:了解如何实现测试数据的参数化和请求之间的动态关联。
- 结果分析:学习如何分析性能测试结果,理解各项指标的意义。
4. 性能监控和调优:
- 系统监控工具:了解 Linux 和 Windows 下的性能监控工具(如 top、PerfMon)。
- 性能瓶颈识别:学习如何通过测试结果识别系统的性能瓶颈。
- 性能调优建议:了解常见的性能问题解决方案和优化建议。
5. 性能测试的高级话题:
- 分布式和云测试:探索在分布式环境和云平台上进行性能测试的方法。
- 容量规划:了解如何通过性能测试结果进行系统容量规划。
- 安全性考虑:了解性能测试中的安全性问题。
面试题范围
- 面试题链接:https://interview.tutorial.hogwarts.ceshiren.com/python_programming/v2/L1/interview/
- 注意: 面试题不要无脑刷,每个面试题都有分级,重点看自己分级内的面试题内容
高频面试题
- 自我介绍
- 碰到的挑战
- 团队规模,以及在工作中的分工,你负责的模块/你在上家公司的工作内容/介绍其中两个项目,体现你的能力/介绍下上一个公司做的最长的项目
- 测试用例设计
- 测试方案设计/质量体系建设/怎么保证测试的质量(你为了提升产品的质量做了哪些事)/怎么保证这个系统的全面的测试
- 从质量维度来看,测试有什么改进的地方(基于以前做的事情,还有哪些改进空间)
- 自动测试方案设计/自动化测试框架/怎么做自动化测试/python 自动化做了哪些工作,测试了哪些接口?
- 漏测的分析以及改进措施,举一个例子/有什么印象深刻的 bug,如何解决的。/在测试过程有发现重要的问题?怎么解决的
- 对未来有什么期望/你的职业规划
- 离职原因
- 空窗期
- 期望薪资
算法与数据结构(长期积累,按顺序学习)
- 数据结构:数组、链表、栈、队列、哈希表(理解概念)、树、图(理解概念)。
- 排序算法:冒泡、选择、插入、快速、归并(理解概念)、堆排序(理解概念)。
- 搜索算法:二分查找、深度优先搜索、广度优先搜索。
- 高级算法:动态规划(理解概念)、贪心算法(理解概念)、分治算法(理解概念)。
基本命令
- MySQL
- Linux 命令
- 计算机网络