一直深耕于互联网行业测试工作,前期测试主要以项目为主,也就是一个人负责2-3个项目的测试工作,当然包括项目上功能、自动化和性能等一切测试工作。
我有几个朋友也在互联网大厂工作,从他们当中了解到其实真正的互联网大厂,很少设置专职的性能测试岗位。
我觉得刚从事测试这个行业的人员,可以在功能、自动化或者测试开发等方面都需要涉及,毕竟测试岗位对知识储备的广度和深度要求较高。
但是随着时间的推移,要想成为行业中的精英必须在某一方面突出优势,那就是成为某个专项测试的精英级人物,后来我主要从事性能测试方面的工作。
在银行做性能测试工作,我们有独立的性能测试团队,具体分工如下:
① 初级性能测试基本上只负责脚本的制作和执行等一些基础工作。
② 中级测试包含基本的性能问题分析。
③ 高级的主要解决性能问题以及对外沟通、协调以及项目整体进度。
总之,结合我的实际工作经验简单说一下做好性能测试需要掌握哪些技能要求。
一、性能测试理论知识
正所谓:“万丈高楼平地起”,要想做好性能测试工作,学好性能测试理论知识是实施性能测试工作的必经之路。
例如:性能测试中常见指标的确认、场景设计划分、参数化数据的数量、以及场景的执行策略等其它相关性能测试基础知识。
接下来我重点分享下在工作中遇到过的性能测试问题。
我见过很多的测试人员,一上来就在1s内直接起300个甚至更多线程,至于为啥这么设置,却说不清道不明;
还有人做完压力测试后,直接给个tps图和rt图,还以为这个就是结果,我问他从这两个图上能得出什么结论呢,直接给我说tps是多少rt是多少。
我说得到这些又能说明什么问题呢,顿时时间就凝固了,然后就没有然后了,这就是大家眼中的水货性能测试工程师。
二、编程
要想在测试岗位上深耕,无论从事测试开发、自动化测试、性能测试工作,学会看懂代码和写代码是必备条件。
即使你不太会写代码,至少能看懂代码,能够基于别人的代码做优化更新。
很多互联网企业的测试人员感觉自己地位低、毫无存在感,甚至有些公司开会都不叫测试人员参加,这种情况比比皆是。
我也经常听到朋友诉说他们公司的开发就看不起公司的测试人员,在这里其实是有一个误解,在整个社会环境中,尤其是做技术的,人们只敬佩强者。
如果能和开发做到无障碍沟通,开发自然会很尊重你,那些被看不起的测试往往无一技之强。
三、深入理解系统业务需求逻辑
做性能测试必须要懂业务逻辑。
很多同学有疑问,性能测试直接压脚本就行,至于业务逻辑是功能测试人员的工作。
这样理解过于肤浅,因为你不懂业务逻辑,如果真的需要你去优化代码逻辑,你会一脸懵逼无从下手。
四、熟悉常见软件系统
例如:单体应用架构--->垂直应用架构--->分布式架构--->SOA架构--->微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。
至少需要知道这些架构和一些基本概念以及应用,否则真出现问题,最后连去哪里分析查找问题都无从下手。
五、掌握常见的监控工具应用
例如:现在最火的莫过于grafana+promethus这对组合了,还有skywalking等工具。
六、Docker容器技术
云原生相关知识,比如k8s和docker,至少需要知道常见的概念以及操作命令。
七、掌握常用的系统组件
例如:tomcat、nginx、mysql、redis等组件。
当然还有很多方面的知识也是需要掌握的,比如网络知识、混沌工程等知识、大数据等。
大家阅读到这里对性能测试的认知感理解会更深入,要想做好性能工作,需要掌握的知识面太广,而这些知识是支撑高级性能测试的必备条件。
结语
性能测试除了需要具体一定的硬技能,当然软技能一样不能少,例如:人际沟通能力、语言表达能力、逻辑思维能力、工作的态度、文档书写能力、分析能力、归纳梳理总结能力等方面的要求非常高。
毕竟要想做好性能测试不光只需要出结果就行,更重要的是如何基于结果做分析,发现系统中存在的性能瓶颈与开发进行沟通交流、确定性能测试瓶颈,经过反复修改、调试直到满足性能测试需求才算完事。
好了今天由于时间的关系,暂时先与大家分享到这里,更多性能测试干货知识,敬请期待。