一、性能测试
1、性能测试是什么
性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行 测试。
二、Jmeter简介
1. 我们为什么要使用Jmeter
开源、免费、基于Java编写,可集成到其他系统可扩展各个功能插件
支持接口测试,压力测试、支持录制回放
入门简单相较于自己编写框架或其他开源工具,有较为完善的页面渲染,便于接口测试
可在windows,Linux系统上运行
2. Jmeter的作用
1).接口测试 postman/jmeter
2).性能测试 jmeter
3).数据库测试
三、使用Jmeter测试快速入门
线程组是什么?
进程:一个正在执行的程序对应一个进程。
线程:一个进程有多少个执行线程。
线程组:按照线程性质对线程分组。
三者关系:一个进程有多少个线程组,一个线程组有多少个线程。
测试计划—线程组—线程组属性中的线程数。
并发执行:多个线程同时执行,特点:执行结束的顺序与开始的顺序不一致。
顺序执行:按照线程的启动顺序挨个执行。
默认情况下,线程组中的线程是并发执行。
每一个线程都要执行组内的http请求。
设置线程组顺序执行:勾选测试计划中的(独立运行每个线程组)。
线程组用来模拟用户的并发访问。
1. 创建线程组
1)线程组主要包含三个参数
线程数、准备时长、循环次数。
2)线程数
虚拟用户数、一个虚拟用户占用一个线程。设置多少虚拟用户数在这里也就是多少个线程数。
3)准备时长
设置的虚拟用户数需要多长时间全部启动。如果线程数为20,准备时长为10 ,那么需要10秒钟启动20 个线程。也就是每秒钟启动2个线程。
4)循环次数
每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总 请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
5)调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)。
6)持续时间(秒):测试持续时间,会覆盖结束时间 3.1.8. 启动延迟(秒):测试延迟启动时间,会覆盖启动时间。
7) 启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会 覆盖它。
8)结束时间:测试结束时间,持续时间会覆盖.
2.创建http请求
3.制定请求域名,请求路径
一个HTTP请求有着许多的配置参数,下面将详细介绍:
名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
端口号:目标服务器的端口号。
方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、 DELETE等。
Content encoding :内容的编码方式,默认值为iso8859。
路径:目标URL路径(不包括服务器地址和端口)。
4.设置对应查看内容
5.查看表格信息
Sample:每个请求的序号。
Start Time:每个请求开始时间。
Thread Name:每个线程的名称。
Label:Http请求名称。
Sample Time:每个请求所花时间,单位毫秒。
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数。
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。
平均:每个线程请求的平均时间。
新样本:表示服务器响应后一个请求的时间。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
6. 查看结果树
聚合报告参数说明
lable:对应每一个http请求,显示的是http请求的Name,如百度http请求name为baidu。
#Samples:表示这一次的测试中一共发出了多少请求,如上图所示,sougou和baidu的http请求 每个都发出30个请求。
Average:平均响应时间,指的是所有的请求的平均响应时间,如上图的30个请求的总的响应时间 除以30得出的平均响应时间,默认的情况下是单个请求的平均响应时间,但当使用了“事务控制器” 时,则以事物为单位显示平均响应时间。
Median:中位数,也就是50%用户的响应时间。
90%Line:90%用户的响应时间。
Min:小响应时间。
Max:大的响应时间。
Error%:本次测试中出现错误的请求的数量/请求的总数,如上图所示,本次的测试中,sougou的 http请求66.6%的请求出错,而baidu的请求则没有出错的请求。
Throughput:吞吐量,默认情况下表示每秒完成的请求数,如上图所示,每秒完成的请求数分别 为6.6个每秒,6.2个每秒。
Recived KB/Sec:每秒从服务器端接收到的数据量,以kb为计算的单位。