• Jmeter 介绍及基本组件 (1)


    jmeter元件作用域
    在jmeter中,元件的作用域是靠test plan的树形结构中元件的父子关系来确定的
    Jmeter元件执行顺序
    配置元件(HTTP请求默认值)、前置处理器(用户参数)、定时器、取样器(HTTP请求)、后置处理器(正则表达式提取器)、断言(响应断言)、监听器(察看结果树)

    一、JMeter 介绍
     Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web、APP应用程序、及接口)。它可以用来测试静态和动态资源的性能
    jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。因为它的开源性,当然你也可以根据自己的需求扩展它的功能。

    二、使用的版本
    查看jmeter的版本

    三、JMeter 运行
    1. 进入bin目录运行jmeter.bat启动jmeter

    jmeter -n -t zlyc.jmx -l test1.jtl

    减少不必要的资源需求
    怎么减少必须要的资源需求呢?
    在使用jmeter进行性能测试时,你应该:
    使用non-GUI模式,即使用命令行模式
    在压测时,要禁用诸如View Result Tree这类的监听器,因为这类监听器非常耗内存
    在压测时,同样要禁用所有的图形结果监听器
    使用CSV格式的监听器来采集结果
    如果压测时间很长,请只采集必需的结果,对于其他非必须的信息尽量不要采集
    当然了,在调试jmeter脚本时,各种监听器还是需要的,但进入压测模式时,请务必将各种监听器禁用


    四、了解jmeter的基本组成原件

    1、Test Plan (测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就说本的性能测试的所有内容是于基于一个计划的。

    右键单击“测试计划”弹出菜单:

    2、Threads (Users)线程 用户

    虽然有三个添加线程组的选项,名字不一样, 创建之后,其界面是完全一样的。之前的版本只有一个线程组的名字。现在多一个setUp theread Group 与terDown Thread Group

    1) setup thread group 

    一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。

    setUp Thread Group类似于lr的init.可用于执行预测试操作。

    2) teardown thread group. 

    一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。

    tearDown Thread Group类似于lr的end.可用于执行测试后动作。

    3) thread group(线程组).

         这个就是我们通常添加运行的线程。通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。

    线程组:

      名称:就如字面意思,起个有意义的名字就行

      注释:

      线程数:这里选择5

      Ramp-Up Period:单位是秒,默认时间是1秒。它指定了启动所有线程所花费的时间,比如,当前的设定表示“在5秒内启动5个线程,每个线程的间隔时间为1秒”。如果你需要Jmeter立即启动所有线程,将此设定为0即可

      循环次数:表示每个线程执行多少次请求。

    小 结: ================================= 

    一个线程组模块可以包含多个线程,每个线程代表一个用户,这样可以模拟高并发下的请求,并根据网站的响应信息来判断网站的相关性能。

    限制线程数
    一般情况下,建议限制jmeter的的线程数在300及以内。
    当然,如果你的机器硬件足够好,可以将该值往上提升。不过从笔者的实践经验来看,线程数低于300能更好的发挥出jmeter的性能。

    参照:https://cloud.tencent.com/developer/article/1085330

     =================================

    3、测试片段(Test Fragment)

         测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。

     

     

    控制器

    JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。

    4、取样器(Sampler)

        取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler , 如 HTTP Request Sampler 、 FTP  Request Sampler 、TCP  Request Sampler 、 JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。

        在Jmeter的所有Sampler中,Java Request Sampler与BeanShell Requst Sampler是两种特殊的可定制的Sampler.

     小 结: ================================= 

    通过取样器:添加http请求,即手动  添加http接口信息。

     ================================= 

    5、逻辑控制器(Logic Controller)

        逻辑控制器,包括两类无件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器 、 switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的, 如 事务控制器、吞吐量控制器。

     

    6、配置元件(Config Element)

        配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池 (Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改 Sampler的默认数据。

      例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的 cookie 进行管理。

         HTTP 请求默认值不会触发Jmeter发送http请求,而只是定义HTTP请求的默认属性。

     

    7、定时器(Timer)

        定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。类似于LoadRunner里面的“思考时间”。 JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。

     

    8、前置处理器(Per Processors)

        前置处理器用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当RUL中有sessionID 一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID 。

     

    9、后置处理器(Post Processors)

        后置处理器是用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。例如,XPath  Extractor 则可以用于提取响应数据中通过给定XPath 值获得的数据;正则表达式提取器,则可以提取响应数据中通过正则表达式获得的数据。

     

    10、断言(Assertions)

    断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。

     

    11、监听器(Listener)

    这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。 图形结果、查看结果树、聚合报告、用表格察看结果都是我们经常用到的元件。

     

    五、工作台

    在测试中我们可能需要暂时更改一些组件,可以把一些需要更改的组件保存在工作台中,测试完成后再恢复,但是切记:不能退出jmeter.一旦退出jmeter,工作台中的内容就会消失。

    1、工作台-非测试元件-Property Display,此元件相当于是jmeter.properties的GUI。

     

    六、帮助

    http://jmeter.apache.org/usermanual/component_reference.html

    最好的帮助是:菜单-“帮助”-“帮助”。

     

    参考:https://blog.csdn.net/z_1141233305/article/details/73827102

    ==================================================

    nmon  服务器资源监控工具

    https://www.jianshu.com/p/51c96f475eb1

    https://www.testgo.cn/497.html

    https://jingyan.baidu.com/article/63f2362879a53b0208ab3d25.html

    响应时间:2(好)  5(不好)  8(不可接受)  10(不行)

    -----------------------------------------Have a good day!---------------------------------------------------------------------------------------------------
  • 相关阅读:
    Spring MVC之LocaleResolver(解析用户区域)
    java.net.MalformedURLException: unknown protocol: c 这个错一般有两种原因导致: 1、URL协议、格式或者路径错误,
    ServletContext作用功能详解
    javax ee常用类
    前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。
    随着时间的推移:构造SDK路径错误(An error occurred while automatically activating bundle com.android.ide.eclipse.adt)
    Smack+Openfire 接收和发送文件
    AVL旋转树
    创建一个数据库快照
    Mysql事务处理
  • 原文地址:https://www.cnblogs.com/ww-xiaowei/p/10697810.html
Copyright © 2020-2023  润新知