Jmeter基础系列3-主要组件介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/heye13/article/details/83542644

为了方便后续Jmeter讲解,我们在这里统一一下名称概念。

元件:如果不作特殊说明,后面出现的元件代表Jmeter工具菜单中的一个子菜单(功能),比如HTTP请求、事务控制器、响应断言等,就是一个元件。

组件:一组元件的集合(一个或多个),比如逻辑控制器中有事务控制器,仅一次控制器,循环控制器等,这些都是元件,但是它们被归类到逻辑控制器中,逻辑控制器就是组件

  1. 测试计划(Test Plan)是使用Jmeter进行测试的起点,它是其他Jmeter测试元件的容器
  2. 线程组(Thread Group)代表一定数量的并发用户,它可以用来模拟并发用户发送的请求
  3. 取样器(sampler)定义实际的请求内容,被线程组包含,我们主要用HTTP请求
  4. 监听器(Listener)
  5. 逻辑控制器(Logic Controller)
  6. 断言(Assertions)
  7. 配置元件(Config ELement)
  8. 前置处理器(Pre processors)和后置处理器(Post processors)
  9. 定时器(Timer)

1、测试计划

  • 测试计划:是使用Jmeter进行测试的起点,它是其他Jmeter测试元件的容器
  • 名称:你可以为你的测试计划取一个有意义的名字
  • 注释:对测试计划的注释
  • 用户定义的变量:用户可以自己定义变量,在用到此变量的时候直接用${变量名}引用即可,例如变量名=url,值=http://www.badu.com,在需要时,直接用${url}就可以
  • add directory or jar to classpath:向类路径即%JMETER-HOME%\BIN中添加目录及jar包

2、线程组:

  • 名称:为线程组起名字
  • 线程属性-线程数:设置发送请求的用户数目,即并发数。
  • 线程属性-Ram-Up-Period(in seconds):线程间的时间间隔,单位是秒。即所有线程在多少时间内启动。
  • 线程属性-循环次数:请求的重复次数,如果选择后面的forever(默认),那么请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数,如果是0,会出现问题。
  • 调度器配置-持续时间:测试计划持续多长时间,会覆盖结束时间
  • 调度器配置-启动延迟:测试计划延迟多长时间启动,会覆盖启动时间

注意:4.0版本以上的已经去掉了启动时间和结束时间

3、取样器

取样器用来模拟用户操作,向服务器(被测系统)发出http请求、webservice请求或者java请求等。我们可以把http请求元件看成是一个没有界面的浏览器,它可以发送http请求,接收服务器响应的数据。

取样器的访问路径:【测试计划】-【线程组】-【Sampler】

4、监听器

Jmeter的测试结果需要添加监听器来搜集,Jmeter结果收集程序的设计模式就是监听器模式。Jmeter的监听器有两个任务。

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

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

监听器的访问路径是:【测试计划】-【监听器】

【取样器】、【断言】、【监听器】组合在一起就可以帮我们完成发送请求、验证结果及记录结果三项工作。

5、逻辑控制器

我们在收邮件时,只需要登录一次邮箱既可查看多封邮件。如果这个场景我们在Jmeter中实现,我们需要控制登录的次数,如何实现呢?Jmeter逻辑控制器中的仅一次控制器就可以完成。当然了,控制器不只是这一个,还有很多其他的控制器来完成我们的各种需求。

控制器的访问路径:【测试计划】-【线程组】-【逻辑控制器】

6、断言

断言用来验证结果是否正确,用过LR的读者应该会知道检查点这个功能,可以帮助我们来判断请求是否成功返回且是否符合要求,在Jmeter中我们不叫检查点,我们叫断言,接触过selenium的也会懂这个概念。就是用一个预设的结果(值、表达式、时间长短等条件)与实际结果匹配,匹配到则成功,反之失败。

断言访问路径:【测试计划】-【断言】

7、配置元件

性能测试中为了模拟大量用户操作我们往往需要做参数化,Jmeter的参数化可以通过配置元件来完成,比如CVS Data Set Config,它可以帮助我们从文件中读取测试数据。另外Jmeter也提供了众多的函数来帮我们生成动态数据。当然配置元件的作用不仅于此,它还可以用来记录服务器的返回数据,比如HTTP Cache Manager,自动记录服务器返回的Cache信息。简单说就是它为取样器提供预备数据,然后由取样器发出请求。

配置元件访问路径:【测试计划】-【配置元件】

8、前置处理器和后置处理器

在测试脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作,那么我们可以在前置处理器中来完成这些工作。比如我们在对数据库进行操作前需要先建立一个数据库连接,那么前置处理器就可以完成这个功能。

前置处理器访问的路径:【测试计划】-【前置处理器】

后置处理器一般放在取样器之后,用来处理服务器的返回结果,比如一个web应用程序,我们登录后会返回一个sessionID,这个sessinID在登录之后的业务操作过程中会作为验证条件,验证用户是否合法登录了。我们利用取样器模拟这个请求时就需要带上这个属性,那么如何获取呢?首先我们要知道这个sessionID从哪来?它是由服务器返回的。接着我们要获取它,用什么工具获取呢?Jmeter帮我们提供了元件,比如正则表达式提取器,它支持正则表达式的方式提取数据。

后置处理器就是专门用来对响应数据做处理的元件。

访问路径:【测试计划】-【后置处理器】

9、定时器

为了足够真实地模拟用户负载,我们有时会需要模拟这些请求在同一时刻发送,就好像把大家集合在一条起跑线上,然后一声令下,同时起跑。那么我们此时需要一个集合的功能,Jmeter中可以通过定时器来完成这个需求。当然了,定时器不只有这个功能,定时器种类有很多,每一种代表了不同的功能,基本能够满足我们所有幻想

访问路径:【测试计划】-【线程组】-【定时器】

这一节大概的把主要的元件介绍了一下,下一节就开始创建一个http请求实例。

猜你喜欢

转载自blog.csdn.net/heye13/article/details/83542644