jmeter可以做什么测试用来测试安全吗

后使用快捷导航没有帐号?
快速上手Jmeter性能测试工具
查看: 17422|
评论: 0|原作者: 仙豆
快速报名:
随着软件性能测试行业的崛起,我国软件测试人才总体缺口极大,并且以每年15-20%的速度在上升,人才需求均为中大型IT企业。但国内高校在软件测试专业基本空白,人才以稀为贵,正处于地位、薪资双高时期,软件测试工程师作为软件质量的把关者,在企业中的地位也越来越重要。在整个行业中各种性能测试工具也随之层出不穷,各具特色。同时,开源的趋势不可阻挡,如何使用开源免费的性能测试工具完成相关测试工作是很多企业正在考虑的问题。本套课程正是基于以上需求和现状,选择目前市面上最流行的开源性能测试工具Jmeter作为阐述对象,带领大家从零开始、步步为营,以掌握Jmeter的基本概念并熟练使用Jmeter进行测试为目标,快速而高效的学习和使用Jmeter。俗话说,授人以鱼不如授人以渔,本套课程在分享Jmeter各方面的知识和经验的同时,更重要的是引导大家独立思考和解决问题的能力。同时,课程中会将性能测试领域的各种核心概念在多种工具中的实现进行对比,达到更加深入理解的目的。一次课程不可能学到所有知识,但要学到如何获得知识的能力和方法,这样才能走的更远。在这里,你学到的将不仅仅是Jmeter。目前,开源软件在企业和组织中所占的比重在逐年增加。其中,最有说服力的例子就是阿里巴巴的去IOE。阿里去IOE后,不仅避免了需每年支付给各大软件版权公司大量的维护和支持费用,也变相的刺激自身研发能力的提高。在众多开源软件中,Jmeter是一款具有生命力的且应用广泛的性能测试工具。很多互联网公司都在逐步使用或已经使用Jmeter来主导相关的测试工作。掌握一款开源的性能测试工具,对于测试人员的未来发展和技能提高无疑是非常有帮助的。
课程内容:
本套课程详细阐述Jmeter中各组件的基本概念和使用方法,一方面通过实例对Jmeter中各组件进行详细剖析。同时,课程中也会将Jmeter与其他性能测试工具进行对比(例如LoadRunner),加深大家对课程知识点的理解,同时找到各工具之间的共同点和各自特色。按照经验,学习完本套课程后可以对Jmeter有比较深入的了解,可以使用Jmeter独立完成基本的性能测试项目。
课程大纲:
第1课:开源的力量--Jmeter
1. 阐述开源软件的现状和趋势
2. 解析引入和使用Jmeter的原因
3. 对比多种工具,阐述性能测试工具选型原则
4. 阐述Jmeter的优势和劣势
5. Jmeter的安装和目录解析
第2课:初识Jmeter
1. Jmeter界面结构解析
2. Jmeter重要的配置文件解析
3. 实例演示如何使用Jmeter录制页面操作
4. 代理和反向代理解析
5. Jmeter与LoadRunner总体对比
第3课:搭建骨架--Jmeter重要组件介绍
1. Jmeter中的属性和变量
2. Jmeter中的采样器
3. Jmeter中的计时器
4. Jmeter中的前置处理器和后置处理器
5. 通过实例演示Jmeter组件作用域
6. Jmeter与LoadRunner骨架对比
第4课:往骨架上添肉—Jmeter脚本组成和组件搭配
1. 阐述在实际使用中Jmeter脚本组成和开发原则
2. 阐述配置元素和Default元素的区别
3. 通过实例演示HTTP Cookie Manager的使用
第5课:Jmeter中的逻辑控制器(Logic Controller)
1. Jmeter中有多种逻辑控制器,不仅种类繁多,而且功能丰富,本节课将专门对逻辑控制器进行阐述。
2. 实例演示循环逻辑控制器
3. 实例演示条件逻辑控制器
4. 实例演示随机逻辑控制器
5. Jmeter与LoadRunner中该功能的对比
第6课:采样器(Sampler)详细解析
1. 采样器作业和配置详细解析
2. 对重要的采样器的例如HTTP采样器进行详细剖析
第7课:Jmeter中的参数化
1. 参数化的意义和作用
2. 通过实例演示Jmeter中的参数化
3. Jmeter中的参数化与LoadRunner中的参数化的对比
第8课:Jmeter中的关联
1. 关联的意义和作用
2. 通过实例演示Jmeter中的关联
3. Jmeter中的关联与LoadRunner中的关联的对比
第9课:Jmeter中正则表达式和函数
1. 基本的正则表达式
2. Jmeter中如何使用正则表达式
3. Jmeter中函数的概念
4. Jmeter中函数的应用
第10课:Jmeter中的Listener
1. 阐述性能测试工具中Listener的意义
2. Jmeter中常用Listener图表的含义
3. 如何高效的使用Listener
4. Jmeter中的Listener与LoadRunner中的Analysis的区别
第11课:Jmeter扩展插件的使用
1. 阐述可扩展的含义
2. Jmeter中常用的扩展插件
3. 通过实例查看扩展插件的使用效果
第12课:分布式Jmeter
1. 分布式负载生成器的概念和意义
2. 如何在Jmeter中配置server –client模式
3. Jmeter与LoadRunner在分布式上的区别和各自特色
授课时间:课程预计日开课,预计课程持续时间为14周。
授课对象:
刚开始使用Jmeter进行性能测试工作的测试人员,希望更深入了解Jmeter的测试人员,其他希望了解Jmeter的人员。
课程必备:
熟悉测试尤其是性能测试领域的相关概念,了解一些Java领域基本概念更好,但不是必须。
讲师简介:
王磊,毕业于中山大学,多年大型项目测试经验。拥有包括web站点、客户端、网络测试、军用软件测试、第三方软件测评多种类型项目测试经验。
负责过包括广州亚运会票务网站、广州地铁5号线等项目的性能测试。同时对自动化测试和安全测试也有一定涉猎。课程试听:
新颖的课程收费形式:“逆向收费”约等于免费学习,仅收取100元固定收费+300元暂存学费,学习圆满则全额奖励返还给学员!
本门课程本来打算完全免费,某位大神曾经说过“成功就是正确的方向再加上适度的压力”。考虑到讲师本身要付出巨大的劳动,为了防止一些朋友在学习途中半途而废,浪费了讲师的付出,为此我们计划模仿某些健身课程,使用“逆向收费”的方法。
在报名时每位报名者收取400元,其中100元为固定 收费,另外300是暂存学费,即如果学员能完成全部课程要求,包括完成全部的书面和互动作业,则300元全款退回,优秀的学员还可以获得礼品 奖励。如果学员未能坚持到完全所有的学习计划任务,则会被扣款。期望这种方式可以转化为大家强烈的学习愿望和驱动力!
课程授课方式:
1、 学习方式:老师发布教学资料、教材,幻灯片和视频,学员通过网络下载学习。同时通过论坛互动中老师对学员进行指导及学员之间相互交流。
2、 学习作业:老师每周布置书面及互动作业,学员需按时按质完成作业。
3、 老师辅导:根据作业批改中发现的问题,针对性给予辅导,帮助大家掌握知识。
4、 结业测验:通过测验,完成学业。
您是否对此课程还有疑问,那么请 ,您的问题将基本得到解答全国统一咨询热线
课程现开始接受报名,报名方式
网上报名 请点击:咨询Email :,
课程入门讨论咨询群:(群内有培训公开课视频供大家免费观看) 咨询QQ:
(上班时间在线)
最新技术热点、 最新行业资讯,最新培训课程信息,尽在炼数成金官方微信,低成本传递高端知识!技术成就梦想!欢迎关注!
打开微信,使用扫一扫功能,即刻关注炼数成金官方微信账户,不容错过的精彩,期待您的体验!!!
快速报名:
刚表态过的朋友 ()
上一篇:下一篇:clvn 的BLOG
用户名:clvn
文章数:205
访问量:169726
注册日期:
阅读量:5863
阅读量:12276
阅读量:353342
阅读量:1051151
51CTO推荐博文
启动Jmeter的代理服务器右键单击“WorkBench"选择---”Add“--”Non-Test-Elemen“--”HTTP(S) Test Script Recorder“650) this.width=650;" title="j1.png" alt="wKioL1VZ1cWxRAhGAARIIkdEFEc943.jpg" src="/wyfs02/M00/6D/00/wKioL1VZ1cWxRAhGAARIIkdEFEc943.jpg" />2.创建线程组右键单击”Test Plan“---”Add“--”Threads“--”Thread Group“650) this.width=650;" title="j1.png" alt="wKiom1VZ1afQjzBwAAMy8JKdQTU622.jpg" src="/wyfs02/M02/6D/05/wKiom1VZ1afQjzBwAAMy8JKdQTU622.jpg" />3.启动代理650) this.width=650;" title="j1.png" alt="wKioL1VZ2AKRo-4BAAWG-690HBQ846.jpg" src="/wyfs02/M01/6D/00/wKioL1VZ2AKRo-4BAAWG-690HBQ846.jpg" />4.设置浏览器650) this.width=650;" title="j1.png" src="/wyfs02/M01/6D/05/wKiom1VZ2FeQQWUlAAE61VDZrxI018.jpg" alt="wKiom1VZ2FeQQWUlAAE61VDZrxI018.jpg" />5.访问相应的网站,然后查看结果650) this.width=650;" title="J2.png" src="/wyfs02/M00/6D/00/wKioL1VZ2ePi4nCpAAUDD1YFEUw324.jpg" alt="wKioL1VZ2ePi4nCpAAUDD1YFEUw324.jpg" />本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)出处:http://blog.csdn.net
场景:使用jmeter对web应用和mysql数据库进行压力测试
JMeter是一款非常强大的测试工具,可以用来测试web,数据库,从07年用过之后一直对它情有独钟,下面记录下在一个项目中对它的简单使用。
项目分数据库测试和web应用测试
数据库测试比较简单,将要测试的数据库的jdbc driver放到jmeter的lib文件夹,新建线程组,配置起100线程,循环10次,10秒启动所有线程,加入一个jdbc connection configuration,加入要进行的CRUD操作,点击启动按钮,然后通过summary report看performance。
建立线程组,启动100个线程(10s起完),每个线程循环执行所有步骤10次,某个步骤出错也继续执行:
jdbc connection configuration:
CRUD中C,由于数据某些字段要求唯一性,所以加入了一个计数器(counter),来保证字段在数据库的唯一性:
执行ctrl+R,在summary report里面可以看测试数据汇总
在view result tree中可以看每次请求的交互,方便debug
更多debug,可以通过jmeter界面,选项-》log viewer来帮助debug jmeter运行时遇到的问题,要希望log viewer里面显示更多的log,可以修改bin文件夹下面的jmeter.properties
log_level.jmeter=INFO
log_level.jmeter.junit=DEBUG
#log_level.jmeter.control=DEBUG
#log_level.jmeter.testbeans=DEBUG
#log_level.jmeter.engine=DEBUG
#log_level.jmeter.threads=DEBUG
#log_level.jmeter.gui=WARN
#log_level.jmeter.testelement=DEBUG
#log_level.jmeter.util=WARN
#log_level.jmeter.util.classfinder=WARN
#log_level.jmeter.test=DEBUG
#log_level.jmeter.protocol.http=DEBUG
# For CookieManager, AuthManager etc:
#log_level.jmeter.protocol.http.control=DEBUG
#log_level.jmeter.protocol.ftp=WARN
#log_level.jmeter.protocol.jdbc=DEBUG
#log_level.jmeter.protocol.java=WARN
#log_level.jmeter.testelements.property=DEBUG
log_level.jorphan=INFO
作者:cloud_ll 发表于 17:23:44
阅读:82 评论:0
相关 [jmeter jdbc 测试] 推荐:
- CSDN博客互联网推荐文章
场景:使用jmeter对web应用和mysql数据库进行压力测试. JMeter是一款非常强大的测试工具,可以用来测试web,数据库,从07年用过之后一直对它情有独钟,下面记录下在一个项目中对它的简单使用. 项目分数据库测试和web应用测试. 数据库测试比较简单,将要测试的数据库的jdbc driver放到jmeter的lib文件夹,新建线程组,配置起100线程,循环10次,10秒启动所有线程,加入一个jdbc connection configuration,加入要进行的CRUD操作,点击启动按钮,然后通过summary report看performance.
- 小鸥的博客
1. Building a WebService Test Plan参考. 1.
建立WebServiceTest
Plan. 参考
http://jmeter.apache.org/usermanual/build-ws-test-plan.html. 1)
添加ThreadGroup.
- 小鸥的博客
Jmeter测试结果分析这一篇,我打算分成上下两部分. 上篇,主要讲述如何使用jmeter中Assertion对结果进行简单的分类;下篇,主要讲述的是当我们拿到测试结果后,我们应该如何去看待这些测试结果. 用过LoadRunner的人都知道,LoadRunner本身提供了很多函数可以对收集回来的结果进行一些初步的分析.
- OneAPM 博客
大多数人都使用 Jmeter 做过性能测试,但是在使用的过程中你会发现,它不仅可以做性能测试和功能测试,还能够满足基本的接口测试需求. 相比其他工具,Jmeter 入门门槛较低,安装也比较方便,根据自己的需要可以扩展一些插件,总之一句话: 优点太多了. 那么问题来了,为什么要做接口 diff 测试.
- 行业应用 - ITeye博客
Jmeter是一个非常好用的压力测试工具.
Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好.
做压力测试的常用工具.
做压力测试的步骤如下:.
本文做压力测试的例子.
第一步: 使用CSV Data Set Config 来参数化.
- BlogJava-qileilove
  JMeter是Apache组织的开放源代码项目,它是功能和. 性能测试的工具,100%的用. JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、. 数据库和查询、ftp服务器或者其他的资源). JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况.
