zoukankan      html  css  js  c++  java
  • jmeter使用小结

    写这篇短文主要想详细介绍一下jmeter中取样器、逻辑控制器、前置处理器、后置处理器、定时器、配置元件等,可能看起来比较繁杂,其实里面很多操作是类似的,一篇总结和记录的博客:

    jmeter官方用户手册链接:https://jmeter.apache.org/usermanual/get-started.html

    jmeter是5.1.1版本;

    jmeter优势有:轻量、易持续集成(对命令行命令的执行和轻量)、易实现自动化、基于Java开发的很多插件等;

    jmeter中各个部分执行的顺序:

    1.配置节点--->2.前置处理器--->3.定时器--->4.采样器--->5.后置处理器--->6.断言--->7.监听器;(后面三个器件在采样器运行有结果后才会执行)

    一、jmeter基础设置:

    1.jmeter线程组:

    主要是通过设置线程组的参数来实现并发,从而进行性能测试,其中黄框内是线程数,蓝框内是实现设置线程数所需时间,绿色框内是循环次数也可选择forever进行持续并发:

    2.jmeter中取样器:

    下图是在线程组中添加采样器,常用的采样器一般是HTTP Request(接口测试)、JDBC Request(连接操作数据库)、Debug Request(调试脚本和查看参数)等:

    下图是HTTP 采样器的一些重要参数:协议、服务名、端口号、请求方法、路径、内容编码,第三个红方框内是关于重定向和连接方式的设置,第四个红框那一栏是请求参数和请求体的设置:

     

    HTTP采样器中高阶的设置是下面图:Retrieve All Embedded Resource(检索所有嵌入式资源)是在网页请求有重定向时需要选中的;

    3.jmeter中逻辑控制器:

    jmeter中逻辑控制器主要是起到控制采样器的作用,实现循环、判断等逻辑结构,常用的逻辑控制器有If Controller(if判断)、Loop Controller(循环)、Transaction Controller(事务)等:

     下面是Loop循环控制器,功能和设置与线程组循环控制一样:

    一次控制器,只执行一次的的逻辑控制器并没有设置项,可作为登录控制,只登陆一次,后面在利用循环和判断控制器执行其他:

     

    4.jmeter中前置、后置处理器:

     前置处理器中常用的有User Parameters(用户参数)、JDBC PreProcessor(数据库)、Bean shell(写代码):

    后置处理器常用的是Regular(正则提取)、Xpath(XML文件提取)、Bean shell(代码):

     

    Bean Shell后置处理器,其中语法类似java,可以导包设置变量调用函数等:

    5.jmeter中定时器:

     

    6.jmeter中配置元件

    配置元件使用还是很频繁的,可以进行各种默认和初始化的参数设置,进行缓存和cookies值的设置等:

     7.jmeter监听器:

    监听器中常用的有查看结果树、聚合报告等,不同监视器只是对服务响应的不同展示,根据自己的需求进行选择合适的监听器,对其中的参数进行分析:

    聚合报告:可以查看并发采样的具体响应参数:采样个数(线程数*循环次数*采样器个数)、错误error率、吞吐量(Throughput,每秒或者没分钟处理的请求个数)、请求和接收的数据大小每秒等;

    查看结果树:可以查看发送的请求数据、响应数据和结果,还可以不同格式查看和保存到本地等;

    二、jmeter中的参数化:

    1.可以通过配置元件或者测试计划中添加UDV(User Defined Variables),无作用域限制的全局变量:

    2.可以通过引入前置处理器或者配置元件设置参数:

    2.1 前置处理器中添加User Parameters:

     

     2.2 可以添加配置元件中的CSV Data Config进行表格读取参数,也可以用函数__CSV Read进行读取CSV文件将其设置为变量:

    CSV Data设置配置有:文件名或者路径、编码方式、变量名(用英文逗号,隔开)、在文件末尾(EOF)进行循环等:

     

    三、jmeter中的关联:

    jmeter中的关联主要是获取采样器中动态的数据,将其传入下一个采样器中进行处理,一般获取动态元素用到后置处理器的正则匹配提取器和Xpath(XML格式)处理器:

    提取一个Body中的token值将其设置为jmeter中的变量,可通过${token}进行使用。

     四、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还用很多扩展的插件能够实现不同需求的测试;

  • 相关阅读:
    petshop4.0(转)
    分层依据(转)
    如何让一个函数返回多个值
    谁访问过我的电脑
    博客第一帖!
    开发辅助工具大收集
    VC 通过IHTMLINTEFACE 接口实现网页执行自定义js代码
    vi命令大全
    #include <sys/types.h>
    #include <arpa/inet.h>
  • 原文地址:https://www.cnblogs.com/zhangcnblogs/p/11785540.html
Copyright © 2011-2022 走看看