一、性能测试
1.1性能测试是什么?
1.1.1广义定义
基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标是否满足要求
性能指标关注点:时间性能、空间性能性,性能测试与页面无关。
1.1.2狭义定义
指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件对系统的各项性能指标进行测试。
1.2性能测试工具
二、jmeter简介
2.1我们为什么使用jmeter
开源、免费、基于java编写,可继承到其他系统可拓展各个功能插件。
支持接口测试,压力测试等多种功能,支持录制回放。
入门简单相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试。
多平台支持,可在Linux,Windows,Mac上运行,支持多协议。
2.2jmeter的作用
接口测试 面试说postman,因为方便好用
性能测试 jmeter,也可以用postman(runner),但是没有性能指标。
数据库测试
三、使用jmeter测试快速入门
3.1线程组是什么?
进程:一个正在执行的程序对应一个进程
线程:一个进程有多个执行线程
线程组:按照线程性质对线程分组。查看任务管理器(某个应用有多少个)。
三者关系:一个进行有多个线程组,一个线程组有多个线程。
测试计划--线程组--线程组属性中的线程数。
并发执行:多个线程同时执行,特点:执行结束的顺序与开发的顺序不一致。
顺序执行:按照线程的启动顺序挨个执行。
默认情况下,线程组中的线程是并发执行。
每一个线程都要执行组内的http请求
设置线程组顺序执行:勾选测试计划中的(独立运行每一个线程组)
线程组用来模拟用户的并发访问
3.1.1线程组主要包含三个参数
线程组、准备时长(Ramp-Up Period(in seconds))、循环次数。
3.1.2线程数
虚拟用户数。一个虚拟用户占用一个线程。设置多个虚拟用户数在这里也就是设置多个线程数。
3.1.3准备时长(秒)
设置的虚拟用户数需要多长时间全部启动。如果线程数为20,准备时长为10,那么需要10秒启动20个线程。也就是每秒启动2个线程。
3.1.4循环次数
每个线程发送请求的次数。如果线程数为20,循环次数为100,那么每个线程发送100次请求。总请求数为20*100=2000。如果勾选了“永远”,那么所有的线程会一直发送请求,一直到选择停止运行脚本。
3.1.5调试器
设置线程组启动的开始时间和结束时间(配置调试器时,需要勾选循环次数为永远)
3.1.6持续时间(秒)
测试持续时间,会覆盖结束时间
3.1.7启动延迟(秒)
测试延迟启动时间,会覆盖启动时间
3.1.8启动时间
测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
3.1.9结束时间
测试结束时间,持续时间会覆盖它。
3.5查看表格信息
sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名字
Label:Http请求名字
Sample Time:每个请求所花的时间,单位毫秒
Status:请求状态,如果为√则表示成功,如果为×则表示失败。
Bytes:请求的字节数
样本输入:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。
平均:每个线程请求的平均时间。
最新样本:表示服务器响应最后一个请求的时间。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
3.6查看结果数
请求的数据展示(请求头信息,请求参数)
响应的数据展示(响应码,响应头)
通过查看结果数,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。