Jmeter就是先创建线程池,多线程运行取样器(Sampler),产生大量负载,运行过程当中用断言验证结果正确与否,用监听器记录测试结果。数据库
取样器若是有参数化需求,交由X2中的前置处理器或配置元件完成。服务器
若是有关联需求,交由后置处理器完成。若是要模拟运行场景,就设置线程组。模拟并发场景,利用定时器设置,控制业务的执行逻辑,用控制器完成。多线程
X1到X5用来模拟负载,统称谓Y1,也可说是模拟用户请求。并发
Y2用断言来验证结果,看结果对不对。函数
Z收集负载的结果,可在线程组内也可在线程组外。性能
X1测试
取样器(Sampler)用来模拟用户操做,发送请求,支持多种协议。线程
断言(Assertions),预设结果,用以与实际结果,看运行是否正确。设计
监听器(Listener),添加结果监听,可供再次分析,或展现结果。3d
测试计划是根节点,其下能够有多个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做为子节点,就可控制其行为。