性能测试
性能测试步骤
测试前期准备
着手准备测试相关的工作,包括测试环境和测试工具准备,测试案例和场景的准备,测试数据的准备,脚本录制,性能监控的验证等。
性能测试工具
常用 Jmater(Java)
locust(Python)
性能计划
人力
具体工作
开始时间
使用技术
测试设计与开启
工具/代码编写
具体的脚本
测试执行与管理数据收集
根据容量执行
根据数据库资源——IOPS
Liunx
CPU
memory
nginx
连续数
本身
对测试进行分析
性能测试方法
验收负载测试
QA环境模拟生产运行的业务压力和使用场景组合,测试系统性能是否满足生产环境的性能诉求
负载测试
在被测系统上持续不断的增加压力,直到性能指标(响应时间等)超过预定指标或者某种资源(CPU&内存)使用已达到饱和状态。核心是找到系统的处理极限,为系统调优提供数据,从而达到了解系统性能的容量
压力测试
该方法是指系统在一定饱和状态下,具体如CPU,内存等饱和使用的情况下,系统能够处理的会话能力,以及系统是否会出现错误,比如TimeOut,OOM,OverStackExpection(堆栈异常)。特点:
检查系统在处于压力情况下时应用的性能表现
等价于负载测试,使系统的资源处于一个瓶颈的状态(建议CPU和内存在75%以上)
配置测试
被测环境软硬件环境参数的调整,达到最优的分配原则
并发测试
模拟用户的并发访问,测试多用户并发访问同一个应用时是否存在死锁或者其他的问题,特点是:
发现系统中可能隐藏的并发访问的问题
关注系统可能存在的并发问题,如内存泄露,线程锁,资源争用情况
使用的测试工具如profiler等
可靠性测试
给系统加载一定的业务压力,让应用持续运行一段时间,测试系统在这种条件下是否能稳定运行
故障演练
故障演练是应用高可用能力测评的核心,一次完整的故障演练由演练的对象、对象发生的具体故障、应用的预期故障应对表现、对应用表现的实际观察和判断几部分组成
容灾恢复测试
当各种灾难发生时,在保证生产系统的数据尽量少丢失的情况下,保持生产系统的业务不间断的运行。任何针对可能发生的灾难,提高系统可靠性和可用性的措施都可以称为容灾
JMeter 执?原理
JMerer 通过线程组来驱动多个(也可以理解为LR?具??的虚拟?户)运?测试脚本对?标服务器发起?量的?络请求,在每个客户端上可以运?多个线程组,也就是说?个测试计划??可以包含N个线程组。
线程属性(线程数)
?个线程可以理解为对应模拟?个?户,所以线程数越多,那么也就认为可以模拟的?户数越多
调度器
设置何时开始运?
持续时间
测试计划持续多?时间
启动延迟
延迟多?时间开始运?测试,也就是说点击执?后,仅做初始化不会执?测试,等待延迟到达后开始运?测试,执?的时间为持续时间设置的时间
聚合报告
响应时间图