写这篇短文主要想详细介绍一下jmeter中取样器、逻辑控制器、前置处理器、后置处理器、定时器、配置元件等,可能看起来比较繁杂,其实里面不少操做是相似的,一篇总结和记录的博客:shell
jmeter优点有:轻量、易持续集成(对命令行命令的执行和轻量)、易实现自动化、基于Java开发的不少插件等;数据库
jmeter是5.1.1版本;缓存
jmeter中各个部分执行的顺序:cookie
1.配置节点--->2.前置处理器--->3.定时器--->4.采样器--->5.后置处理器--->6.断言--->7.监听器;(后面三个在采样器运行有结果后才会执行)并发
1、jmeter基础设置:框架
1.jmeter线程组:分布式
主要是经过设置线程组的参数来实现并发,从而进行性能测试,其中黄框内是线程数,蓝框内是实现设置线程数所需时间,绿色框内是循环次数也可选择forever进行持续并发:oop
2.jmeter中取样器:性能
下图是在线程组中添加采样器,经常使用的采样器通常是HTTP Request(接口测试)、JDBC Request(链接操做数据库)、Debug Request(调试脚本和查看参数)等:测试
下图是HTTP 采样器的一些重要参数:协议、服务名、端口号、请求方法、路径、内容编码,第三个红方框内是关于重定向和链接方式的设置,第四个红框那一栏是请求参数和请求体的设置:
HTTP采样器中高阶的设置是下面图:
3.jmeter中逻辑控制器:
jmeter中逻辑控制器主要是起到控制采样器的做用,实现循环、判断等逻辑结构,经常使用的逻辑控制器有If Controller(if判断)、Loop Controller(循环)、Transaction Controller(事务)等:
下面是Loop循环控制器,功能和设置与线程组循环控制同样:
一次控制器,只执行一次的的逻辑控制器并无设置项,可做为登陆控制,只登录一次,后面在利用循环和判断控制器执行其余:
4.jmeter中前置、后置处理器:
前置处理器中经常使用的有User Parameters(用户参数)、JDBC PreProcessor(数据库)、Bean shell(写代码):
后置处理器经常使用的是Regular(正则提取)、Xpath(XML文件提取)、Bean shell(代码):
5.jmeter中定时器:
6.jmeter中配置元件
配置元件使用仍是很频繁的,能够进行各类默认和初始化的参数设置,进行缓存和cookies值的设置等:
7.jmeter监听器:
监听器中经常使用的有查看结果树、聚合报告等:
2、jmeter中的参数化:
1.能够经过配置元件或者测试计划中添加UDV(User Defined Variables):
2.能够经过引入前置处理器或者配置元件设置参数:
2.1 前置处理器中添加User Parameters:
2.2 能够添加配置元件中的CSV Data Config进行表格读取参数:
3、jmeter中的关联:
jmeter中的关联主要是获取采样器中动态的数据,将其传入下一个采样器中进行处理,通常获取动态元素用到后置处理器的正则匹配提取器和Xpath(XML格式)处理器:
提取一个Body中的token值将其设置为jmeter中的变量,可经过${token}进行使用。
4、jmeter中的分布式:
在单机进行压力测试时,解决压力不够或者单机压测效果不理想等问题时会用到分布式压测,须要多台电脑进行压测,其中须要一台控制,多台工做:
1.注意事项:
相同版本的jmeter和JDK;关闭杀毒软件;在同一子网下;
2.实现jmeter分布式压测框架图:
3.实现步骤:
(1)在全部slaves上启动jmeter-server;
(2)在master控制机的配置文件上把slaves的ip地址添加到remote_hosts=[ip1,...,ip5],而后重启master上的jmeter;
(3)在master上的jmeter启动测试脚本,查看监听器的结果;
————————————————————————————————————————————————————
jmeter中BeanShell能够写代码实现一些参数的设置和获取,jmeter还用不少扩展的插件可以实现不一样需求的测试;