一、性能测试介绍
1、什么叫做性能测试?
(1)通过某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试
(2)指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
2、性能测试的时间?
在功能测试完成后才能进行性能测试
3、为什么要做性能测试?
(1)评估系统的能力,
(2)识别软件系统中的弱点
(3)验证稳定性
(4)系统调优
4、性能测试的流程?
(1)性能需求分析 (标准)
(2)性能计划的编写
(3)性能场景的设计
(4)脚本的开发(录制脚本)
(5)性能环境和数据
(6)性能执行
(7)结果分析(是否标准)
(8)性能总结报告
(9)性能调优
5、性能的类型有哪些?(比如:汽车,120km/h)
(1)基准测试
在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考
比如:20km/h
(2)负载测试(慢慢接近临界点测试)
负载测试是对被测系统不断增加压力(即用户并发数),直至性能指标超过预期或者某项资源使用达到饱和状态(就是加压到系统崩溃)
比如:20km/h==》50km/h===100km/h=120km/h
(3)压力测试(也称为破坏性测试)(超过临界点测试)
压力测试:压力测试是系统在一定饱和状态下,例如cpu、内存、磁盘I/O在饱和使用情况下,给系统施加压力,看系统的处理能力,以及系统是否会出现错误。
比如:121km/h
(4)稳定性测试
稳定性测试是在给系统施加一定压力,持续运行一段时间(7*24),观察系统能否稳定运行。(也可以说是长时间的压力测试)
比如:60-80 km/h=== 开10个小时
(5)并发测试
并发测试:并发测试是模拟多用户并发访问同一个应用、模块或者数据记录时可能发生的性能问题(如内存泄漏、线程锁和资源占用方面的问题)
比如:同一时间同一点请求
6、性能测试常用的工具有哪些?
(1)jmeter 轻量级工具,免费,开源, (我们讲解的)
(2)loadrunn 商业版,收费,不易于安装,一个包4g包
7、性能测试文档包含哪些?
(1)性能测试测试计划
(2)性能场景设计用例
(3)性能报告
8、性能测试报告包含哪些内容?
(1)测试背景
(2)测试目的
(3)测试范围
(4)测试环境
(5)压测指标
(6)性能测试结果
(7)性能问题归纳
二、熟悉性能报告及数据
三、通过jmeter操作性能测试
(一)单接口的性能测试:
(1)http://.duoceshi.cn/manage/login
http://cms.duoceshi.cn/manage/
填写接口参数
(2)在监听器中添加===聚合报告
(3)保存运行接口
场景一:一个用户压测100个
100个请求,10s处理
(1)填写接口
(2)在线程中,设置线程数, 时间、次数
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要50秒钟启动500个线程,也就是每秒钟启动10个线程。
循环次数:每个线程发送请求的次数。如果线程数为500,循环次数为2,那么每个线程发送2次请求。总请求数为500*2=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
Delay Thread creation until needed:直到需要时延迟线程的创建。
调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
持续时间(秒):测试持续时间,会覆盖结束时间
启动延迟(秒):测试延迟启动时间,会覆盖启动时间
启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
结束时间:测试结束时间,持续时间会覆盖它。
(3)在监听器中添加===聚合报告
(4)运行的结果
聚合报告参数详解:
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:错误率——错误请求数/请求总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
一般而言,性能测试中我们需要重点关注的数据有:
#Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量