- 开源软件 - ITeye博客
使用Jmeter进行分布式测试的主要步骤是:. 在所有做为Agent的机器上安装相同版本的Jmeter,然后运行jmeter-server文件. 在Cotroller机器上%Jmeter_Home%/bin下,找到Jmeter.properties,把Agent的ip添加到remote_hosts=192.168.0.1:.0.2:1099行.
- 互联网 - ITeye博客
针对接口的压测,借用SoapUI测试工具录制脚本:. 1、被测接口remindFacade下的getRemindById接口. 步骤:打开jmeter----测试计划下建线程组----线程组下加HTTP请求(下面加断言)----线程组下面加监听器(聚合及查看结果树),基本架子已经ok. 2、ip你需要访问的服务器地址,http协议和post的请求方法,路径是被测接口的路径.
- 博客园_首页
由于Jmeter是一个纯JAVA的应用,用GUI模式运行压力测试时,对客户端的资源消耗是相当惊人的,所以在进行正式的压测时一定要使用non-gui模式运行,如果并发数很高或者客户端的硬件资源比较一般的话,还可以以server模式用多个client进行分布式测试. 一直有朋友问我这个分布式测试要怎么用,我就结合官方文档和自己的实际经验来谈一谈.
- 开源软件 - ITeye博客
这篇文章图片丢失,可以参考翻译前的文章:. 这篇教程讨论的是JMeter,它是一款基于Java的、集合了几个应用程序、具有特定用途的负载和性能测试工具. JMeter的实现方式以及采用的技术. 详细介绍不同的测试计划的配置方法. 所有的例子都是基于Java 8 update 0.20,Eclipse Luna 4.4, JMeter 2.11, MySQL Community Server 5.6.21的开发环境.
坚持分享优质有趣的原创文章,并保留作者信息和版权声明,任何问题请联系:@。使用JMeter进行负载测试——终极指南
使用JMeter进行负载测试——终极指南
&出处: ImportNew
&作/译者:张涛
这篇教程讨论的是JMeter,它是一款基于Java的、集合了几个应用程序、具有特定用途的负载和性能测试工具。
本篇主要涉及的内容:
解释一下JMeter的用途
JMeter的实现方式以及采用的技术
安装与配置
介绍用户界面的基本特征
详细介绍不同的测试计划的配置方法
如何分析结果数据
涉及几个重要的最佳实践
所有的例子都是基于Java 8 update 0.20,Eclipse&Luna 4.4, JMeter 2.11, MySQL Community Server 5.6.21的开发环境。那我们就开始吧!
引言 采用的技术 教程内容简介 安装 用户界面 可用的请求 测试计划和测试组件 执行顺序 启动与停止 HTTP请求的测试计划 MySQL测试计划 JUnit Request测试计划 记录测试 插件 最佳实践 总结 下载 资源
JMeter使用了不同技术和协议,是一款可以进行配置和执行负载测试、性能测试和压力测试的工具。
它能够模拟不同类型的请求,例如各种类型的数据库,FTP, HTTP, HTTPS 或者其他的服务端应用。
最好先来了解一下如下概念:
负载测试: 这类测试使系统或者应用程序在预先设计好的极端场景下测试运行。这类测试用来评估系统或者程序在极端条件下的行为。
性能测试: 这种测试被用来检测系统的性能表现,包括特定情况下,系统的响应能力和稳定性。
压力测试: 这类测试通过载入更多的外部资源,并使系统组件超越其所设定的能力范围,试图使系统挂掉。
JMeter最初的用途是用来测试web应用的,但是它的功能已得到扩展,如今已经可以针对绝大部分的程序进行测试,同时可以在你的程序中进行功能测试。
采用的技术
JMeter是一款Java桌面应用程序,它的用户界面采用Swing Java API实现。基于这两点,JMeter是一个跨平台工具,能够运行在任何安装了Java虚拟机的操作系统(Windows, Linux, Mac)的设备上。 它的框架支持并发和多线程或者线程组的执行。这对于配置负载测试和压力测试非常有用。 它是可扩展的,提供了大量的可用插件。 JMeter是Apache软件基金会下的一个子项目,是完全免费和开源的(http://www.apache.org/licenses/)。
教程内容简介
这篇文章是针对那些没有JMeter使用经验的开发人员和软件设计人员,介绍如何使用JMeter的教程。
同时针对可能不同的配置和测试计划,提供了一些例子和使用说明。在下一个章节中,我们将会看到如何安装JMeter,并配置、运行它,如何保存和分析不同测试计划的结果。
为了JMeter在你的电脑上安装并运行,你需要按照如下步骤进行操作:
首先必须安装java环境。需要在你的电脑上安装JRE 1.6或者更高版本。只要到Oracle官网下载并安装适合您的系统的安装包:&/technetwork/java/javase/downloads/index.html。
设置JAVA_HOME环境变量,使其指向jre的安装目录。Windows用户而言:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_20
注意设置正确你的Java版本。
将java编译路径添加到系统路径下。Windows用户而言,将C:\Program Files\Java\jdk1.7.0_25\bin添加到系统变量Path尾部。
然后测试java环境在你的设备上是否安装成功,使用如下命令行:
java -version
应该输出类似如下信息:
java version&1.8.0_20&
Java(TM) SE Runtime Environment (build1.8.0_20-b26)
Java HotSpot(TM)64-Bit Server VM (build25.20-b23, mixed mode)
从http://jmeter.apache.org/download_jmeter.cgi下载最新版本的JMeter,
将它解压到例如C:\JMeter下(Windows)。
文件夹的结构应该这样:
apache-jmeter-2.9
apache-jmeter-2.9bin
apache-jmeter-2.9docs
apache-jmeter-2.9extras
apache-jmeter-2.9lib
apache-jmeter-2.9libext
apache-jmeter-2.9libjunit
apache-jmeter-2.9printable_docs
然后你就可以进入到C:\jmeter\apache-jmeter-2.11\bin(对于Windows用户),执行jmeter.bat
可以看到JMeter GUI的启动界面:
JMeter的GUI非常直观易用。有文件处理的通用菜单,例如:新建,打开,保存,另存为等。还有启动和停止测试计划,配置的可用的菜单项。每一个测试计划,线程组,测试计划节点(我们将会在下一章看到更多这方面的内容)都可以通过点击鼠标右键,提供不同的上下文菜单选项。
也可以改变用户界面的语言,有许多语言可供选择。
正如我们所说的,图形用户界面是非常直观和易用的,为每个菜单和动作提供了易用理解的工具提示。除此之外,暂且不谈它的质量,那为什么JMeter是如此广泛使用?因为它很容易理解,并且易学。
可用的请求
JMeter几乎提供任何一种系统的测试配置。总的来说,下列协议被包含在内:
Web: HTTP, HTTPS网站 ‘web 1.0′ web 2.0 (ajax, flex 和 flex-ws-amf): 我们以后会看到如何测试一个潜在的网页及其行为
Web 服务: SOAP / XML-RPC.
通过JDBC驱动的数据库。几乎支持任何一种数据库,你需要的就是一个合适的驱动程序包,并放到在JMeter安装目录的正确位置。我们后续将做一个MySQL数据库测试。
路径: LDAP.
基于JMS的面向消息的服务
使用POP3, IMAP, SMTP协议的邮件服务.
使用JUnit和Java应用程序的进行的功能测试
测试计划与组件
基本上,使用JMeter可以进行如下操作:创建,配置,执行测试计划及结果分析。测试计划是对已配置的本地或远程服务器(或客户端)的请求集执行的具体说明。
在一个测试计划的配置中,你可以指定多个输入和输出参数,可以配置使测试计划成功执行或失败的基本条件。
JMeter测试计划是由不同的组件组成。这里有一个最重要组件的列表,指导你如何使用JMeter的用户界面添加它们以及这些插件的作用:
线程组(ThreadGroup)
一个线程组基本上是不同的测试计划元素的组合,它是一个测试计划的核心,它控制着基本核心参数。
为了创建一个测试计划,首先你不得不去创建一个线程组,配置如下参数:线程数量,过渡时期,循环次数和正常情况或者错误情况下的行为:
线程数:执行测试计划的线程数,这个参数对于配置负载和压力测试非常重要。
过渡期:JMeter开始启动所有线程所需时间。
循环次数:即迭代次数,也就是测试计划被执行的次数
错误行为:错误场景下的行为模式:阻止当前线程,停止整个测试,继续执行…
一个线程组也有配置选项的开始和结束时间。通过单击复选框“Scheduler”,弹出带有调度参数的面板,可以为你的测试配置开始和结束时间。
一旦配置完成,你就可以开始添加其他测试计划元素到线程组,例如采样器,侦听器和定时器。我们将在下一章解释这一切。
采样器(Samplers)
采样器用于发送请求到不同类型的服务器。它们是每一个测试计划的基本要素,一切都围绕这些采样器而工作:采样器执行请求(基于配置的请求),这些请求产生一个或多个响应,后续将被分析。
这里有一个在JMeter可用的采样器列表(在本教程我们将看到其中一些):
访问日志采样器
Bean shell取样器
调试采样器
HTTP采样器
Java采样器
JDBC采样器
JMS(几个)采样器
JSR223采样器
JUnit采样器
LDAP(几个)采样器
邮件阅读器
MongoDB采样器
操作系统进程取样器
SMTP采样器
在上面的列表中我们可以看到,有很多不同类型的采样器。这个清单是不完整的,因为存在多种其他不同于JMeter插件的实现技术。每个采样器的配置取决于它所执行的请求;这意味着一些采样器有一些共性的配置,而另外一些采样器由于它们各自请求的不同而完全不同。
逻辑控制器(Logic Controllers)
逻辑控制器允许你配置一个线程组内不同采样器的执行顺序。该列表包含了在JMeter所有可用的逻辑控制器:
简单控制器
循环控制器
一次性控制器
交错控制器
随机控制器
随机顺序控制器
流量控制器
运行时控制器
While控制器
Switch控制器
ForEach控制器
模块控制器
include控制器
事务控制器
记录控制器
监听器(Listeners)
监听器提供不同的方式查看由采样器请求产生的结果。监听器以报表、树型结构、或简明的日志文件的形式分析结果。
还可以在测试计划中的任何地方添加监听器,但他们只会在各自的应用范围内解析和收集来自采样器的数据。
这些都是JMeter可用的监听器:
样品结果配置保存
全图景结果集
图表结果集
样条线可视化工具
断言结果集
树形结果集
表格结果集
简单数据输出
监测结果集
分布图(alpha)
Mailer可视化工具
Beanshell监听器
定时器(Timers)
可以使用定时器来定义请求之间的等待时间。如果不指定,JMeter会一个请求完成后立即执行下一个请求,没有任何等待时间。
可在JMeter使用的计时器如下:
恒定的定时器
高斯随机定时器
均匀随机定时器
恒定吞吐量定时器
同步定时器
jsr223定时器
Beanshell定时器
泊松随机定时器
断言(Assertions)
断言通过验证采样器请求产生的响应,来验证测试计划的有效性。它基本上类似于单元测试断言,用来检测被测试应用程序的响应质量。你可以为每个测试计划配置任何生效的断言。
这里是一个在JMeter可以使用的断言列表:
Bean shell断言
jsr223断言
Duration断言
XML Assertion
BeanShell Assertion
MD5Hex Assertion
HTML Assertion
XPath Assertion
XML Schema Assertion
配置节点(Configuration nodes)
通过使用配置元素你可以将不同的参数传递给取样器请求。他们提供了创建变量(不同的和动态的)的一种方式,这些参数之后被采样器所使用。在采样器被执行前,参数所属节点启动时,这些参数被执行;这就是为什么采样器可以依赖这些变量。
这里是一个在JMeter使用的所有配置节点列表:
CSV数据集配置
FTP请求缺省值
HTTP授权管理
HTTP缓存管理
HTTP cookie管理
HTTP代理服务器
HTTP请求缺省值
HTTP头部管理
Java请求缺省值
密钥库配置
JDBC连接值
登录配置元素
LDAP请求缺省值
LDAP扩展请求缺省值
TCP采样器配置
用户自定义变量
简单配置元素
前置处理器(Pre processors)
在采样器执行前,前置处理器被触发。他们可用于从响应中提取变量,这些变量后续将通过配置元素被采样器所使用。
下面都是可以用来作为前置处理器的元素:
HTML链接解析器
HTTP URL重写修改器
HTTP用户参数修改器
JDBC前置处理器
jsr223前置处理器
正则表达式的用户参数
Beanshell前置处理器
BSF的前置处理器
后置处理器(Post processors)
后置处理器是取样器被执行后被触发执行的元素。他可用于解析响应数据,提取变量,以便后续使用 下列元素可用于后置处理器:
正则表达式提取器
XPath提取器
Result status动作处理器
jsr223 后置处理器
JDBC 后置处理器
BSF后置处理器
jQuery/CSS 提取器
Beanshell 后置处理器
Debug后置处理器
测试计划元素执行顺序
测试计划的元素是有序的,通过以下方式执行:
1–配置节点
2–前置处理器
5–后置处理器(只在有结果可用情况下执行)
6–断言(只在有结果可用情况下执行)
7–监听器(只在有结果可用情况下执行)
一个测试计划可以包含一个或多个测试计划。通过功能性或者技术逻辑将测试组织在一起是一种常见的做法。
运行/停止测试计划
运行一个测试计划,你只需要点击“play”按钮:
点击按钮“Play no pauses”,开始一个测试并忽略所有暂停:
通过点击“停止”按钮,可以停止测试:
也可以禁用执行测试计划。你只需要“切换”的测试计划的状态:
你可以看到在上面的截图中看到,不可执行的计划呈现灰色,但可以修改他们或重新配置。
Web(HTTP)测试计划
在这一章中,我们将看到如何创建一个通过HTTP测试一个特定的网页的测试计划。为此目的,我将用http://www.wikipedia.org网站。
有了足够理论知识,现在我们将看到如何配置一个HTTP请求的测试计划。
重命名“测试计划”,起一个你喜欢的名字
在这一步中,配置测试计划可能会影响线程的行为,您可以添加可能使用到的外部类库。不过我们不打算在这个例子中那样做。
添加线程组
在这一步,你需要创建一个负责执行所有测试组件的线程组,并配置主要属性:线程数,秒级的过渡时期,迭代次数。 在菜单中这样操作
Test Plan -& Add -& Thread -&ThreadGroup
你也可以指定错误情况下行为模式(继续,停止,停止当前线程……)
HTTP请求添加取样器
在这一步,给要测试HTTP请求添加采样器:
Add Sampler-&HTTP Request
我们需要为这种类请求设置不同的属性:
在这个例子中,为要测试的服务器设置名称:www.wikipedia.org(不用指明HTTP或HTTPS协议)。如果需要的话,你应该修改端口,协议,执行方法等。在我们的案例中这是不必要的。这有几个关于配置代理,超时和不同的头信息的参数,但在我们的例子中,使用默认值。
添加结果监听器
为了后续能够看到结果,这是有必要的;就如我们之前在本教程中看到那样,对于我们的http请求的测试计划,有几种可选配置,我们使用结果树:
Add Listener -& View Results Tree
在我们的示例中,我们没有改变任何东西,保留所有配置属性的默认值。
&保存并运行测试计划
File-&Save(或单击“Control + s”)
Run-&Start(或单击“play”)
在监听器中查看结果
我们可以看到,所有的请求已经完成,如预期那样,他们都提供有意义的响应,如此看来,我们测试的网页工作正常(如果这是我们的预期行为)。我们可以玩的转这些结果,检查所有返回的数据。
我们已经配置了一个测试计划,它发送大量请求到指定的服务器并解析响应。接下来我们将看到如何使用其他类型的测试组件,如定时器和断言。
&添加定时器
为了增加一个定时器,我们只要右击测试计划并添加一个定时器:
Add Timer-&Constant Timer
我们配置500毫秒。每一个请求都将在上一个请求执行完成后等待500毫秒。
&添加断言持续时间
在测试计划中,单击右键并添加一个断言持续时间,如果响应时间超过100毫秒,配置错误断言。针对the main sample only选项的配置如下:
Add assertion-&Duration assertion
显然这是因为我们配置的断言持续时间只有100毫秒,如果我们改变这个数字到2000毫秒,几乎所有请求都将按时送达。
添加size assertion
Add assertion-&Size Assertion
我们需确保响应信息的尺寸大于5000字节:
如果我们运行测试计划,我们将会看到响应信息总是大于设定的值,如果响应信息尺寸小于设定值,断言也会失败。
数据库测试计划指南
我们将看到如何配置,运行一个针对MySQL数据库的测试,并对结果进行分析。这个例子是关于MySQL的,也可以使用任何其他类型的数据库如Oracle,MongoDB或别的。
如果你没有在你的电脑安装MySQL,你可以从/downloads/&下载安装MySQL服务器,这是很容易的。
下载MySQL驱动程序
下载MySQL连接器(mysql-connector-java-5.1.6),将它复制到JMeter安装目录下的lib目录下,本例中是C:\jmeter\apache-jmeter-2.11\lib
启动数据库服务器,你可以对它进行查询。
创建数据库
你可以创建一个你想要的数据库,我们这里只是一个非常简单的例子:
createtablejmeter_stuff(idint,namevarchar(50), descriptionvarchar(50));
insertintojmeter_stuff(id,name, description)VALUES(1,&dani&,&the boss&);
insertintojmeter_stuff(id,name, description)VALUES(2,&topo&,&the worker&);
insertintojmeter_stuff(id,name, description)VALUES(3,&tupac&,&the other&);
创建一个测试计划
跟上一章节一样,进行如下操作创建测试计划:一个新的线程组,一个JDBC类型的配置元素和一个新的JDBC类型请求,以同样的方式添加一个监听器来解析和查看结果。
唯一的区别是采样器的类型,在这种情况下使用JDBC采样器。
select*fromjmeter_
JDBC连接配置
添加一个新的JDBC连接配置到采样器:
点击右键 JDBC采样器-&添加连接配置
改变参数如下:
Variable BoundtoPool= samenameasinthe sampler
DatabaseURl=jdbc:mysql://localhost:3306/jmeter
JDBC Driver.mysql.jdbc.Driver
设置用户名密码
保存并执行。
利用之前配置的监听器查看结果。
您可以以类似在HTTP请求的测试计划相同的方式验证和检查输出结果。只要你需要,你也可以添加前置处理器,后置处理器,断言或其他任何一种元素。
您可以以类似在HTTP请求的测试计划相同的方式验证和检查输出结果。只要你需要,你也可以添加前置处理器,后置处理器,断言或其他任何一种元素。
在这种情况下,输出的是SELECT语句的结果。 你可以用这种取样器用于更新数据,以及修改采样器配置的SQL语句。 在下面的屏幕捕获的是请求响应结果的基本信息:
JUnit测试计划
在这一章中,我们将解释如何结合JUnit使用JMeter。从负载和性能的角度来看,JMeter为执行功能测试,提供了非常强大的机制。
首先,需要创建一个像下面的JUnit测试:
publicclassJMeterTest
&&&&publicJMeterTest()
&&&&&&&&// just for testing purposes
&&&&&&&&System.out.println(&calling the constructor&);
&&&&@Before
&&&&publicvoidsetUp()throwsException
&&&&&&&&// just for testing purposes
&&&&&&&&System.out.println(&calling setup&);
&&&&@After
&&&&publicvoidtearDown()throwsException
&&&&&&&&// just for testing purposes
&&&&&&&&System.out.println(&calling tearDown&);
&&&&publicvoidtestMe()
&&&&&&&&for(inti =0; i &30; i++ )
&&&&&&&&&&&&// just asserting randomly in order to check what happens in each case
&&&&&&&&&&&&intrandomNumber = (int)( Math.random() *100);
&&&&&&&&&&&&System.out.println( randomNumber );
&&&&&&&&&&&&assertEquals(0, randomNumber %2);
为了查看JMeter如何使用他们,本试验主要包含两个断言,当然这本教程的目的不是详细解释单元测试或JUnit测试。
添加JUnit测试路径
将单元测试打成一个JAR包,把它复制到JMeter的安装目录下的/lib/JUnit下。确保JAR文件包含你想让JMeter执行的测试类的.class文件。在文章的最后,你可以找到一个带有pom.xml文件的Java项目,你可以直接使用他去生成的JAR文件。现在你只需要编译代码:
mvn compile
或者直接在Eclipse或你喜欢的其他IDE中导出你的项目,生成包括字节码JAR文件。
添加JUnit采样器请求
入前所述,创建一个测试计划,添加一个JUnit类型采样器:Add Sampler-&Junit Request ,配置并执行你想要测试的方法。
在我们的例子中,我们将运行基于JUnit 4的方法,但你也可以勾选框使用JUnit 3。
就像我们在前几章一样,添加一个监听器,以查看结果
运行测试计划
在这里,可以看到我们刚刚创建的JUnit测试结果:
如上述截图所示,我们所有的测试(一个测试,10次循环)都失败了。这是预期的行为,因为我们希望我们的测试失败。其实我们只是写了个单元测试,没有功能上的意义,是无用的。它的目的是要说明如何配置JMeter去执行这些类的单元测试。
在这一章所解释的内容 有助于你使用JMeter提供的便利性的功能进行应用程序的功能测试和业务逻辑的测试.它也很有趣,因为它可以将Java语言的所有优势与JMeter的多线程能力相结合。
HTTP测试记录
现在我们将说明如何配置JMeter记录HTTP请求。为此我们需要Firefox安装在我们的机器,我是用版本32。
让Firefox使用JMeter代理
进入Firefox网络设置,选择手动代理选项和设置为本地主机服务器和端口8080(实际上,这加深了对你的JMeter配置)。之后选中“为所有协议使用代理服务器”。
跟以前一样,首先我们创建一个测试计划。
我们添加了一个新的线程组,给它起名。配置线程组线程数量为50,过渡时期为10秒,循环次数等于1。
添加HTTP请求默认值
在刚刚创建的线程组中添加一个新的配置元素,选择“HTTP Request Defaults”。
在这里你应该填写你想测试服务器名称。
添加记录控制器
现在我们添加一个记录控制器到工作台。
选择工作台,不是测试计划,并添加一个非测试元件的”Test Script Recorder”。
你现在应该让工作台保存起来,并且与你的测试计划无关。保存测试计划不意味着保存了工作台。
配置记录如下:
添加定时器
如果你想为你的记录器添加一个定时器(常量类型),那么该定时器将由每个被记录的HTTP请求所使用。
通过点击记录器启动按钮,你将启动JMeter代理服务器。
如果你为了生成一个HTTP请求而访问一个网页,例如使用Firefox(配置为在本章的第一步解释之后)访问,那么你会看到不同的请求入口出现在你的测试计划记录控制器中。
这些记录实际上是之前访问的web页面的HTTP请求。那些包含在过滤器配置测试脚本配置过的记录将被保存。可以在你的后续测试计划中重新配置使用。
JMeter插件
不同的插件应用的场景和用户不同,其中的一些需要安装,有些不需要安装。
一些非常有用的插件,它们通过一些高级选项来解析结果,并利用图表分析结果 例如http://jmeter-plugins.org/wiki/GraphsGeneratorListener/。
也有一些可用插件,能够将JMeter与你的持续集成工具连接,直接从CI软件运行JMeter,执行测试计划,例如”https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin“。
正如我所说的,随着插件数量的上升,不可能列出所有的插件。所以你在实现自己的插件功能时,尽可能的去互联网上查找一下是否有可用的插件,这对自己是非常有价值的。
你也可以创建你自己的JMeter插件,但这超出了本文的范围。
JMeter最佳实践
在文章末尾,我们要写下两个很有用的技巧和最佳实践:
虽然JMeter UI是一个用于配置和创建不同测试计划非常有用和直观的工具,但是有经验的用户更想使用非GUI模式执行测试计划,存储他们的结果。
你可以通过命令行:
jmeter -n -t test.jmx -l test.jtl.
假设该测试就是你想要执行的测试计划。你必须提供该测试计划的完整存储路径。
监听器对解析结果是非常棒的,但他们也都是资源密集型,需要消耗大量内存,在你的配置使用尽可能少的监听器是有好处的。标记 -l 表示删除所有监视器,如果还没添加监视器,那么这个选项是不需要的。
如果你对测试期间发生了的错误感兴趣,可以在结果树视图中查看”View only errors“标记。
使用变量和循环在相同的采样代替配置几个类似的样品中的变量和参数,他们使用的是唯一的区别。
使用同一个采样器的变量和循环变量,而不是创建好几个这样的采样器,他们间只是变量值不同而已。
当创建的JUnit测试计划时,建议提供有意义的错误和断言信息,以便JMeter输出尽可能被人理解的内容。当进行单元测试时,通常情况下都会给出这样建议,而且完全适用这种情况。
使用Stop(Control + ‘.’)。这将尽可能的立即停止线程。
使用Shutdown(Control + ‘,’)。这就要求在当前任何工作结束后的停止线程。其他工具提示在https://wiki.apache.org/jmeter/jmetershortcuts都可以找到。
到这里就结束了。我们讲了如何安装JMeter,以及如何配置它用于执行不同类型的测试,如HTTP请求,数据库,基于JUnit功能测试。还有很多种JMeter提供的测试类型没有包含在本教程中。本教程的目的是提供一个完整的应用程序说明,以及教你如何配置你的第一个测试计划。
我们也解释了JMeter UI的主要组成部分,以及如何使用它,以及非常好用的JMeter测试计划元素。在最后一章中,我们提到可以为JMeter安装不同插件;对于有高级需求的经验用户来说这是一个非常有趣的。
所有JMeter模板,本文中使用的SQL脚本和Java代码可以在下面的链接下载:JMeter教程。
http://jmeter.apache.org/
http://jmeter-plugins.org/
href=”http://en.wikipedia.org/wiki/Software_performance_testing
http://jmeter.apache.org/usermanual/get-started.html (section 2.4.3 Non-Guide Mode)
https://wiki.apache.org/jmeter/FrontPage
该内容对我有帮助
欢迎给测试窝投稿或参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,并与我们的编辑和其他窝友交流。
3098°|30987 人阅读|0
后发表评论
& 测试窝,促进软件测试领域知识的传播。
联系我们 QQ:
测试窝常年法律顾问:
| 执业证号:80720

我要回帖

更多关于 jmeter可以测试cs 的文章

 

随机推荐