最近看有些招聘要求服务端测试 X 年,我之前也没专职搞过服务端测试,
就好奇如果临时去准备服务端测试相关面试的话应该准备什么?
我平时做的跟服务端有关的也就是接口测试,最多再搞点接口性能,其他服务端的事也没咋干。
靠这些是不是过不去服务端测试 2 年这道坎?
服务端 2 年什么水平,我也不大清楚,只能说我觉得一个好的服务端测试,大概需要下面这些技能吧:
1、清晰了解接口背后的逻辑流转,有需要随时可以写出核心流程的时序图,并基于这个逻辑流转评估技术方案优劣及风险、设计对应的高效测试方案。
2、可以做一些服务端相关的专项测试,比如性能测试。注意不只是能执行和反馈性能数据,还得能通过各种监控日志等定位到性能问题原因以及给出靠谱的建议解决方案。
3、对服务端用到的技术有一定了解,比如 spring 、各种中间件(redis、数据库、消息队列)、jvm 一些基本配置、服务端一些相关的术语或者说架构知识(熔断、限流、降级、CAS)等,如果自己直接就具备相关的写代码实现功能能力最佳。
4、熟练使用 linux 命令,毕竟有需要的话经常得上服务器查看日志等操作。
接口可以理解只是服务端对外展示的一部分。
服务端构成相对来说,还是较为复杂的,spring 也有非常多的组件,很多我们看到的接口都是组件包装后的结果。
从架构层面来讲,又可能涉及到熔断、限流、降级、缓存、穿透、改写、异常保护等措施
接口测试过程中,可以将测试内容上升至架构层面开始,能够更加全面的了解服务端处理逻辑
不能指导研发进行接口开发的,不是好的接口测试
服务端 2 年什么水平,我也不大清楚,只能说我觉得一个好的服务端测试,大概需要下面这些技能吧:
1、清晰了解接口背后的逻辑流转,有需要随时可以写出核心流程的时序图,并基于这个逻辑流转评估技术方案优劣及风险、设计对应的高效测试方案。
2、可以做一些服务端相关的专项测试,比如性能测试。注意不只是能执行和反馈性能数据,还得能通过各种监控日志等定位到性能问题原因以及给出靠谱的建议解决方案。
3、对服务端用到的技术有一定了解,比如 spring 、各种中间件(redis、数据库、消息队列)、jvm 一些基本配置、服务端一些相关的术语或者说架构知识(熔断、限流、降级、CAS)等,如果自己直接就具备相关的写代码实现功能能力最佳。
4、熟练使用 linux 命令,毕竟有需要的话经常得上服务器查看日志等操作。
就是对后台架构、数据库、缓存系统、中间件、文件系统都很了解,知道各种配置的缘由,能找到问题。
大佬们好强,学到了。不过我觉得我们公司的开发、研发总监都达不到这个水平
不不不,可能大佬你们的公司比较强,同事都比较强,所以有这样的认知。我们公司做的都是政企单位的项目,有些都是很老套的那种,技术栈我是觉得有点落后,环境也基本跟国产化挂钩。一有问题大家都是懵逼状态,可能是我还没有认识到哈,我是觉得他们没那么强。
不一定要很深入,其实微服务刚出来的时候,很多这类微服务技术特点科普文的,看个两三篇,微服务相关的核心技术知识就了解得差不多了。
当然,也要看实际业务情况。如果线上经常高压力的话,那熔断限流之类的还是得去模拟环境做预案演练,确认符合预期。只是从面试层面和大部分实际场景,一般了解知识点和大致原理,就差不多了。