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的基本组成元件有了初步的了解

  • 相关阅读:
    PostgreSQL 9.6.2版本在centOS下的安装和配置
    postgreSQL 创建user表时引发的表名大写与双引号问题
    Go JSON嵌套解析失败
    面试杂谈:面试程序员时都应该考察些什么?<转>
    Golang bash脚本自动创建一个go工程
    iOS Debug心得 (持续更新)
    iOS 上传APP到AppStore 卡在 Authenticating with the iTunes store 提示
    iOS 应用打包 设备兼容性问题(Build Active Architecture Only)
    Go 使用自定义包(package)
    Go 连接PostgreSQL数据库
  • 原文地址:https://www.cnblogs.com/hjianhui/p/9991316.html
Copyright © 2011-2022 走看看