问题:测试好多都是性能小白,虽学了些性能知识,但在实际工作做开展性能测试,都很茫然,求指导,应该怎么处理?
回答:
从小入手,从简单的开始,然后慢慢的做更系统更复杂的性能测试。
确定需求
刚接触性能测试的同学往往不知道性能测试是有需求的。比如
·给我测一下系统的性能
·线上xx服务器挂了,能否重现一下线上问题
如果你是性能测试同学,假设时间有限,这两个需求你只能接一个,你是接哪个?
很多同学会选第一个,因为第一个需求似乎是性能测试的需求,第二个跟性能测试似乎没有特别强烈的关系。
但是第一个需求太泛泛了,如果不细化的话操作起来会很难,第二个尽管看起来是亡羊补牢的行为,但现实工作中这类的需求很多,操作起来也是有套路的,不会特别发散。
总之,建议新人在需求分析的时候接一些具体的,可以操作的需求。需求是否可以细化分解,基本就注定了性能测试能否顺利完成
了解业务
比如重现线上问题的需求,拿到手之后,我们就必须熟悉线上的业务。用户是怎么操作的,系统崩溃的时段是哪个,这个时段里有多少用户在使用系统,他们都在做什么?
尽可能精确的重现用户的行为或者预测用户的行为,这是性能脚本的是否符合实际的关键。而这种精确是建立在了解业务的基础之上的。
搭建测试环境
尽可能搭建跟线上环境一致的性能测试专用环境。
关键字
·一致:最好跟线上环境一样,如果不可能的话,可以减配,但是要保证架构一致。比如线上集群100台,测试环境没那么多资源的情况下,可以适量减少,比如测试环境集群2台,但是一定要是集群,不然就没意义了
·专用:测试环境是性能测试专享的,其他测试不要在上面搞
实现脚本
比如可以用jmeter实现测试脚本,另外一些基本的性能知识也是必要的。
脚本执行及监控
根据负载模型去执行相应的脚本,这里就不展开了。
收集测试结果
对于新人来说,只需要把测试结果提交给项目组的开发人员分析就好了。对于有一定经验的性能测试人员,希望可以通过监控和代码走查的方式找到系统瓶颈,并给出部署的建议方案。
持续学习
linux知识:比如服务器kpi指标,简单监控命令,并发模型等
架构知识:最简单的方式,自己搭建性能测试环境或者线上环境,多搞几次就熟了
更多知识:总之遇到不懂的就学,比如数据库优化,jvm优化等知识
综上。希望对你有所帮助。