用Jmeter完成性能测试

Jmeter

服务器端测试工具,主要用来做性能测试(压力测试/负载测试),Jmeter同样也可以用来做REST API测试,类似Postman。

几个基本概念

Test Plan:测试计划,进行测试的起点,是其他Jmeter测试元件的容器。

Thread Group:线程组,它代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以通过“Test Plan - Add - Thread Group"来建立它。然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。

Sampler:取样器,模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求,如HTTP。

Listener:监听器,负责收集测试结果,同时也被告知了结果显示的方式,重要元素包含Assertion Result, View Results Tree, View Results in Table。

Assertions:断言,用于来判断请求响应的结果是否如用户所期望,是否正确。

Timer:定时器,负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。

步骤

1,新建一个Thread Group,通过设置模拟用户和循环次数可以执行压力测试【1】

2,新建一个HTTP Request,Add - Sampler - HTTP Request,例如要发送一个http请求,Get ${url}。 Name设置请求名字,Server Name设置主机地址,Protocal设置http或https,对应port number是80和443,path设置url的路径。

3,通过Add - Config Element - HTTP Header Manager 可以设置request headers。

4,通过Add - Config Element - User Defined Variables 可以设置用户自定义变量,用时可以通过${var}方式读取。

5,添加View Results Tree或者View Results in Table来看运行结果。

6,通过Add - Assertions - Response Assertion 来添加断言,判断返回的response。

7, 通过Add - Listener - Assertion Results 来查看所有断言的执行结果。

8,通过Add - Post Processors - Regular Expression Extractor, 可以关联两个请求,从第一个请求的response中提取值,提供给第二个请求使用。

【1】压力测试

Jmeter一个很重要的功能就是执行压力测试。

顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)。比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会奔溃。

例子:在一台电脑用Jmeter模拟200个用户,同时去使用bing搜索不同的关键字, 查看页面返回的时间是否在正常范围内。

选中Thread Group, Number of Threads(users): 一个用户占一个线程, 200个线程就是模拟200个用户。Ramp-Up Period(in seconds): 设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。Loop Count: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

选中Thread Group,Add - Listener - Summary Report 来查看压力测试结果。

CrazyQA
原文地址:https://www.cnblogs.com/wayne-zhang/p/8310524.html