初识Jmeter

初识Jmeter

结构

Jmeter就是先建立线程池,多线程运行取样器(Sampler),产生大量负载,运行过程中用断言验证结果正确与否,用监听器记录测试结果。

取样器如果有参数化需求,交由X2中的前置处理器或配置元件完成。

如果有关联需求,交由后置处理器完成。如果要模拟运行场景,就设置线程组。模拟并发场景,利用定时器设置,控制业务的执行逻辑,用控制器完成。

X1到X5用来模拟负载,统称谓Y1,也可说是模拟用户请求。

Y2用断言来验证结果,看结果对不对。

Z收集负载的结果,可在线程组内也可在线程组外。

X1

取样器(Sampler)用来模拟用户操作,发送请求,支持多种协议。

断言(Assertions),预设结果,用以与实际结果,看运行是否正确。

监听器(Listener),添加结果监听,可供再次分析,或展示结果。

测试计划是根节点,其下可以有多个Thread Group,起始可配setUp Thread Group和tearDown Group。在每个Group下可创建其它节点,模拟各类实际行为。辅之以参数配置,完成复杂的场景设计。

X2

Pre Processors 准备环境和参数,比如发送数据库请求就得先连接数据库。

Config Element 为模拟大量用户操作,往往要做参数化,这就交由配置元件完成。Jmeter还提供了函数,用来动态生成数据。总之就是为Sampler预备数据。

Post Processors 用来处理服务器的返回结果,

X3

Logic Controller 模拟业务逻辑

X4

Timer 控制请求的发送时间,比如模拟大量请求并发

X5

就是模拟大量用户,一个线程对应一个用户

其它

Test Fragment 其下可以放任何测试元件,但一般不会运行。用来备份元件,或是被模块控制器调用。

Non Test Elements 

原理

setUp与tearDown分别为开始与结束,可以在当中做些初始化和收尾的工作,可以不用,会在Group之前执行,非并发。(Thread Group为并发执行)

中间的Thread Group为主体请求。

  

新建请求,Jmeter本身是基于协议层的,所以这里都是不同的请求协议

设置请求的各个参数,无他。

在测试计划中添加View Results Tree和Summar Report,监听请求。

点击运行,可以在Tree中查看结果。这里发起了3次请求,绿色即表明请求成功。

左侧可以选择请求结果的表示形式,右侧Request选项卡有请求的具体信息,Response Data则为响应数据。

可以选择正则测试器,对请求结果进行正则匹配,如<title>(.*)</title>。用正则就可以设置测试点,取变量,做关联等其它 操作。

这是对线程的设置。性能测试的思想就是看服务端如何响应请求,这里就是在设置线程数,运行区间,循环次数等。

 

逻辑控制器是为了模拟各类场景。新建一个控制器作为父节点,在其下创建request作为子节点,就可控制其行为。

原文地址:https://www.cnblogs.com/yifeixu/p/10693211.html