51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2523|回复: 2
打印 上一主题 下一主题

性能测试工具JMeter:基本原理、结构图及各个组成部分介绍

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-1 16:28:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
JMeter基本原理:建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。

 X1-X5是负载模拟的一个过程,使用这些组件来完成负载的模拟

  Y1:包含的是负载模拟部分,负载模拟用户请求

  Y2:结果验证部分,负责验证结果正确性

  Z:负载结果的收集。监听器不仅可以放在线程组之内,也可以放在线程组之外

  1、X1 取样器

  概念:取样器(采样器)用来模拟用户操作,向服务器发出http请求,webservice请求或者java请求等。(脚本,主要进行脚本的控制)

  访问路径:测试计划→线程组→Sample

  2、X1 断言

  概念:断言用来验证结果是否正确。loadrunner中称之为检查点

  访问路径:测试计划→断言

  3、X1监听器

  概念:测试结果需要添加监听器来收集

  监听器有两个任务:

  (1)添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用

  (2)展示结果,以表格及图形的形式展现结果,方便测试人员分析测试结果。

  访问路径:测试计划→监听器

  注意:“查看结果树”一般只在调试中使用,正式测试需要去掉(因为耗IO),改为使用聚合报告

  4、X2 前置处理器

  概念:测试脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作

  访问路径:测试计划→前置处理器

  5、X2 配置元件

  概念:性能测试中为了模拟大量用户操作我们往往需要做参数化,jmeter的参数化可以通过配置元件来完成,比如CSV/DATA/SET/CONFIG,它可以帮助我们从文件中读取测试数据。

  访问路径:测试计划→配置元件

  6、X2 后置处理器

  概念:后置处理器一般放在取样器之后,用来处理服务器的返回结果。比如web应用服务的SessionID

  后置处理器就是专门用来对相应数据做处理的元件,JMeter的关联就是通过后置处理器来完成的。

  访问路径:测试计划→后置处理器

  7、X3 逻辑控制器

  概念:控制器用来完成我们的各种需求

  访问路径:测试计划→线程组→逻辑控制器

  8、X4 定时器

  概念:为了足够真实的模拟用户负载,我们会需要模拟这些请求在同一时刻发送。定时器还有很多其他不同的功能

  访问路径:测试计划→线程组→定时器

  9、X5 线程组

  概念:性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个工作的,在此元件中我们可以设置运行的线程数(就是模拟多少用户、一线程一用户),还可以设置运行时长、定时运行等。另外第三方插件(JMeter Plugin)的扩展也让JMeter的场景设计更加丰富(场景设置)

  访问路径:测试计划→Threads(users)

  线程数:一共多少用户,对我们被测系统进行访问

  Ramp-Up Period(in seconds):加压策略, 表示每个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 如果我设置为0秒,则表示立即启动所有用户。

  循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去, 是为了方便调度器的调用。

  调度器

  持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。

  启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。

  启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。

  结束时间:与启动时间对应,表示脚本结束运行的时间。

  注意:如果我们需要用到调度器来设定持续时间,如果线程数不够多到持续时间结束,我们就必须将循环次数勾选为永远,特别地,如果线程组里面有其他的循环,我们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,需要将永远勾选),否则,按我如上配置,将永远去掉勾选,文本里填1,那么无论你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会停止不再运行。

  10、Test Fragment

  概念:它是一个辅助的组件,在此节点下几乎可以放置任何JMeter测试组件,但它一般不会被运行。他的作用如下

  (1)在脚本开发过程中可以用来备份元件

  (2)TestFragment下的元件可以被模块控制器调用,我们可以利用它来模块化请求(把一个业务封装成一个方法供复用)供模块控制器调用

  访问路径:测试计划→Test Fragment

  11、工作台

  概念:它也不能直接参与运行,他的功能有:

  (1)在运用JMeter录制http协议脚本时就用到他,我们可以在它下面建立一个http代理服务器原件,设置代理信息然后进行录制

  访问路径:工作台→添加→非测试元件

  (2)设置服务器监控(HTTP Mirror Server)

  (3)显示当前JMeter属性信息

  (4)备份脚本,特别是我们在脚本调试过程中可以把它作为一个元件暂存区

  访问路径:工作台



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-20 11:37 , Processed in 0.071212 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表