Jmeter元件

笔记摘自《全栈性能测试笔记》一书

Jmeter元件:

断言:

用来验证结果是否正确,可以帮助我们来判断请求是否成功返回且是否符合要求,在jmeter中我们不叫做检查点(loadrunner叫做检查点),就是用一个预设的结果与实际结果匹配,匹配到则成功,反之则失败

监听器:

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

  1. 添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次使用;
  2. 展示结果,jmeter可以以表格及图形的形式展示结果,方便测试人员分析测试结果。
  3. 访问路径:【测试计划】--【监听器】

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

前置处理器:

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

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

配置元件:

为模拟大量用户操作往往需要做参数化,Jmeter的参数化可以通过配置元件来完成,Eg:CSV Data Set Config,它可以帮助我们从文件中读取测试数据;Jmeter提供了众多函数帮我们生成动态数据,还可以用来记录服务器的返回数据,http cache manager,自动记录服务器返回的cache信息。简单的说就是:它为取样器提供预备数据,然后由取样器发出请求。访问路径:【测试计划】--【配置元件】

取样器:

用来模拟用户操作,向服务器发送http请求、webservice请求或者java请求等,我们可以把http请求元件看成是一个没有界面的浏览器,它可以发送http请求,接收服务器的相应数据。访问路径:【测试计划】--【线程组】--【Sampler】

后置处理器:

一般放在取样器之后,用来处理服务器的返回结果,Eg:一个web应用程序,登录之后会返回一个SessionID,这个SessionID在登录之后的业务操作过程中会作为验证条件,验证用户是否合法登录了。我们利用取样器模拟这个请求时就需要带上这个属性。

那如何获取SessionID,Jmeter帮我们提供了元件,比如:正则表达式提取器,它支持正则表达式的方式来提取数据;

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

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

注意:【前置处理器】、【配置元件】、【后置处理器】是为取样器提供数据支持的,取样器关注的是业务逻辑

控制器:

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

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

定时器:

为了足够真实地模拟用户负载,需要模拟这些请求在同一时刻发送,就好像把大家集合在一条起跑线上,然后一声令响,同时起跑。那么此时我们需要一个集合的功能,Jmeter可以通过定时器来完成这个需求

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

线程组:

性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个工作的,在次元件中,我们可以设置运行的线程数(就是模拟多少用户,一线程一用户)。

访问路径:【测试计划】--【Threads(Users)】

Test Fragment: 一个辅助的组件,作用如下:

  1. 在脚本开发过程中可以用来备份元件
  2. TestFragment下的元件可以被模块控制器调用,可以利用它来模块化请求,供模块控制器调用

工作台:作用:

  1. 在运用JMeter录制http协议脚本时用到它,可以在它下面建立一个http代理服务器元件,设置代理信息进行录制;
  2. 设置服务器监控(不建议用此功能来做测试监控,主要是避免对Jmeter负载产生影响)
  3. 显示当前Jmeter属性信息;
  4. 备份脚本,特别是我们在脚本调试过程中可以把它当做一个元件暂存区。

Jmeter运行原理:

  1. Jmeter中是以线程方式运行的,loadrunner是可以选择以进程方式还是线程方式运行。

因为jmeter是运行在JVM虚拟机上的,每个进程的开销比loadrunner的进程开销要大,如果以进程的方式来运行的话,每台负载机上的进程数量都不会允许太多,当我们要大量并发时就需要大量的负载机,这显然是不经济的,java也是支持多线程的,所以jmeter选择了线程方式来运行。

  1. jmeter通过线程组来驱动多个线程运行测试脚本对被测试服务器发起负载,每个负载机上都可以运行多个线程组。Jmeter运行场景不仅可以在GUI方式中完成,还可以使用命令行,而且命令行的运行方式对于负载机的资源消耗会更小
  2. Jmeter支持远程运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值