目录
一、确定性能目标
在开始性能测试前,需要收集性能需求、分析确定合理的性能目标(分析目标)。主要需要关注以下几点:
1、该需求属于旧功能的优化,还是全新的功能?是否需要进行性能测试?
- 如果是旧功能的优化且优化的部分影响性能则需要重新进行性能测试;
- 如果是旧功能的优化且优化的部分不影响性能则不需要进行性能测试;
- 如果是全新的功能,一般都需要进行性能测试。
2、有关性能的部分是如何设计的?业务逻辑是什么样的?相关的功能是什么?涉及哪些方面?以及影响范围。
3、开发设计方案是否合理?这个方案是否可能带来性能方面的问题?
4、需求涉及到的性能指标有哪些,每个指标需要达到的性能要求是什么?客户提出的性能要求是多少?从方案出发能达到的理论性能值是多少?
二、制定测试方案
测试方案的主要涵盖以下几个要点:
1、关注两个时间点:开发完成的时间、需求交付的时间。再根据实际情况规划测试过程中每项任务完成的时间点。
2、基于性能测试目标设计测试环境、测试数据;
- 测试环境设计原则:选择最接近用户使用场景,或能够测试出最有数据的场景;
- 测试数据准备原则:性能测试时阶段的测试数据不能太少。
3、确定测试内容:
- 基本性能数据测试(分析性能的影响因素,以影响因素为变量,测试每个因素值不同的情况下的性能值,并给出推荐的值);
- 数据量边界测试;
- 长期稳定性测试;
- 资源占用测试。
三、设计测试用例
测试用例根据测试方案中制定的规则设计,围绕性能目标展开。
四、测试环境与数据准备
具体来说就是搭建测试环境、准备测试工具,编写数据准备脚本并完成数据准备。一般正式的性能测试都使用的是实体机,有以下几个重点:
1、需要注意是什么配置,主要看cpu、内存、磁盘、操作系统。可以参考 性能测试第一步——查看设备的硬件配置
2、客户环境是否有特定的配置要求?
3、开发需求方案中是否有关于服务器和客户机配置的要求?
五、执行性能测试
1、服务器读写速度测试
最快的方法是使用dd命令,命令如下:
dd if=/dev/sdb bs=64k of=/dev/null bs=4M count=20000 用于测试读速度
dd if=/dev/zero of=/dev/sdb bs=4M count=20000 用于测试写速度
详细使用方法可参考:Linux下dd查看磁盘的读写性能
2、测试两台机器之间的网络带宽
方法一:使用SCP命令互相拷贝文件,来测试出大致的网络速度,但该方法测试出来的结果并不准确。SCP命令的使用方法可以参考:Linux scp_wxt_hillwill的博客-CSDN博客
方法二:使用iperf3 来测试两台机器之间的网络带宽。
服务端:
客户端:
3、查看其它网络信息
ethtool -S ethx 查询网口收发包情况
4、查看实时的数据传输情况
dstat -N [网口名]
如果想对比多个网口的数据传输情况,将每个网口用逗号隔开即可:
dstat -N [网口1],[网口2]…
六、完成性能测试报告
性能测试全部完成后,在测试报告中需要体现;
1、每一项性能测试结果的分析;
2、性能目标是否达成。