性能测试之jmeter(二)

jmeter的体系结构

1.名词讲解
元件:如果不作特殊说明,后买你出现的元件代表jmeter工具菜单中的一个子菜单(功能),比如HTTP请求、事务控制器、响应断言等,就是一个元件。
组件:一组元件的集合(一个或多个),比如逻辑控制器中有事务控制器,仅一次控制器,循环控制器等,这些都是元件,但它们被归类到逻辑控制器中,逻辑控制器就是组件。

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

jmeter通过线程组来驱动多个线程运行测试脚本对被测服务器发起负载,每一个负载机上都可以运行多个线程组。jmeter运行场景不仅可以在GUI方式中完成,还可以使用命令行,而且命令行运行的方式对于负载机的资源消耗会更小。
(1)控制机:运用多台jmeter负载机进行性能测试时,被选中作为管理机的那台机器即是控制机。jmeter控制机也可参与脚本的运行,同时它也担负着管理远程负载机指挥远程负载机运行的任务,并且收集远程负载机的测试结果。
(2)负载机:向被测试应用服务器发起负载的机器,控制机同时也是一台负载机。jmeter负载机受控制机(jmeter负载机)管理。与其他支持远程运行的测试工具一样,负载机受控制机管理首先要启动一个客户端程序(Agent:jmeter-server.bat),这样控制机才可以接管负载机。控制机会把运行的脚本隐藏地发送到远程负载机,但是如果运行的测试脚本有参数文件及依赖的 jar包时,控制机并不能把他们发送到远程负载机,这种情况就需要手动拷贝了,当然在利用jmeter做性能测试自动化时可不能这样,我们可以用工具来实现自动拷贝。
(3)远程运行逻辑:远程负载机首先启动Agent程序,待控制机连接;控制机连接上远程负载机;控制机发送指令(脚本及启动命令)启动线程;负载机运行脚本,回传状态(包括测试结果);控制机收集结果并显示。

jmeter中一个脚本即是一个测试计划,也是一个管理单元。jmeter的请求模拟与并发数(设置线程数,一个线程代表一个虚拟用户)设置都在脚本文件中一起设置。测试计划要素如下:
(1)要素一:脚本中测试计划只有一个
Jmeter测试计划类似LoadRunner Controller 中的测试场景,同一时刻场景故然只能有一个,JMeter 脚本在GUI中显示时是树型结构,测试计划是根节点,根节点当然只能有一个。
JMeter测试计划类似LoadRunner Controller中的测试场景,同一时刻场景故然只能有一个,JMeter脚本在GUI中显示时是树型结构,测试计划是根节点,根节点当然只能有一个.
(2)要素二:测试计划中至少要有一个线程组
JMeter 负载是通过线程组驱动的,所以计划中至少要出现一个线程组,也许你只运行一个线程。JMeter测试计划支持多个线程组。我们可以在计划下面建立多个线程组(图3-15测试计划中有两个线程组),类似LoadRunner 中的 Group方式的场景(没接触过 LoadRunner的读者可以自行忽略有关LoadRunner 的说法),把不相关联的业务分布在不同的线程组(LoadRunner 中的不同Group)。所以我们可以把 JMeter计划理解成LoadRunner中的 Group方式场景。
JMeter负载是通过线程组驱动的,所以计划中至少要出现一个线程组,也许你只运行一个线程.JMeter测试计划支持多个线程组.我们可以在计划下面建立多个线程组(图3-15测试计划中有两个线程组),类似LoadRunner中的Group方式的场景(没接触过LoadRunner的读者可以自行忽略有关LoadRunner的说法),把不相关联的业务分布在不同的线程组(LoadRunner中的不同Group)所以我们可以把JMeter计划理解成LoadRunner中的Group方式场景.
(3)要素三:至少要有一个取样器
(2)要素二:测试计划中至少要有一个线程组
(2)要素二:测试计划中至少要有一个线程组

JMeter 负载是通过线程组驱动的,所以计划中至少要出现一个线程组,也许你只运行一个线程。JMeter测试计划支持多个线程组。我们可以在计划下面建立多个线程组(图3-15测试计划中有两个线程组),类似LoadRunner 中的 Group方式的场景(没接触过 LoadRunner的读者可以自行忽略有关LoadRunner 的说法),把不相关联的业务分布在不同的线程组(LoadRunner 中的不同Group)。所以我们可以把 JMeter计划理解成LoadRunner中的 Group方式场景。
JMeter负载是通过线程组驱动的,所以计划中至少要出现一个线程组,也许你只运行一个线程.JMeter测试计划支持多个线程组.我们可以在计划下面建立多个线程组(图3-15测试计划中有两个线程组),类似LoadRunner中的Group方式的场景(没接触过LoadRunner的读者可以自行忽略有关LoadRunner的说法),把不相关联的业务分布在不同的线程组(LoadRunner中的不同Group)所以我们可以把JMeter计划理解成LoadRunner中的Group方式场景.
(3)要素三:至少要有一个取样器
测试的目的就是要模拟用户请求,没有取样脚本就毫无意义,没有意义就不用谈论对错了。
(4)要素四:至少要有一个监听器
测试结果用来衡量系统性能,我们需要从结果中分析系统性能。
其他元件都是为这些要素服务的,到底当前元件下能够添加哪些种类的元件呢?用户不用担心,JMeter做了严格控制。

jmeter工具目录介绍

Bin:其中放置了各项配置文件(比如日志设置、JVM 设置等)、启动文件(JMeter启动快捷方式,报告生成快捷方式,Heap Dump快捷方式等)、启动jar包、示例脚本等。
Docs:放置了jmeter辅助功能,提供与

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值