JMeter基本元素简介
JMeter基本元素简介
一、测试计划
测试计划对象有一个复选框叫做“Functional Testing”(函数测试模式),如果选中,它将使jmeter记录服务端返回的每一个样例的数据,如果你在测试监听器中选择了一个文件,数据将会写到这个文件。如果你正在运行一个很小的测试来确保jmeter配置正确,这是非常有用的,你的服务器也返回了希望的结果。得到的结论是,这个文件会快速的变的很大,jmeter性能将受到影响。
如果你正在做压力测试,这个选项建议关掉(它默认是关掉的)。
如果你没有记录数据到文件,这个选项不会有效果。你也可以在监听器中配置哪些字段要存储。
二、线程组
线程组元素是任何测试计划的开始点。所有的控制器和样本器必须在一个线程组下。其他元素,例如:监听器可以直接放在测试计划下,这样的话,它将应用于所有的线程组。顾名思义,线程组元素控制着线程的数量,jmeter将使用这些线程执行你的测试。线程组的管理允许你做如下的事情:
1、设置线程的数量;
2、设置提升的周期;
3、设置执行测试的次数;
每一个线程都将独立于其他线程,完整的、完全的执行测试计划。多个线程被用来模拟并发连接到服务应用。提升周期告诉jmeter花费多长时间提升到所有的线程数,如果线程数设置为10,提升周期设置为100秒,jmeter将花费100秒唤起10个线程并且运行。每一个现场将在前一个线程开始10(100/10)秒后开始。如果有30个线程,提升周期设置为120,每一个连续的线程将会延迟4秒。提升周期需要足够的长以避免测试开始时,巨大的工作负载,并且使得最后一个线程开始间隔第一个线程结束足够的短。
提升周期 = 线程的数量做上下调整
默认的,线程组配置只执行一次。线程组也提供了一个调度器。点击线程组底部的复选框,可以使额外的区域有效或失效,那些区域可以输入测试的周期、启动延迟、启动开始时间和结束时间。你可以配置持续时间和启动延迟控制每一个线程组的持续时间和多少秒后启动。当测试开始后,jmeter将等待启动延迟时间后,启动启动线程组中的线程,并且执行配置的持续时间。这两个选项将覆盖掉配置的开始时间和结束时间。或者(虽然没有推荐哪个更适合)你可以设置其他的两个域,开始时间和结束时间。当测试开始以后,jmeter等待到达开始时间。在每一个周期的结尾,jmeter检查结束时间是否已经到达,如果到了,运行将停止,否则,测试将继续进行直到循环结束。
三、控制器
jmeter有两种类型的控制器:样本器和逻辑控制器。他们驾驭着测试的进程。样本器告诉jmeter发送请求给服务,例如:添加http请求样本,如果你想jmeter发送http请求。你也可以通过给样本器添加一个或多个配置元素定制请求。逻辑控制器让你定制逻辑,jmeter使用这个逻辑决定什么时候发送请求。例如:你可以添加交替逻辑控制器交替执行两个http请求样本。
3.1 样本器
样本器告诉jmeter发送请求给服务并且等待相应。他们按照在树中出现的顺序执行。控制器可以用来修改样本器的重复次数。jmeter的样本器包含:
FTP Request
HTTP Request (can be used for SOAP or REST Webservice also)
JDBC Request
Java object request
JMS request
JUnit Test request
LDAP Request
Mail request
OS Process request
TCP request
每一个样本器都有几个可以设置的属性。你可以在测试计划中添加一个或更多的配置元素定制样本器。如果你打算发送同一种类型的多个请求到相同的服务,可以考虑使用默认的配置元素。每一个控制器都有一个或多个默认元素。记得为你的测试计划添加一个监听器来观看和存储每一个请求的结果到硬盘上。如果你对jmeter平台的响应的基本验证感兴趣,添加一个断言器到样本器。例如:压力测试一个web应用,服务返回一个成功的http响应码,但是页面可能有错误或者缺失了一部分。你可以添加断言器确定http的标签。通用的错误字符串等。jmeter让你通过正则表达式创建断言器。
3.2 逻辑控制器
逻辑控制器可以改变来自子元素的请求顺序。他们可以修改自己的请求,使jmeter重复请求。为了了解测试计划中逻辑控制器的效果,看一下下面的测试树:
这个测试计划的第一个事情就是只执行一次的登录请求,随后的迭代将跳过这一步,这是仅执行一次控制器的效果。登录之后,下一个样本器将加载搜索页,这是一个简单的请求,没有通过逻辑控制器。加载搜索页之后,我们想执行一次搜索。实际上我们想执行两个不同的搜索,可是,我们想在两次搜索之间重新加载搜索页,我们可以通过4个简单的http请求元素来执行(加载搜索页、搜索A、加载搜索页、搜索B)。在这里,我们使用代替方案,使用交替控制器,它一次传递一个子请求通过测试,它保持着子元素的顺序。交替两个子请求可能过于频繁了,但它也可以很容易的有8个,或者20个子请求。
提醒一下,http默认请求 是属于交替控制器的,设想一下,搜索A和搜索B共享相同的路径信息,两个搜索请求,命中相同的后端搜索引擎。相比配置两个相同信息的http样本器,我们可以抽象出信息到一个单一的配置元素。当交替控制器传递请求时,它会用http默认请求中的值去填充空白项。所以我们将那些请求的PATH项空白,把这些信息放到配置元素中。这充其量只是一个小小的好处,但是它展示了这个特性。
树中的下一个请求是另外一个http默认请求,这次是添加到线程组本身。线程组有一个内嵌的逻辑控制器。它使用这个元素像上面描述的那样。它填充任何请求的空白信息。它在web测试中非常的有用,在你所有的http请求样本器中省去域名项,把这些信息放到http默认请求元素中,并添加到线程组中。你可以在不同的服务上测试你的应用,而仅仅修改一个配置项,否则你要编辑每一个样本器。
最后一个元素是http cookie管理器,cookie管理器应该添加到所有的web测试中,否则jmeter将会忽略cookie,将他添加到线程组的级别,我们确保了所有的http请求共享相同的cookie。
四、测试碎片
测试碎片元素是一个特殊类型的控制器,它存在测试计划树中,和线程组有相同的级别。它区别与线程组的地方就是除非它包含在模块控制器或者include控制器,否则他不会被执行。
这个元素就是为了测试复用的。
五、监听器
监听器提供了访问jmeter收集的测试用例的信息。图结果监听器在图上绘制响应的次数。视图结果树展示请求和响应的细节,还可以显示响应的xml和html。其他的监听器提供总结和聚集的信息。
另外的,监听器可以将数据传输的文件中为以后使用呢。jmeter的每一个监听器都可以指定文件的路径。也有一个配置按钮可以选择哪个文件保存。监听器可以在测试的任何地方添加,直接包含在测试计划下。它自从它的这个级别以下的元素中获取数据。
JMeter的一些基础元素介绍完了,下一篇将介绍如何使用。
JMeter基本元素简介的更多相关文章
- jmeter入门简介(一)
简介 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试CS/BS的软件.它可以用来测试静态和动态资源的性能,可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析 ...
- jmeter函数简介
1._char:把一组数字转化成Unicode字符. 2._counter:记录线程的迭代次数. 3._CSVRead:可以从文件中指定列的值. 4.${_CSVRead(D:\test.txt,0, ...
- jmeter 接口测试简介
前言: 本文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对 ...
- 压力测试之badboy和Jmeter的简单使用方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 所谓压力测试是指,通过确定一个系统的瓶颈或者不能接收的性能点, ...
- 转:jmeter实践
本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自己动手对系统进行自动压测和模拟用户操作访问请求.最后还用linux下的压测工具ab做了简单对比. 1. ...
- JMeter性能测试入门--偏重工具的使用
1.JMeter整体简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试 ...
- jmeter入门案例(二)
jmeter入门简介(一)下载及元件介绍https://www.cnblogs.com/wish5714/p/9714930.html jmeter典型的http请求示例 业务场景 银行卡收单交易,模 ...
- 转:基于Jmeter的MQTT测试插件
基于Jmeter的MQTT测试插件-上 1. Jmeter插件简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.下载 用于对软件做压力测试,它最初被设计用于Web应用 ...
- MQTT压力测试工具之JMeter插件教程
基于Jmeter的MQTT测试插件-上 1. Jmeter插件简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.下载 用于对软件做压力测试,它最初被设计用于Web应用 ...
随机推荐
- 60、jQuery其余操作
上篇主要介绍了jQuery,和一些基本用法,这篇主要讲解动画.常用事件.还有一些jQuery的补充内容. 本篇导航: 动画 常用事件 插件 jQuery API 中文文档 一.动画 1.基本 show ...
- iOS 网络状态判断方案(支持iOS11和iPhoneX)
在之前的iPhone中.我们可以根据导航栏上方的网络状态view.来判断网络状态.(这种方案本来就不太好) 这种方案在iPhone X 手机上.不可使用. 我们可以通过 Reachability 来 ...
- 在QComboBox的基础上实现复选功能
这个是最近的一个项目上需要实现的功能.要求如下: 下拉列表的项目可以多选 显示框不能编辑 所选中的项目在显示框中出现 下面根据网上的提示代码(参照博客 一去二三里),主要实现如下代码(与参照略有不同) ...
- C#语言和SQL Server第十三 十四章笔记
十三章 使用ADO.NET访问数据库 十四章使用ADO.NET查询和操作数据库 十三章: ...
- python科学计算_numpy_ndarray
ndarray:n-dimensional array object,即多维数组对象,是python自带的array对象的扩展,array对象和list对象的区别是array对象的每一个元素都是数值, ...
- java 泛型基础问题汇总
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java语言引 ...
- SQLServer 查看SQL语句的执行时间
在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能. 通过设置STATISTICS我们可以查看执行SQL时的系统情况.选项有PROFILE,IO ,TIME.介绍如下 ...
- swiper轮播问题之二:默认显示3张图片,中间显示全部两边显示部分
其二:项目遇到比较有点要求的轮播图,默认显示3张图片,中间显示全部,两边显示部分.如图: 网上找了也没有找到合适的,最后经过自己摸索写了出来,贴出代码分享给大家. CSS .swipe ...
- redmine 安装(Centos 6.5 x64)
参考:http://www.linuxidc.com/Linux/2015-03/115545.htm 平台搭建 1)基础环境 yum -y install libyaml-devel zlib-de ...
- SSM中(Spring-SpringMVC-Mybatis)(二:整合)
使用Maven整合一个SSM,当然要配有Maven环境,Maven的环境配置自行百度,挺好配的 创建一个Maven项目以后,目录结构如图所示: 然后就是各部分配置: 首先pom导入依赖jar包: &l ...