目录
前言
操作
(一)接口文档
(二)添加线程组
(三)添加HTTP请求
(三)添加察看结果树
(四)添加聚合报告
(五)保存、运行、察看结果树&聚合报表
压力测试也属于是性能测试,关于性能测试,百度词条【性能测试】(https://baike.baidu.com/item/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/1916148?fr=aladdin)解释的非常详细,秉着【理论是实践的基础】的真理,大家可以先去了解一下。因为还只是入门,我就只从中摘取部分简单的帮助自己先入门。
压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。对应刚入门的我们来说,暂且主观一点断章取义就是并发性能测试。
压力测试,我们首先需要了解下压力测试的指标以及目标。主要是吞吐量、响应实践、错误率。
吞吐量:官方定义是【吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)】。对应压测来说,就是每秒钟系统能够处理的请求数、任务数。
响应时间:官网定义是【响应时间指用户发出请求或者指令到系统做出反应(响应)的时间。】。我们可以理解为服务处理一个请求或一个任务的耗时。通常吞吐量越大(每秒钟系统处理的请求越多),响应时间越长。
错误率:一批请求中结果出错的请求所占比例。
压测中,我们先回从需求中得到这些指标的目标值,然后我们压测的时候就设置相应的指标慢慢增加、达到、超过这些目标值来进行测试(设计测试用例),来分析系统是否符合系统要求。这些后面我们介绍操作的时候也会简单介绍这几个指标在Jmeter里面是怎么设置的。
简单起见,我们就用一个add接口进行测试。可以把它想作是一个申请接口,主要是功能其实就是添加一条客户申请信息。
(1)选择测试计划,右键【添加-线程-线程组】;
初学者可以先对这些参数的作用有个大概了解,如果看不懂也暂且不必深究。后面慢慢实践起来就能知道这些参数的具体意义了。
继续:如果取样器里的执行出现错误失败的时候,请求不会停止,继续执行。
启动下一进程循环: 忽略错误,线程当前循环错误,执行下一个循环。
停止线程 :只限当前线程停止,不影响其他线程执行
停止测试 :当前执行的线程全部执行完毕后结束
立即停止测试: 立刻停止
(2)设定线程组的参数。当然我们也可以先把后面的步骤先做好了再返回来改。这都是无关紧要的。
如下:设定线程数=10;Ramp-Up时间(秒)=3,循环次数=2;意思就是我需要3秒内发起10个线程,每个线程循环2次。
(1)选择线程组,右键【添加-取样器-HTTP请求】:
(2)根据接口文档填入相关值:协议、服务器名称或IP、端口号、请求方法、路径、内容编码、消息体数据
(3)POST请求需要添加信息头:选择HTTP请求,右键【添加-配置元件-HTTP信息头管理器】:
(4)添加信息头参数以及传入值(一般接口文档有明确规定)
(1)选择测试计划,右键【添加-监听器-察看结果树】
(1)选择测试计划,右键【添加-监听器-聚合报告】
(1)察看结果树,可以看到http请求次数、结果。
(2)聚合报告:通过聚合报告,我们可以看到我们想要的结果,包括吞吐量、错误率、响应时间;
Label:每个JMeter的请求的Name值。例如HTTP Request的Name。
Samples:发出请求数量。如果之前线程组中配置的是,线程数为10,循环次数为2,则总的数量为20.
Average:平均响应时间(单位:ms)。默认是单个请求(Request)的平均响应时间,当使用了事务处理控制器(Transaction Controller)时,也可以以事务为单位显示平均响应时间。
Median:中位数,也就是 50% 用户的响应时间。
90% Line、95% Line、95% Line:大部分用户(90%、95%、99)的响应时间。因为在评估一次测试的结果时,仅仅有平均事务响应时间是不够的。假如有一次测试,总共有10个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒。这样平均时间就毫无意义了。
Min:最小响应时间。
最大值:最大响应时间。
Error%(错误率):本次测试中【出现错误的请求的数量/请求的总数】,就是我们之前说要关注的错误率。
hroughput(吞吐量):默认情况下标示每秒完成的请求数。
KB/sec:每秒从服务器端接收到的数据量。