美文网首页
JMeter从入门到放弃 - 1. 安装与基础概念介绍

JMeter从入门到放弃 - 1. 安装与基础概念介绍

作者: 波波茶三分甜 | 来源:发表于2018-11-23 11:27 被阅读0次

    一、JMeter介绍

        JMeter是Apache开发的是一款开源软件,使用Java实现,可以使用来加载测试功能和测试性能,最初设计的初衷是为了测试Web应用程序,但是随着扩展,也可以测试其他测试功能。

        JMeter可以用于测试静态和动态资源,以及Web动态应用程序的性能,可用于模拟服务器

    二、安装

    环境需求,jdk≥1.7.0

    法1:官网下载安装包解压(没试过)

    http://jmeter.apache.org/download_jmeter.cgi

    法2:使用brew安装

    brew install jmeter

    安装完成后直接输入jmter即可

    或者进入jmeter安装目录,直接双击打开

    三、基本概念的介绍

    1. Thread Group(线程组)

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

        1) setup thread group  

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

        2) teardown thread group.  

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

      可能你还是不太理他们与普通的线程组有什么不同。 如果您用过junit,想必你不会对setup ,teardown这2个字眼陌生。 即时每用过,也没关系。 熟悉loadrunner的应该知道,loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块。 那么这里 setup thread group 和 teardown thread group 就是分别指这两部分。  其实从本质上来看,他们并没有什么不同。

        3) thread group(线程组).

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

    2. Sampler(采样器)

        Sampler是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP  Request Sample 、TCP  Request Sample 、JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。(在jmeter 的所有sampler 中,Java Request Sampler 和 Beanshell Request Sampler 是两种特殊的可定制的 Sampler ,后面会深入讨论。)

    3. Pre Processors(前置处理器)

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

    4. Config Element(配置元件)

    5. Post Processors(后置处理器)

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

    6. Logic Controller(逻辑控制器)

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

    7. Timer(定时器)

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

    8. Assertions(断言)

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

    9. Listener(监听器)

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

    10. Test Fragment

        总结:JMeter体系结构由X, Y, Z三个维度组成,X1-X5是负载模拟的过程,使用这些组件来完成负载的模拟;Y1包含的是负载模拟部分,负责模拟用户请求,Y2用来验证结果,负责验证结果的正确性;Z负责负载结果的收集,即监听器。

        JMeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。如果取样器中有参数化的需求,可以通过X2中的配置元件或者前置处理器来完成,如果有关联需求,可以用过后置处理器来完成。如果我们想要设置运行场景,比如模拟多少用户,运行多长时间,就设置线程组。如果我们想要模拟并发场景,可以用定时器设置;如果我们想要控制业务的执行逻辑,比如登录只运行一次,我们可以用控制器来完成。

    四、工作区介绍

        如图所示,我们将其分为3个部分:

        区域1是一个目录树,用来存放测试设计过程中使用到的元件;执行过程中默认从根节点开始遍历树上的元件,工作台也可以用来存放元件,但其中的元件不会被执行,可以用这块做备份

        区域2是测试计划的编辑区域。可以定义整个测试计划的共用的全局变量,这些变量对多个线程组有效。

        区域3是菜单栏,图标是快捷方式,常用的有运行


    该文章部分来源互联网,如有侵权请联系删除

    参考资料

    JMeter官网 http://jmeter.apache.org/

    《全栈性能测试修炼宝典 JMeter实战》

    https://www.cnblogs.com/fnng/archive/2012/12/21/2828440.html

    相关文章

      网友评论

          本文标题:JMeter从入门到放弃 - 1. 安装与基础概念介绍

          本文链接:https://www.haomeiwen.com/subject/fpgtxqtx.html