zoukankan      html  css  js  c++  java
  • jmeter(一)基础介绍

    JMeter是一个非常流行的性能测试工具,它的优点如下:

    开源,它是一款开源的免费软件,使用它不需要您支付任何费用。

    小巧,相比LoadRunner的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java开发的工具。

    功能强大,JMeter设计之初只是一个简单的Web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。因为它的开源性,当然您也可以根据自己的需求扩展它的功能。

    从性能工具的原理上看,JMeter工具和其他性能工具在原理上完全一致,主要包含四个部分:

    ❶负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。

    ❷用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。

    ❸资源生成器:用于生成测试过程中服务器、负载机的资源数据。

    ❹报表生成器:根据测试中获得的数据生成报表,提供可视化的数据显示方式。

    下面介绍一些常用的概念:

    测试计划

    Test Plan (测试计划):包含与本次性能测试所有相关的功能组件。右键单击“测试计划”弹出菜单,可以看到计划下都有哪些功能模块。

    Threads (Users)线程用户

    线程组、setUp Thread Group 与tearDown Thread Group,虽然名字不一样,但创建之后,其界面是完全一样的。这三种线程组的区别如下:

    ❶Thread Group(线程组)

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

    ❷setUpThread Group

    setUp Thread Group可以理解为对于线程组的初始化和完成时处理。setUp Thread Group是所有我们真正开始线程并发之前的准备工作,必须是在线程组开始之前完成的并且拥有自己独立的线程设置。

    ❸tearDown Thread Group

    tearDown Thread Group是在所有线程组运行结束后进行的。如果线程组场景一直在执行中,那么将永远也轮不到tearDown Thread Group执行。

    控制器

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

    取样器(Sampler)

    取样器(Sample)是性能测试中向服务器发送请求、记录响应信息和记录响应时间的最小单元,JMeter 原生支持多种不同的Sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等。

    每一种不同类型的 Sampler 可以根据设置的参数向服务器发出不同类型的请求。另外,在JMeter 的所有Sampler 中,Java Request Sampler 和 Beanshell Request Sampler 是两种特殊的可定制的 Sampler 。

    逻辑控制器(Logic Controller)

    逻辑控制器,包括两类无件,一类是用于控制Test Plan 中 Sampler 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循环控制器等。

    前置处理器(Pre Processors)

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

    后置处理器(Post Processors)

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

    断言(Assertions)

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

    定时器(Timer)

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

    测试片段(Test Fragment)

    测试片段是在2.5版本之后新加的一个选项。

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

    配置元件(Config Element)

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

    到此,相信您已经对JMeter的基本组成元件有了初步的了解

  • 相关阅读:
    flash中网页跳转总结
    as3自定义事件
    mouseChildren启示
    flash拖动条移出flash无法拖动
    需要一个策略文件,但在加载此媒体时未设置checkPolicyFile标志
    Teach Yourself SQL in 10 Minutes
    电子书本地转换软件 Calibre
    Teach Yourself SQL in 10 Minutes
    Teach Yourself SQL in 10 Minutes
    Teach Yourself SQL in 10 Minutes – Page 31 练习
  • 原文地址:https://www.cnblogs.com/hjianhui/p/9991316.html
Copyright © 2011-2022 走看看