Jmeter入门培训
《Jmeter入门培训》课件
它是一种强大的工具,可以模拟 多个用户同时访问应用程序或网 站,以测试其性能和承受能力。
JMeter通过模拟用户行为来生 成测试计划,并收集和分析结果 数据,帮助开发人员和测试人员
评估系统的性能。
JMeter的用途
负载测试
JMeter可以模拟大量用 户同时访问应用程序或 网站,以测试其负载能
在JMeter中,可以使用各种图 表和报告来分析性能测试结果 ,例如实时图表、聚合报告、
总结报告等。
性能测试结果分析可以帮助我 们发现系统中的瓶颈和问题, 并提供改进和优化的建议,以 便更好地提升系统的性能和稳 定性。
04 JMeter常见问题及解决方案
CHAPTER
JMeter无法启动问题
总结词
能和稳定性。
输标02入题
在JMeter中,可以使用CSV Data Set Config来参数 化请求。CSV Data Set Config可以从CSV文件中读 取数据,并将其作为参数传递给请求。
01
03
参数化请求可以帮助我们模拟不同用户的行为,例如 不同的用户ID、用户名、密码等,以便更好地测试系
跨平台
JMeter可以在多个操作系统 上运行,如Windows、Linux
和Mac OS。
易于使用
JMeter提供了直观的用户界 面和丰富的文档,使得用户可
以快速上手。
强大的扩展性
JMeter提供了丰富的插件和 脚本语言支持,可以满足各种
复杂的测试需求。
02 JMeter基础操作
CHAPTER
安装与配置
其提取出来。
提取出来的数据可以用于后 续的测试或分析,例如比较 提取出来的数据与预期结果 是否一致,或者计算提取出 来的数据的平均值、最大值
JMeter 使用手册文档
Jmeter使用手册目录目录 (1)一、简介: (3)二、入门: (4)2.1 需求 (4)2.1.1 Java 版本 (4)2.1.2 操作系统 (4)2.2 可选 (5)2.2.1 Java 编译器 (5)2.2.2 SAX XML解析器 (5)2.2.3 Email 支持 (5)2.2.4 SSL 加密 (5)2.2.5 JDBC 驱动 (5)2.2.6 Apache SOAP (6)2.3 安装 (6)2.3.1 下载最新版本 (6)2.4 运行JMeter (6)2.4.2 使用代理服务器 (6)2.4.3 非用户界面模式(命令行模式) (7)2.4.4 服务器模式 (7)2.4.5 通过命令行覆盖属性 (7)2.4.6日志和错误信息 (8)2.4.7 命令行选项目录 (8)2.5 配置JMeter (9)三、创建一个测试计划 (10)3.1 添加和删除元件 (10)3.2 加载和保存元件 (10)3.3 配置树元件 (10)3.4 运行一个测试计划 (10)3.5 作用域规则 (10)四、测试计划元件 (12)4.1 后置处理器元件 (12)4.2 执行顺序 (12)五、使用Jmeter测试 (13)5.1创建一个网站测试计划 (13)5.1.1添加用户 (13)5.1.2 添加默认HTTP请求属性 (14)5.1.3 添加Cookie 支持 (15)5.1.4 添加HTTP 请求 (16)5.1.5 添加一个监听器到试图储存测试结果 (17)5.1.6 保存测试计划 (18)5.1.7 运行测试计划 (18)5.2创建一个高级web测试计划。
(18)5.2.1 用URL重写处理用户会话 (18)5.2.2 使用消息头管理 (18)5.3创建一个数据库测试计划 (18)5.3.1 添加用户 (19)5.3.2 添加JDBC请求 (20)5.3.3添加一个监听器浏览/保存测试结果 (23)5.3.4保存测试计划 (24)5.3.5 运行测试计划 (24)5.3.6 JDBC设置 (24)5.4创建一个FTP测试计划 (25)5.4.1添加用户 (25)5.4.2添加默认FTP请求配置 (26)5.4.3添加FTP请求 (28)5.4.4添加一个监听器浏览/保存测试结果 (29)5.4.5保存测试计划 (30)5.4.6运行测试计划 (30)5.5构建一个Web服务测试计划 (30)5.5.2添加web服务请求 (32)5.6创建JMS主题测试计划 (32)5.6.1添加用户 (32)5.6.2添加JMS订阅者和发布者 (33)5.6.3添加一个监听器浏览/保存测试结果 (35)5.6.4保存测试计划 (36)5.6.5运行测试计划 (36)5.7监听器介绍 (36)5.7.1屏幕捕获 (37)5.7.2非GUI测试运行 (37)5.7.3资源使用 (37)5.7.4 CSV日志格式 (37)六、Badboy+JMeter压力测试 (38)七、JMeter压测OA系统 (47)八、参考资料 (50)一、简介:Apache JMeter是100%纯java桌面应用程序,被设计用来测试C/S结构的软件(例如web应用程序)。
全栈性能测试修炼宝典JMeter实战
JMeter作为一款优秀开源性能测试工具,被广泛应 用
JMeter简介
JMeter是一款开源的、基 于Java的压力测试工具
支持多线程并发,可模拟 大量用户请求
可用于对静态和动态资源 进行性能测试
提供丰富的测试结果展示 和导出功能
02
JMeter基础
安装与配置
安装Java环境
JMeter需要Java运行环境,确保已 安装合适版本的Java。
吞吐量、错误率等。
02
配置测试脚本
在控制器上配置好相应的测试脚本, 包括请求的URL、请求头、请求体
等信息。
04
分析测试结果
收集并分析测试结果数据,找出系 统性能瓶颈和潜在问题,并提出优
化建议。
07
总结与展望
课程回顾与总结
JMeter基础概念与原理
深入讲解了JMeter的核心概念和 工作原理,包括测试计划、线程组、 取样器、监听器等关键组件。
在每个压力生成器上安装JMeter,并 配置好相关的测试脚本和参数。
启动压力生成器 启动所有的压力生成器,并确保它们 能够正确地连接到控制器,并接受控 制器的指令。
实施分布式压力测试
01
设计测试场景
根据实际需求设计不同的测试场景, 包括并发用户数、请求类型、请求
频率等参数。
03
启动测试
通过控制器启动测试,并监控测试 过程中的各项指标,如响应时间、
报告评审
根据分析结果,提出针对性的优化建议,包 括硬件升级、代码优化、系统配置调整等方 面的建议。
组织相关人员对测试报告进行评审和讨论, 确保报告质量和准确性。
05
JMeter高级功能应用
参数化设置技巧
jmeter入门
1.入门1.0概述使用JMeter时,您通常会遵循以下过程:1.0.1测试计划建设为此,您将在GUI模式下运行JMeter。
然后,您可以选择从浏览器或本机应用程序记录应用程序。
您可以使用菜单文件→模板...→录制请注意,您也可以手动构建计划。
确保您阅读本文档以了解主要概念。
您还将使用以下选项之一调试它:∙运行→开始暂停∙运行→开始∙在线程组上验证和查看结果树渲染器或测试人员(CSS / JQUERY,JSON,Regexp,XPath)。
确保在构建测试计划时遵循最佳实践。
1.0.2负载测试运行准备好测试计划后,即可开始负载测试。
第一步是配置将运行JMeter 的喷射器,这与任何其他负载测试工具一样,包括:∙根据CPU,内存和网络纠正机器大小∙操作系统调整∙Java设置:确保安装JMeter支持的最新Java版本∙增加Java堆大小。
默认情况下,JMeter以1 GB的堆运行,这可能不足以进行测试,并且取决于您的测试计划和要运行的线程数一切准备就绪后,您将使用命令行模式(称为非GUI模式)运行它以进行负载测试。
不要使用GUI模式运行负载测试!使用非GUI模式,您可以生成包含结果的CSV(或XML)文件,并让JMeter 在Load Test结束时生成HTML报告。
默认情况下,JMeter会在运行时提供负载测试的摘要。
您还可以在测试期间使用Backend Listener获得实时结果。
1.0.3负载测试分析加载测试完成后,您可以使用HTML报告分析负载测试。
1.0.4让我们开始吧开始使用JMeter的最简单方法是首先下载最新的产品版本并进行安装。
该版本包含构建和运行大多数类型测试所需的所有文件,例如Web (HTTP / HTTPS),FTP,JDBC,LDAP,Java,JUnit等。
如果要执行JDBC测试,那么您当然需要供应商提供相应的JDBC驱动程序。
JMeter没有任何JDBC驱动程序。
JMeter包含JMS API jar,但不包括JMS客户端实现。
软件性能测试工具Jmeter入门级教程案例
软件性能测试工具Jmeter入门级教程案例性能测试工具Jmeter入门级教程案例JMeter学习(一)工具简单介绍一、JMeter 介绍Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。
它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。
JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
同时,JMeter可以帮助你对你的应用程序进行回归测试。
通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。
为了更高的适应性,JMeter允许你使用正则表达式来创建这些assertions.JMeter与LoadRunner比较JMeter 是一款开源(有着典型开源工具特点:界面不美观)测试工具,虽然与LoadRunner 相比有很多不足,比如:它结果分析能力没有LoadRunner详细;很它的优点也有很多:?开源,他是一款开源的免费软件,使用它你不需要支付任何费用,?小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java 开发的工具。
?功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。
因为它的开源性,当然你也可以根据自己的需求扩展它的功能。
两者最大的区别:jmeter不支持IP欺骗,而LR支持。
缺点使用JMeter无法验证JS程序,也无法验证页面UI,所以要须要和Selenium配合来完成Web2.0应用的测试。
二、JMeter 下载安装1)JMeter安装1.解压文件到任意目录2. 安装JDK,配置环境变量JAVA_HOME.3. 系统要求:JMeter2.11 需要JDK1.6以上的版本支持运行4. JMeter可以运行在如下操作系统上:Unix,Windows 和Open VMS.5. 避免在一个有空格的路径安装JMeter,这将导致远程测试出现问题。
Jmeter(十六)-从入门到精通-JMeter前置处理器(详解教程)
Jmeter(⼗六)-从⼊门到精通-JMeter前置处理器(详解教程)1.简介 前置处理器是在发出“取样器请求”之前执⾏⼀些操作。
如果将前置处理器附加到取样器元件,则它将在该取样器元件运⾏之前执⾏。
前置处理器最常⽤于在取样器请求运⾏前修改其设置,或更新未从响应⽂本中提取的变量。
前置处理器主要是⽤来处理请求前的⼀些准备⼯作,⽐如参数设置、环境变量设置等等。
2.预览前置处理器 ⾸先我们来看⼀下JMeter的前置处理器,路径:线程组(⽤户)->添加->前置处理器();我们可以清楚地看到JMeter5中共有8个前置处理器(不包括jp@gc开头的前置处理器,这个是宏哥安装的插件),如下图所⽰:如果上图您看得不是很清楚的话,宏哥总结了⼀个思维导图,关于JMeter5的前置处理器类型,如下图所⽰:通过以上的了解,我们对前置处理器有了⼀个⼤致的了解和认识。
下⾯宏哥就给⼩伙伴或则童鞋们分享讲解⼀些通常在⼯作中会⽤到的前置处理器。
3.常⽤前置处理器详解这⼀⼩节,宏哥就由上⽽下地详细地讲解⼀下常⽤的前置处理器。
3.1JSR223 PreProcessorJSR223 预处理程序,⽤于对于采集器进⾏处理,且是在sampler启动之前。
1、我们先来看看这个JSR223 PreProcessor长得是啥样⼦,路径:线程组 > 添加 > 前置处理器 > JSR223预处理程序,如下图所⽰:2、关键参数说明如下:Name:名称,可以随意设置,甚⾄为空;Comments:注释,可随意设置,可以为空;Language:语⾔,开发脚本选择的语⾔,使⽤的JSR223语⾔,可根据需要选择;Parameters:参数,传递给脚本的参数;File Name:⽂件名,本地开发的脚本⽂件(会覆盖在JMeter⾥编写的脚本);Script compilation caching:存储编译的脚本,默认勾选;Script:要运⾏脚本。
jmeter使用详解
jmeter使⽤详解1、如何在jmeter中调⽤⾃⼰写的⽅法a、先在IDEA⼯具⾥⽤Java编写⼯具类(如加解密⽅法),然后打包成jar⽂件;b、将jar包放到\apache-jmeter\lib\ext⽬录⾥c、在beanshell⾥就可以⽤import的⽅式导⼊⼯具包举例:import cn.vv.vone.testengine.utils.EncryptUtils;String str ="{\"pageSize\":10,\"pageNo\":1,\"reviewflag\":0}";String body =EncryptUtils.encryptRequest(str);vars.put("body",body);2、jmeter常⽤内置变量1)vars不跨线程vars.put(String key,String value);vars.get(String key);更多⽅法可参考:2)props该变量引⽤了JMeter的配置信息,可以操作jmeter属性(跨线程,可当全局变量使⽤,只能操作String类型)props.get("START.HMS"); 注:START.HMS为属性名,在⽂件jmeter.properties中定义encoding = props.get("sampleresult.default.encoding");props.put("PROP1","1234");3)log写⼊信息到jmeber.log⽂件("XXXX");("sampleresult.default.encoding="+encoding);4)prev获取前⾯的sample返回的信息,常⽤⽅法:prev.getResponseDataAsString():获取响应信息prev.getResponseCode() :获取响应codeprev.setResponseCode("222");prev.setResponseMessage("响应值返回成功");prev.setResponseData("qiaoyeye你好","UTF-8");更多⽅法可参考:5)sample6)ctx该变量引⽤了当前线程的上下⽂ctx.getThreadNum();更多⽅法可参考:3、jmeter BeanShell使⽤⽅法BeanShell是⼀种松散类型的脚本语⾔,⽐如变量可以不⽤定义变量类型,此时默认为全局变量;打印⽅法print()。
Jmeter入门使用
Jmeter⼊门使⽤JMeter的简单使⽤1.JMeter简介Apache JMeter是Apache组织开发的基于Java的压⼒测试⼯具。
⽤于对软件做压⼒测试,它最初被设计⽤于Web应⽤测试,但后来扩展到其他测试领域。
它可以⽤于测试静态和动态资源,例如静态⽂件、Java ⼩服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器,等等。
JMeter 可以⽤于对服务器、⽹络或对象模拟巨⼤的负载,来⾃不同压⼒类别下测试它们的强度和分析整体性能。
另外,JMeter能够对应⽤程序做功能/回归测试,通过创建带有断⾔的脚本来验证你的程序返回了你期望的结果。
为了最⼤限度的灵活性,JMeter允许使⽤正则表达式创建断⾔。
2.安装与配置2.1. ⼯具/原料●JDK 1.7●Apache JMeter 3.02.2. 环境JMeter可以在Windows/Linux/Mac平台上运⾏,这⾥介绍在Windows 上的安装配置。
2.3. 安装步骤●安装JDK,⽹上下载⼀个JDK,配置好环境变量即可使⽤。
在dos界⾯输⼊java -version,能显⽰版本号,则证明JDK安装OK,可以使⽤。
●安装Jmeter:Jmeter不需要安装,解压之后即可使⽤;双击Jmeter的bin⽬录下的jmeter.bat,出现下⾯界⾯,则Jmeter启动成功,Jmeter就绪。
3.HTTP接⼝测试3.1. 测试实例以⼀个简单的接⼝为例:/doc/983e39af541810a6f524ccbff121dd36a32dc427.html /get?key2=value2&key1=value1在浏览器中打开的效果如下:在这⾥,成功的⽤浏览器访问了这个接⼝,并得到了成功的返回报⽂。
下⾯我们⽤Jmeter 来访问这个接⼝。
3.2. 使⽤Jmeter进程HTTP测试3.2.1.添加线程组右键“测试计划”->“添加”->“Threads(Users)”->“线程组”3.2.2.添加“HTTP请求”●右键“线程组”->“添加”->“Sampler”->“HTTP请求”●打开之后,填⼊访问该接⼝所需要的参数,效果如下图Tips:1.服务器名或IP:这⾥填写服务IP地址(不带端⼝),有域名的直接填写域名2.端⼝号:这⾥填写端⼝号,有域名的这⾥为空就好。
软件性能测试工具JMeter从入门到进阶
Jmeter从入门到进阶目录1、基础介绍简单介绍jmeter的元件组成,作用等基础知识;2、录制脚本简述了jmeter录制脚本的2种方式;3、元件的作用域及执行顺序jmeter各元件的作用域及执行的顺序;4、Sampler之SOAP/XML-RPC Request取样器中关于SOAP/XML-RPC Request的用法;5、Sampler之HTTP请求取样器中关于HTTP请求的用法;6、http请求之content-type取样器中关于HTTP请求的补充说明;7、Sample之JDBC Request取样器中关于JDBC请求的用法;8、JDBC Request之Query Type取样器中关于JDBC请求的补充说明;9、目录结构jmeter目录结构等简单介绍;10、参数化jmeter参数化的4种方式;11、关联之正则表达式提取器jmeter关联之正则表达式提取器的用法;12、关联之XPath Extractorjmeter关联之XPath Extractor的用法;13、配置元件之计数器jmeter配置元件中关于计数器的用法;14、配置元件之HTTP属性管理器jmeter配置元件中关于http属性管理器的用法;15、函数助手jmeter内置函数助手的简单介绍;16、定时器jmeter八大元件之定时器的介绍;17、断言jemter八大元件之断言的介绍;18、逻辑控制器jmeter八大元件之逻辑控制器的介绍;19、常见问题及解决方法jmeter使用过程中常见问题及解决方案的说明;20、阶梯式加压测试jmeter扩展插件Stepping Thread Group的简单介绍;21、jmeter常用插件介绍jmeter插件Transactions per Second、Response Times Over Time、PerfMon Metrics Collector的下载安装及使用;22、内存溢出原因及解决方法关于jmeter做压力负载测试时候遇到内存溢出的原因和解决方法;23、jmeter分布式测试关于高并发情况下分布式测试的一些技术点和注意事项;24、dubbo接口测试利用jmeter的dubbo插件进行dubbo接口测试和性能测试;25、linux环境运行jmeter并生成报告linux环境,非GUI模式运行jmeter脚本进行性能测试,并生成测试报告的介绍;jmeter(一)基础介绍jmeter是一款优秀的开源性能测试工具,目前最新版本3.0版本一、优点1、开源工具,可扩展性非常好2、高可扩展性,用户可自定义调试相关模块代码3、精心简单的GUI设计,小巧灵活4、完全的可移植性和100%纯java5、完全swing和轻量组件支持(预编译的HAR使用javax.swing.*)包6、完全多线程框架,允许通过多个线程并发取样以及单独的线程对不同的功能同时取样7、支持脚本取样器二、安装及下载jmeter本身不需要安装,只需要配置好JDK环境,然后在在jmeter文件中的bin文件中打开jmeter.bat文件即可最新版本,建议配置的JDK最好用1.7及以上版本三、基础构成1、组成部分1)负载发生器:产生负载,多进程或多线程模拟用户行为2)用户运行器:脚本运行引擎,用户运行器附加在进程或线程上,根据脚本模拟指定的用户行为3)资源生成器:生成测试过程中服务器、负载机的资源数据4)报表生成器:根据测试中获得的数据生成报表,提供可视化的数据显示方式·2、主要概念2.1测试计划(test plan)描述一个性能测试,包含本次测试所有相关功能2.2.threads(users)线程Setup thread group:一种特殊类型的线程,可用于执行预测试操作。
完整的JMETER使用手册
JMETER中文手册1. 简介Apache JMeter是100%纯java桌面应用程序,被设计用来测试客户端/服务器结构的软件(例如web应用程序)。
它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。
JMeter可以用来在一个服务器、网络或者对象上模拟重负载来测试它的强度或者分析在不同的负载类型下的全面性能。
另外,JMeter能够通过让你们用断言创建测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。
为了最大的灵活性,JMeter允许我们使用正则表达式创建断言。
1.1 历史Apache软件组织的Stefano Mazzocchi是JMeter的创始人。
他编写它起初是为了测试Apache JServ的性能(一个已经被Apache Tomcat工程所替代的工程)。
我们重新设计JMeter来增强用户界面并增加功能测试的能力。
1.2 未来我们希望看到作为开发者利用它的可插入架构使JMeter的功能快速扩展。
未来发展的主要目标是在没有影响JMeter的负载测试能力的情况下尽可能使JMeter 成为最实用的回归测试工具。
2. 入门开始使用JMeter最容易的方法是首先下载最新版并且安装它。
这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI等测试时使用需要的所有文件。
如果你想执行JDBC测试,你当然需要从供应商得到适当的JDBC驱动。
JMeter 没有提供任何JDBC驱动。
你可能需要下载的其它软件:∙BeanShell- BeanShell函数和测试元件需要∙Java Activation Framework- JavaMail需要∙Java Mail- Mail可视化,Mail Reader 和WebService(SOAP)取样器需要∙JMS- JMS 取样器需要∙General Java download page详细参见JMeter Classpath一章安装附加的jar包∙下一步, 开始使用JMeter并且参见用户手册创建一个测试计划一章使自己更加熟悉JMeter基础 (例如,添加和删除元件)。
jmeter性能测试及性能调优 PPT
目 录
Contents
二.性能测试脚本介绍 1.事务 2.参数化 3.断言 4.关联 5.集合点 6.思考时间
1.事务:用户自定义的一个标识,用来衡量不同的操作所花费的时间,事务时间反映的是一个 操作过程的响应时间。
2.参数化:参数化作为测试脚本中最基本的使用技巧,需要每个从事性能测试的小伙伴都能熟练掌握。
3 .断言: jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似; 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。 使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。
2.性能测试资源的监控: 2 .1安装工具nmon: (我这边有下载的工具及安装步骤)
2.2 用nmon 监控工具收集后台资源 收集命令: ./nmon_x86_64_centos6 -f -s 6 -c 30
说明:-f 以文件的形式输出,默认输出是机器名+日期.nmon的格式,也可以用-F指定输出的文件名,例如: -s是采样频率,隔多长时间收集一次,这里我指定的是6秒一次;
说的有些太严肃了,简单举个例子,比如我们要测试用户注册的功能,注册的用户名是不允许重复的。我们录制完 的 脚本都是hard code,直接进行并发测试的话,无疑所有模拟用户的线程在注册的时候输入的都是相同的用户名和密 码,这样肯定是会有很多错误请求无法达到服务端,也就不能产生我们预期的负载压力。这时候,针对用户名就需要我 们使用参数化的技巧来实现,每个注册的用户每次注册都使用不同的用户名来填写注册信息。
• 内存使用率:无性能压力:0%~50%、有一定性能压力:50%~70%、达到性能阀 值:70%~80%、严重性能问题:80%~100%
jmeter教程
jmeter教程使用Jmeter进行http接口测试前言:本文主要针对http接口进行测试,使用Jmeter工具实现。
Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http 接口的测试。
一、开发接口测试案例的整体方案:?? 第一步:我们要分析出测试需求,并拿到开发提供的接口说明文档;第二步:从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点。
??? 第三步:和开发一起对接口测试案例进行评审。
第四步:结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。
第五步:结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。
二、接口自动化适用场景:目前设计的自动化接口测试案例有两个运行场景:1. 测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。
【开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。
】2. 回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。
三、接口测试环境准备? Jdk1.6或以上:?? Jmeter,下载址址:插件的下载安装地址:四、创建工程:1、打开Jmeter:下载好Jmeter后,双击bin目录下的jmeter.bat文件:2、添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。
Jmeter中文手册(完全版)
安装JDK:JAVA的环境变量设置使用鼠标右击“我的电脑”->属性->高级->环境变量系统变量->新建->变量名:JAVA_HOME 变量值:d:\jdk系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;系统变量->新建->变量名:CLASSPATH 变量值:.;安装TomcatCATALINA_HOME=d: \tomcatUser Manual用户手册1 介绍Apache JMeter 是100%纯JAVA桌面应用程序, 被设计为用于测试CS结构的软件.同时也可以用来测试静态和动态资源的性能, 例如:静态文件, Java Servlets, CGI Scripts, Java Object, 数据库和FTP服务器等等. JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能.同时, JMeter可以帮助你对你的应用程序进行回归测试. 通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值. 为了更高的适应性, JMeter允许你使用常规表达式来创建这些assertions.2 开始2.1 安装下载安装最新的版本, 将会包含所有你需要建立和运行Web, FTP, JDBC和JNDI测试的文件. 如果你想进行JDBC测试, 你需要使用合适的JDBC driver. JMeter中不包含JDBC drivers.其他可能需要下载的软件:●Bean Shell●Java Activation Framework – needed for Java Mail●Java Mail – needed for mail visualiser and SOAP test●JMS – for JMS samples●General Java Kit接下来一步, 就是浏览”建立测试计划”一章来熟悉JMeter的基本操作, 例如:添加和删除元素. 最后,浏览适当的章节来学习如何建立不同种类的测试计划. 例如, 如果你对Web 应用程序的测试比较感兴趣, 就浏览”建立一个Web测试计划”章节. 其他种类的测试计划建立的章节包括:JDBC, FTP和JNDI.一旦你熟悉了建立和运行JMeter测试计划, 就可以开始熟悉各种配置参数, 例如: timers, listeners, assertions和其他的参数, 来帮助你更好地控制你地测试计划.2.2 系统要求JMeter 1.8 以上的版本需要JDK1.4以上的版本支持运行.JMeter可以运行在如下操作系统上: Unix, Windows和Open VMS.2.3 可选项目如果你打算进行JMeter开发或者使用Sun的Java标准扩展包,你需要如下所列的可选包:2.3.1 Java Compiler需要1.4以上的JDK版本2.3.2 SAX XML ParserJMeter默认使用Apache的Xerces XML parser. 如果你想使用一个不同的XML parser, 将第三方的parser包放入JMeter的classpath中,然后使用设置的parser包的全名更新文件jmeter.properties2.3.3 Email SupportJMeter拥有有限的邮件功能来发送测试结果到指定邮箱中. 应用邮箱功能,需要将Sun的JavaMail包放入JMeter的classpath中并激活.2.3.4 SSL Encryption为使用HTTPS测试web服务器, JMeter需要设立SSL机制. 将所需要的SSL类包放入JMeter 的classpath中, 更新jmeter.properties来注册SSL Provider.可以使用SSL Manager 用来管理这些证书.注意: 在JDK 1.4以上版本, SSL已经作为标准库加入.2.2.5 JDBC Driver你需要将你的数据库供应商提供的JDBC drivers添加到classpath中来进行JDBC测试.2.2.6 Apache SOAPApache SOAP测试需要mail. jar和activation.jar. 只需要将下载的两个jar文件复制到JMeter下的lib目录中, JMeter会自动的识别和使用它们.2.3 运行运行JMeter, 使用jmeter.bat (windows) 或 jmeter (UNIX).2.3.1 JMeter的classpathJMeter自动在/lib和/lib/ext目录中的jar中的类. 如果你想添加其他JAR文件到JMeter 的classpath中,你必须复制他们到lib目录中.如果你开发了一个JMeter特定组件, 生成jar包后复制到lib目录下的ext目录中.而且,你也可以将有效的jar文件安装到$JAVA_HOME/jre/lib/ext目录中.值得注意的是设置CLASSPATH环境变量没有任何作用. 这是因为JMeter使用”java –jar”开始, java命令自动忽略CLASSPATH值, 同时-jar选项的使用将屏蔽掉-classpath 和-cp选项.2.3.2 使用代理服务器如果你在防火墙或者代理服务器后进行测试, 你需要给JMeter提供防火墙和代理服务器的hostname和port号. 在命令行运行 jmeter.bat或jmeter命令并使用如下参数:-H 代理服务器的hostname或者IP地址-P 代理服务器的port号-u 代理服务器验证使用的用户名-a 代理服务器验证使用的用户密码示例:jmeter –H yahoo –P 8080 –u test –a password2.3.3 非GUI模式对于那些非交互的测试, 你可以使用非GUI的模式运行JMeter. 使用如下命令:-n 指定的JMeter运行在non-GUI模式下-t 包含测试计划的JMX文件的名称-l 用于记录简单结果的JTL文件名称.-r 运行所有的在jmeter.properties中指定的远程主机.(或在命令行中提供的覆盖属性提供的远程主机名.也可以同时提供防火墙或者代理服务器的信息-H 服务器名或IP地址-P 端口号示例:jmeter –n –t my.jmx –l log.jtl –H yahoo –P 88002.3.4 服务器模式为了对分布式测试, 可以运行在服务器模式下, 然后通过GUI来控制每个服务器.运行jmeter-server/jmeter-server.bat, 附加下列可选项:-H 代理服务器的hostname或IP地址-P 端口号示例:jmeter-server –H yahoo –P 80002.3.5 通过命令行来重载PropertiesJava system properties, JMeter properties和logging properties 能够直接通过命令行来直接重载而不用修改jmeter.properties文件. 使用以下参数项:-D[prop name]=[value] 定义一个java system property值-J[prop name]=[value] 重载一个JMeter property-L[category]=[priority] 重载一个logging setting, 设置一个指定的类别名给指定的优先级别-L标志位可以不指定category,将其设为root级别示例:jmeter –Duser.dir=/home/mstover/jmeter_stuff \ -Jremote_hosts=127.0.0.1 –Ljmeter.engine=DEBUGjmeter –LDEBUG注意: 命令行输入的properties在启动时先处理, 但是晚于logging system的建立. 所以尝试使用-J标志去更新log_level或者log_file的properties将没有任何效果.2.3.6 Logging和error信息如果JMeter检查到一个错误, 一个信息就被写道log文件中. Log文件的名字是在jmeter.properties文件中定义的. 默认值位jmeter.log, 在JMeter的开始目录中可以看到, 例如 bin目录中.除了记录错误信息, jmeter.log文件中同时记录了一些测试运行的信息. 例如:10/17/2003 12:19:20 PM INFO - jmeter.JMeter: Version 1.9.2003100210/17/2003 12:19:45 PM INFO - jmeter.gui.action.Load: Loading file:c:\mytestfiles\BSH.jmx10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Running the test!10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group BSH. Ramp up = 1.10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Continue on error10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 started 10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 is done 10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Test has endedLog文件有助于定位错误出现的原因,因为它并未打断测试来显示一个error窗口.2.4 配置JMeter如果你想修改JMeter运行使用的properties,你可以通过两种方式:修改bin目录中的文件jmeter.properties或者创建你自己的properties文件使用命令行来指定该文件.Parameters3 建立测试计划一个测试计划描述了一系列JMeter在运行中要执行的步骤. 一个完整的测试计划包含一个或多个Thread Groups, logic controllers, sample generating controllers, listeners, timers, assertions和configuration elements.3.1 添加删除 Elements添加elements到测试计划,可以通过在tree中element上点击右键,然后从add列表中选择一个新的element. 同样,elements也可以通过open选项从一个文件中载入.删除一个element,确定该element被选定,右击选择删除选项.3.2 载入和存储elements载入文件中的elements,在已有的tree中点击右键, 然后选择open选项. 选择elements 存储的文件, JMeter将载入文件中的所有elements到tree中.存储tree的elements, 选择一个element然后右击, 选择save选项.JMeter会存储选定的element, 以及所有的子elements. 这样你就可以存储测试树的一段, 单独的element或者整个测试计划.3.3 配置tree的elements任何一个一个测试树中的element都可以在JMeter的右边框架显示. 这样允许你来配置该测试element的属性. 能够配置什么属性取决于你选定的element的类型.3.4 运行测试计划在run菜单中选择开始来运行测试计划. 停止测试计划, 从菜单中选择停止. JMeter不会自动的在运行测试计划时有任何表现. 一些listeners使得JMeter运行表现出来.但是唯一的方法是检查run菜单中的start选项, 如果是disable的而且stop是enabled,那么JMeter就在运行你的测试计划,至少表面上看来如此.3.5 Scoping RulesJMeter测试树中包含的elements是分级和有次序的.一些elements在测试中有严格的等级要求(Listeners, Config Elements, Post-Processors, Pre-Processors, Assertions, Timers), 而其他一些有primarily ordered的要求(controllers, samplers). 当你创建测试计划时, 你需要建立一个有次序的sample请求(通过sampler), 这些反映了一组需要执行的测试步骤. 这些请求经常在有序的controllers中组织.例图1请求的次序将为: one, two, three, four.有些controllers会影响他们sub-elements, 你可以在component reference 中查看这些.一些其他的elements是有级别的. 例如, Assertion在测试树中是有级别的.如果他的父亲节点是一个request,那么它将仅仅影响该request. 如果父节点是一个controller, 那么它将影响该controller的所有后代的请求. 例如:Assertion #1仅仅应用到Request One上. 而Assertion#2应用到Request Two和Three 上.另外一个关于Timers的示例:在这个例子中, request的名字反映了他们在测试中应该执行的次序.Timer#1将应用到Request Two, Three和Four上(注意对于分等级的elements如何排序毫不相关). Aserrtion#1将仅仅应用到Request Three上. Timer#2将影响所有的请求.如果你想想任何一个request通过树的路径被传递, 到它的父节点,在到它的父节点的父节点, 以此类推, 在每一级的父节点上集合所有的configuration elements, 那么你就知道它是如何工作的了.注意:对于Configuration elements中的 Header Manager, Cookie Manager和Authorization manager来说, 与其他的Configuration Default elements不同. Configuration Default elements被整合成一个Sampler访问的集合.而Manager的设置不会被整合.如果超过一个的Manger在Sampler的范围中,只有一个Manager被使用,但是目前还无法判断那个被使用.4 测试计划的elements测试计划对象现在拥有了一个新的checkbox选项, 叫做”功能测试”. 如果选择,JMeter 将记录所有server为每个sample返回的值. 如果你已经在测试listeners中选定了一个文件, 那么这些数据将被写入到文件中. 这个有助于你通过一个小型的测试来检验JMeter是否配置正确, 而你的服务器返回正确的结果. 值得注意的是这个文件的大小将增长的很快使得JMeter的性能降低. 这个选项在做压力测试时需要关闭掉(默认为关闭).如果你不将数据写入文件中,那么这个选项没有任何不同.4.1 Thread GroupThread Group elements 是任何一个测试计划的开始点. 所有的测试计划中的elements都要在一个Thread Group中. 如名字显示那样, thread group element控制了一组线程, JMeter使用这些线程来执行你的测试. 你可以做如下操作来控制thread group:●设置线程的数量●设置ramp-up周期●设置测试执行的次数每一个线程都会完全和独立的执行测试计划而不影响其他线程. 多线程可以用于模拟到你的服务器程序的并发连接.Ramp-up period 告诉JMeter需要多长时间来”ramp-up”去装载全部的线程. 如果10个线程被使用, 而ramp-up period为100秒, 那么JMeter会花100秒来使得所有的10个线程运行. 每个线程将在上个线程开始后10秒开始. 又如, 如果有30个线程而ramp-up为120秒.那么每个线程在延迟4秒后启动.延迟时间=ramp-up period时间数/线程数默认的,一个thread group被设置为不限定的循环. 你可以设置thread group循环的次数.如果设置为一次, 那么JMeter将执行测试一次然后停止.Version 1.9 将允许你预定时间去运行测试. 选定Scheduler的checkbox, 你就可以设定时间.4.2 ControllersJMeter有两种controller: Samplers和Logical ControllersSamplers告知JMeter发送请求到服务器. 例如, 如果你想JMeter发送一个HTTP请求, 就添加一个HTTP Request Sampler. 当然你也可以定制一个请求, 在Sampler中添加一个或多个 Configuration Elements.Logical Controllers使你可以定制JMeter发送请求的逻辑. 例如, 你可以添加一个Interleave Logic Controller来控制交替使用两个HTTP Request Samplers. 同样, 一个特定的Logic controller, 作为Modification Manager, 可以让你修改请求的结果.4.2.1 SamplersSampler 告知JMeter发送请求到server端. JMeter现在有如下的samplers:●FTP Request●HTTP Request●JDBC Request●Java Object Request●LDAP Request●SOAP/XML-RPC Request●Web Service (SOAP) Request (Alpha Code)每个sampler都有一些可以设置的properties. 你也可以在一个sampler中添加Configuration Elements来做更多的设置. 当然, 值得注意的是JMeter按照request在tree中添加的次序来发送请求.如果你想同时发送多个并发的同一种类的request, 例如HTTP request, 到同样一台服务器. 可以考虑使用一个Defaults Configuration Element. 每个Controller拥有一个或多个默认元素.当然不要忘记添加一个Listener到你的Thread Group中来察看和存储你的测试结果.如果你对JMeter对你的request返回的response进行简单的校验很感兴趣, 你可以在Request Controller中添加一个Assertion. 例如, 在一个web程序的压力测试中, 服务器可能会返回多个成功的”HTTP Response”, 但是页面也许包含了一些错误或者丢失的部分. 你可以添加assertions来检查特定的HTML标签,常见的错误字符串,等等诸如此类的数据. JMeter允许你使用常规表达式来创建这些assertions.4.2.2 Logic ControllersLogic Controller使得用户可以定制JMeter发送请求的时机.Logic Controllers可以拥有如下的任何一个作为子elements: Samplers(requests), Configuration Element和其他的Logic Controllers. Logic Controllers可以改变子elements的请求次序. 他们可以自己修改requests, 使得JMeter可以重复发送请求等等.为了便于理解Logic Controllers在测试计划中所起的作用, 举例如下:●Test Plan⏹Thread Group◆Once Only Controller●Logic Request (an HTTP request)◆Load Search Page (HTTP sampler)◆Interleave Controller●Search “A” (HTTP Sampler)●Search “B” (HTTP Sampler)●HTTP default request (Configuration Element)◆HTTP default request (Configuration Element)◆Cookie Manager (Configuration Element)首先表明了login请求只会在第一次运行时执行. 其余的请求将自动跳过它. 达到这个效果的原因就是因为Once Only Controller的影响左右.在login之后, 下一个Sampler加载了search page (想象一下, 一个在用户登录后就转入search页面来做搜索的web程序). 这个仅仅是一个简单的请求, 并未通过任何Logic Controller的筛选过程.在search页面加载后, 我们想做一些搜索. 实际上, 我们要做两个不同的搜索. 然而, 我们想在每个独立的搜索中重新加载search页面. 我们可以用四个简单的HTTP request elements来达到目的(载入search页面,搜索”A”,载入search页面,搜索”B”). 而实际上, 我们使用了另一个方法, 我们使用Interleave Controller, 它将每次运行一个完整的测试只使用一个子element的request. 而且能够保持这些子elements的次序来运行.注意:HTTP Request Defaults是属于Interleave Controller的. 想象一下”search A”和”Search B”分享同一个”PATH”信息(一个指定的HTTP请求包括domain, port, method, protocol, path和arguments等, 还有其他额外的信息). 这导致: 两者都是search的请求, 点击同一个后台搜索引擎. 与其给两者配置相同PATH信息,不如将信息抽象出来给一个Configuration Element.当Interleave Controller传递”Search A”和”Search B”的请求时, 将自动使用HTTP Default Request Configuration Element的值来取代空白的PATH域. 所以, 我们将这些请求的PATH域空置, 然后将这些信息放入到Configuration Element中.树中接下来的element是另外一个HTTP Default Request, 这次是给Thread Group自己使用的. Thread Group拥有一个内置的Logic Controller, 因此, 它象上面的介绍的那样一样,来使用这个Configuration Element. 它将填入到任何一个通过的Request的空白中. 当你做web测试时, 这是非常有用的. 你可以将所有的HTTP Sampler elements的DOMAIN 域空白, 然后使用Thread Group中添加的HTTP Default Request的信息补充这些空白域. 这样, 你可以仅仅改变一个域就能将整个测试计划应用到另外的server上. 否则你需要一个一个更改Sampler.最后一个element是HTTP Cookie Manager. 所有的web测试中都应该添加该element, 否则JMeter将忽略所有的cookie. 在Thread Group级添加这个元素,可以保证所有HTTP request将共享同样的一个cookie.Logic Controller可以被组合起来从而获得多种不同的结果.4.3 ListenersListeners提供了获取在JMeter运行过程中搜集到的信息的访问方式. 最简单的Listener, Graph Results Listener图示出了响应时间. Listeners提供了一种图型化的方式来查看JMeter运行过程中产生的数据.另外, Listeners能够直接将搜集的到数据存入到文件中以备后用. 任何一个listener都拥有一个设置该文件存储地址的域.Listener能够加到测试中的任何位置. 他们将仅仅收集同级别和所有低级别的elements产生的数据.4.4 Timers默认的,JMeter线程发送requests时之间没有任何停顿. 我们建议你指定一个延迟时间. 这可以通过添加一个有效的Timer到你的Thread Group中实现. 如果你没有添加一个延迟时间, JMeter可能会在极短时间内发送大量的请求而引起server崩溃.Timer可以使得JMeter在线程发送每个请求时有一个延迟. 如果你添加了多个timer到一个Thread Group中时, JMeter将使用累计的延迟时间.4.5 AssertionsAssertions 允许你对在测试中从server端返回的回复中验证某些数据. 使用assertion, 你可以实际地测试你的程序返回的值是否是期望值.例如, 你可以检验回复字符串中包含一些特殊的文本. 你指定的文本可以是一个Perl-style的常规表达式, 然后指定回复中是否包含该文本, 或者整个回复都应该相符合.你可以给任何一个Sampler添加一个assertion. 例如, 你可以添加一个assertion到一个HTTP Request来检查文本”yahoo”. JMeter就会在返回的回复中察看该文本. 如果JMeter 不能发现该文本,那么将标志该请求是个失败的请求.为了查看assertion的结果, 你需要添加一个Assertion Listener到Thread Group中.4.6 Configuration ElementsConfiguration Element与Sampler紧密联系在一起工作. 尽管它不能发送请求, 但是它可以被添加到或者去修改请求(除了HTTP Proxy Server)之外.Configuration Element只能被所在的tree branch访问. 例如, 你在一个Simple Logic Controller中设置了一个HTTP Cookie Manager, 那么这个Cookie Manager将只能被设置在Simple Logic Controller中的HTTP Request Controllers访问. 如下图中所示, Cookie Manager 能够被HTTP request “Web Page1”和”Web Page2”访问, 但是不能被”Web Page3”访问.并且, 一个tree branch中的configuration element 将拥有更高的优先级, 与同一个parent branch 中的同样的元素相比. 例如, 我们定义了两个 HTTP Request Defaults elements, “Web Defaults 1”和”Web Defaults 2”. 因为我们将”Web Defaults 1”放入到一个Loop Controller中,所以只有”Web Page 2”能访问它. 而其他的HTTP requests 只能使用我们在”Thread Group”(所有其他branch的”parent”)中设置的”Web Defaults 2”.4.7 Pre-Processor ElementsPre-Processor在Sampler Request被创建前执行一些操作. 如果一个Pre-Processor被附加到一个Sampler element上, 那么它将先于Sampler Element运行. Pre-Processor最主要用于在Sampler运行前修改一些设置, 或者更新一些无法从response文本中获取的变量.4.8 Post-Processor ElementsPost-Processor在Sampler Request被创建后执行一些操作. 如果一个Post-Processor被附加到一个Sampler element上, 那么将紧接着sampler element运行后运行.Post-Processor主要用于处理回复数据, 常常用来从其中获取某些值.5 建立一个web测试计划在本章中, 你将学习到如何创建一个基本的测试计划用来测试一个web站点. 你创立5个用户向Jakarta网站的两个页面发送请求. 同时,你将设置这些用户运行他们的测试两遍. 所以, 总共的request数是:5(user)*2(request)*2(repeat 2 times)=20 HTTP Requests. 为建立测试计划, 你将使用如下elements: Thread Group, HTTP Request, HTTP Request Defaults和Graph Results.5.1 Adding Users 添加用户每个JMeter测试计划的第一步都是要添加一个Thread Group element. Thread Group将告诉JMeter 你要设置的用户的数目, 发送请求的频率和请求的次数.选择测试计划, 点击右键, 选择添加Thread Group. 这时你就应该在Test Plan下看到Thread Group element了. 如果你没有看到, 那就点击Test Plan展开树.然后, 你需要修改那些默认的properties. 选择树中的Thread Group element, 在JMeter 左侧的窗口中应该显示出Thread Group的Control Panel.第一步, 给我们的Thread Group 添加一个更详细的名称. 在名字域中, 输入Jakarta Users.然后增加用户的数目到5 (调用的线程数).在下一个域中, Ramp-Up Period, 使用默认值0秒. 这个properties告诉JMeter两个User 开始发送请求之间的延迟时间. 例如,你输入5秒, JMeter将在5秒后启动所有的用户. 所以, 我们有五个用户和5秒的Ramp-up period, 那么两个用户之间开始时间的延迟时1秒.(5 user/5=1).如果值为0, 那么JMeter将立刻开始你所有的用户操作.最后,清除”Forever”的checkbox, 输入2在Loop Count域中. 这个property告诉JMeter 要重复运行你的测试几次. 如果你输入的循环值为1, 那么JMeter将只运行一次你的测试. 如果要JMeter不停运行你的测试,选择Forever.在大部分程序中, 你不得不手工方式来更新你在控制面板中的更改. 然而, 在JMeter中, 控制面板将自动的接受你的更改. 例如, 你改变了一个element的名称, 树将自动更新为最新的文本在你离开控制面板后(例如,选择了另一个element).5.2 添加Default HTTP Request Properties现在我们已经定义了我们的用户, 是时间来定义他们要执行的任务了. 在这节, 你将指定你的HTTP 请求的默认设置. 然后, 在5.3中, 你将添加HTTP Request elements来使用你制定的默认值.选择你的Jakarta User element.右击选择添加Config Element中的HTTP Request Defaults. 然后选择这个新的元素查看他的控制面板.象大多数的JMeter元素一样, HTTP Request Default的控制面板拥有一个可修改的名称域. 在本例中,使用默认值.跳到下个域, Web Server’s Name/IP. 在本例中, 所有的测试用例将发送到同一个web服务器上去: . 将这个域名输入到该字段中. 这是我们唯一指定的默认值, 所有留下其他的域为空白值.注意:HTTP Request Defaults elements 不会告诉JMeter去发送HTTP请求. 它只是简单的定义了HTTP request elements会使用到的默认值.5.3 添加Cookie支持几乎所有的web测试要求使用cookie, 除非你的程序特别指明不使用cookie. 添加cookie 支持, 最简单的是添加HTTP Cookie Manager到每一个Thread Group中. 这会保证每个线程都获得自己的cookie, 但是交叉共享所有的HTTP Request 对象.添加HTTP Cookie Manager, 点击Thread Group, 然后选择添加HTTP Cookie Manager.5.4 添加HTTP Request在我们的测试计划中, 我们需要创建两个HTTP Requests. 第一个是访问Jakarta的主页, (). 第二个是访问/site/guidelines.html.右击添加第一个HTTP Request. 然后修改该元素的properties1.将名字改为 HOME Page2.设置路径为“/”. 注意的是你不需要设置server的名称, 因为你再HTTP RequestDefaults element中已经设置了.紧接着添加第二个 HTTP request.5.5 添加一个Listener来查看和存储测试结果最后一个要在测试计划中添加的元素是Listener. 这个元素用来存储所有的测试结果到一个文件和提供一个数据的视图模式.添加Graph Results listener到Thread Group中. 然后指定一个路径和文件名用于存储测试结果. 你可以输入, 也可以通过browse按键来选择.5.6 保存测试计划经管这不是一个必须的步骤, 但是我们建议你将测试计划在运行前存入一个文件.5.7 运行测试计划在Run菜单中, 选择运行.一旦JMeter完成了你的测试计划, 选择停止.如果你选择将listener中的测试结果存储到一个文件中, 那么你将拥有这个可以被任何浏览器查看的文件. 不同的浏览器显示不同的风格.6 建立一个高级的web测试计划本节中, 你将学习如何建立一个更高级的测试计划来测试web站点6.1 使用URL重写技术处理用户的session如果你的web程序使用URL重写而不是cookie来保存session的信息, 那么你需要做一些额外的工作来测试你的站点.为了正确的进行URL回写, JMeter需要过滤从server端获的HTML来获得唯一的session ID.使用合适HTTP URL Re-Writing Modifier来达到此目的. 将你的Session ID作为参数写入到modifier中, 它将自动添加session到每一个request中. 如果request中已经有了该值, 将直接覆盖.示例:上图中显示了一个使用了URL Re-writing的测试计划. 注意modifier被附加在Thread Group上, 这样就保证了所有线程组的请求都会被应用到.在上图中, 我们看到的是URL Re-Writing modifier的GUI. 仅仅只有一个域给用户用于设置session ID参数的名字.6.2 使用Header ManagerHTTP Header Manager 可以使你定制JMeter发送的请求的报头. 象HTTP cookie Manager 一样, 应该添加到合适的级别上. 除非出于某种原因你希望你测试不同的request发送不同的报头.7 建立一个database测试计划本节中, 你将学习如果建立一个测试数据库的基本测试计划.你将创建一个有10个用户发送2个SQL请求到数据库server的测试. 同时, 你将告诉用户运行他们的测试三遍. 所以,总共的请求次数是:10 users * 2 requests * 3 times = 60 JDBC requests. 为了创建测试计划, 你将使用元素: Thread Group, JDBC Request 和 Graph Results.7.1 添加用户每个JMeter测试计划创建的第一步都是添加Thread Group 元素. Thread Group用于设置发送请求的用户数,频率和请求总数.如下图, 设置10个线程代表10个用户,用户的延迟时间为0,一共循环3次.7.2 添加JDBC请求尽管有JDBC DATABASE Connection Pool Defaults, JDBC Database Login Defaults 和 JDBC SQL Query Defaults 组件可用, 但是本例中并未涉及.我们要添加两个JDBC Request. 下图为请求一.注意: 需要将需要的JDBC的drive放入Classpath中.下图为请求二.7.3 添加Listener元素来监视和存储测试结果如下图所示, 添加了一个Graph Result Listener.7.4 保存测试计划7.5 运行测试计划8 建立一个FTP测试计划1 添加用户通过添加一个Thread Group来添加用户2 添加Default FTP Request Properties添加一个config element中的FTP Request Default 用于所有的FTP requests.3 添加 FTP Requests在我们示例中, 要添加两个FTP请求.请求一:请求二:8.4 添加一个Listener来查看和存储测试结果最后, 我们添加了一个Spline Visualizer listener用于观察和存储测试结果.8.5 保存测试计划8.6 运行测试计划9 建立一个LDAP测试计划9.1 添加用户创建一个Thread Group用于添加用户和设置请求次数和频率.9.2 添加一个登录控制元素可以添加一个Config Element的Login Config Element用于用户登录控制.9.3 添加一个LDAP Request Defaults可以添加一个config element中的LDAP Request Defaults用于控制一些共享默认值.9.4 添加LDAP Request添加的LDAP Request通过选择不同的测试配置来完成四种操作: 添加,删除,修改和查询. 例如, 修改:9.5 添加一个Listener来查看和保存测试结果添加了一个View Results in Table的listener9.6 保存测试用例9.7 运行测试用例10 创建一个W eb Service测试计划对于Web Service Sampler, 当前是使用Apache Soap driver. 需要activation.jar和mail.jar.由于license的限制, JMeter中并未包含这些jar文件.如果sampler显示从web service获得一个error. 需要同时检查SOAP的信息来确认格式是正确的. 特别的要确认xmlns的attributes要和WSDL完全一致. 如果xml的namespace不同, 那么web service将很可能返回一个错误. Xmethods中包括了一个公共service的列表.10.1 添加用户10.2 添加web service 请求10.3 添加listener用于查看和存储测试结果.10.4 保存测试计划10.5 运行测试计划11 创建JMS Point-to-Point测试计划需要如下jar文件的支持activation.jaractiveio-1.0-SNAPSHOT.jaractivemq-3.0.jaractivemq-core-3.0.jarcommons-logging-1.0.3.jarconcurrent-1.3.4.jargeronimo-spec-j2ee-jacc-1.0-rc4.jargeronimo-spec-j2ee-management-1.0-rc4.jargeronimo-spec-jms-1.1-rc4.jargeronimo-spec-jta-1.0.1B-rc4.jar。
Jmeter入门自学使用手册
Jmeter在访问接口的时候,响应内容如果有中文可能会显示乱码,原因应该是响应页面没有做编码处 理,jmeter默认按照ISO-8859-1编码格式进行解析。
下面把解决步骤列一下: 现象:jmeter访问本地文件,文件内容有中文,jmeter返回内容显示乱码:
2
8.1 为什么要设置集合点? 8.2 同步定时器-设置集合点 8.3 集合点技术实战 9. Jmeter报告说明
1. Jmeter安装
1.1 Jmeter在windows上安装
1. 安装jdk
使用Jmeter的前提是安的 版本。
注意:配置jmeter环境变量的原因,其实这里不用设置也是可以的,但是在这里也进行一下环境变量配 置的说明; 如果配置了jmeter的环境变量,就可以在cmd模式下直接输入jmeter,启动jmeter。
1、加入系统变量JMETER_HOME:E:\apache-jmeter-5.1.1如下图:
2、path后面加上:%JMETER_HOME%\bin;
junit子目录是放junit脚本的。
注意:无法识别 zip 格式的包文件,所以需要的包文件均要求以 .jar 结尾
**5、printable_docs:**usermanual子目录下是jmeter用户手册,尤其是component_reference.html 是最常用的核心元件帮助手册。
**1、bin:**可执行文件目录
**2、docs:**文档目录
**3、extras:**扩展插件目录,目录下的文件提供了对ant的支持
**4、lib:**所用到的插件目录,里面全是jar包,JMeter 会自动在 JMETER_HOME/lib 和 ext 目录下 寻找需要的类。 lib目录下的ext子目录是jmeter的核心jar包;用户扩展所依濑的包直接放到lib下即可,不要放到 lib/ext下,直接放在lib目录下即可。
JMeter中文使用手册
JMeter中文使用手册Version: 1.0Author : Alex Bai1.Apache jmeter纯java桌面应用程序,设计用来测试C/S结构的软件,可以用来测试包含基于静态和动态资源程序的性能,jmeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。
Jmeter能够通过让你们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。
2.代理服务器?3.创建测试计划一个测试计划描述了一系列jmeter运行时要执行的步骤。
一个完整的测试计划包含一个或者多个线程组,逻辑控制,取样发生控制,监听器,定时器、断言和配置元件。
4.运行测试计划为了运行一个测试计划,从“run”菜单项选择“start”。
停止同样! Stop5.作用域规则Jmeter测试树包含元件总是分等级和顺序的,在测试树中的一些元件是严格分级(监听器,配置元素,后置处理器,前置处理器,断言,定时器),一些主要是顺序的(控制器、取样器)。
当你创建你的测试计划时,你将创建一个描述被执行的步骤集的取样请求有序列表。
哪些请求常组织在有序的控制器中。
一个断言在测试中是分等级的。
如果你的父元件是请求,它就被应用于那个请求,如果它的父元件是控制器,它就影响所有控制器下的所有请求。
6.服务器模式为了分布测试,在服务器模式运行jmeter,并且通过用户界面控制每一台服务器。
7.测试计划元件测试计划对象有一个叫做“功能测试”复选框。
如果被选择,它将导致jmeter记录来自服务器返回的每个取样的数据。
如果你在你的测试监听器中选择一个文件,这个数据将被写入文件。
怀疑这里功能测试指得是:测试计划中的函数模式,但是这个将很影响性能。
8.后置处理器元件一个后置控制器在一个取样器请求被建立后执行一些操作,如果一个后置处理器附属于一个取样器元件,它仅在取样器元件运行后执行,后置处理器最多用来处理相应数据,常用来从它里面摘录数值。
JMeter的入门使用
初识JMeter最近开始接触和使用JMeter进行性能测试,也是因为工作需要,不得不学习更多新技能,在此之前一直使用LR进行WEB系统的压力测试,但是在ZK开发的WEB系统,我选择使用JMeter。
主要是因为ZK脚本安全性在代码中产生的随机值太多,LR关联起来太麻烦。
JMeter就不同了,ZK官方针对这个问题,专门为JMeter工具写了测试插件,所有生成的随机码(dtid、uuid)都能自动关联上。
既然官方已有插件的支持,为何要盯着代码在LR中做体力活呢(还不一定有效果至少目前在网上能搜到的成功案例寥寥无几),因此选择JMeter。
下面我将自己对JMeter的一些认识和使用做小结,以备学习之用,部分概念内容摘自于网络多个文档,只取其精华。
JMeter简介JMeter是Apache组织的开放源代码项目,100%的用java实现应用。
用于压力测试和性能测量。
它最初被设计用于Web应用测试但后来扩展到其它测试领域。
JMeterFAQ: /jmeter/JMeterFAQJMeter安装部署●下载安装JDK下载地址:/technetwork/java/javase/downloads/index.html●下载解压JMeter压缩包下载地址:/download_jmeter.cgi●单机部署下载JMeter源码包,解压之后即可使用,无需安装。
进入安装目录bin文件夹中点击“JMeter.bat”文件启动工具窗口。
●多台机器分布式部署(通常在模拟大批量用户一台机器资源不够用时使用分布式部署)实现步骤如下:1.在所有机子上装上JMETER2.在Agent机子上运行bin目录下的JMeter-server.bat3.在Controller找到bin目录里的文件JMeter.properties,用记事本打开4.在文件中查找”remote_hosts=”,你会看到这样一行”remote_hosts=127.0.0.1”.其中的127.0.0.1表示运行JMeter Agent的机器,这里需要修改为”remote_hosts=192.168.0.1:1099,192.168.0.2:1099,192.168.0.3:1099”——其中1099为JMeter的Controller和Agent之间进行通讯的默认RMI端口号,不写也行,总之默认会用1099;5.保存文件,并重新启动Controller机器上的JMeter.bat,在菜单Run下的Remote Start菜单项,你将可以看到所有能连接的Agent。
全网最全最细的jmeter接口测试教程以及接口测试流程详解
全⽹最全最细的jmeter接⼝测试教程以及接⼝测试流程详解⽬录:导读⼀、Jmeter简介⼆、Jmeter安装三、设置Jmeter语⾔为中⽂环境四、Jmeter主要元件五、Jmeter元件的作⽤域和执⾏顺序六、Jmeter进⾏接⼝测试流程七、Jmeter进⾏接⼝测试流程步骤详解⼋、Jmeter接⼝测试必定⽤到的扩展阅读九、总结⼀、Jmeter简介Jmeter是由Apache公司开发的⼀个纯Java的开源项⽬,即可以⽤于做接⼝测试也可以⽤于做性能测试。
Jmeter具备⾼移植性,可以实现跨平台运⾏。
Jmeter可以实现分布式负载。
Jmeter采⽤多线程,允许通过多个线程并发取样或通过独⽴的线程对不同的功能同时取样。
Jmeter具有较⾼扩展性。
⼆、Jmeter安装1、安装JDK,必须JDK1.7以上的版本,推荐1.8的版本3、配置Jmeter的环境变量。
(1) 新增变量:JMETER_HOME:D:\apache-jmeter-5.2.1(2) 在CLASSPATH变量的最前⾯加⼊如下变量: %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;(3)在PATH变量的最前⾯加⼊如下变量:%JMETER_HOME%\bin;4、进⼊D:\apache-jmeter-5.2.1\bin,双击jmeter.bat,或在dos窗⼝输⼊jmeter命令打开jmeter界⾯,安装成功。
对于真正的零基础来说:安装请按如下步骤完成:windows下安装jmeter? mac下安装jmeter? So Easy那多不是事!写给jmeter⼊门的朋友!三、设置Jmeter语⾔为中⽂环境1、临时设置Jmeter菜单栏选择OptionsàChoose LanguageàChinese (Simplified)这种⽅法,重启软件后⼜变为英⽂环境了。
JMeter基础培训
资料补充
对于JMeter组件的使用可查看printable_docs目录中的使用手册,也可以参 考链接:
JMeter的FAQ链接: JMeter的Bug List链接:
17
Agent IP:192.168.0.1
Controller Agent IP:192.168.0.3
Agent IP:192.168.0.2
4
JMeter脚本创建
1. 添加线程组 2. 添加请求 3. 判断请求响应 4. 统计请求响应情况
5
JMeter脚本的录制
JMeter代理录制 Badboy软件录制
14
与Loadrunner的比较-不同点
A. Jmeter安装简单,只需要解压jmeter文件包到C盘上就可以了,其实是没有安装.要是你想执行调试测试脚本, 前提是:装上jdk和netbean插件.而loadrunner安装包有1G多,在一台P3.0,1G内存的PC上安装要一个多小时. 要是装过较旧的盗版还不能再装新版,解决办法倒是有,但麻烦且花时间.
行”remote_hosts=127.0.0.1”.其中的 127.0.0.1表示运行JMeter Agent的 机器,这里需要修改 为”remote_hosts=192.168.0.1:1099,192.168.0.2:1099,192.168.0.3:1099 ”——其中1099为 JMeter的Controller和Agent之间进行通讯的默认RMI端口 号,不写也行,总之默认会用1099; e. 保存文件,并重新启动Controller机器上的JMeter.bat,在菜单Run 下的Remote Start菜单项,你将可以看到所有能连接的Agent。
下载地址:
6Байду номын сангаас
Jmeter入门培训PPT课件
Jmeter的断言功能不是很强大。而Jmeter提供的断言 功能有限,并且不依赖于界面,无法完成界面相关内容 的验证,用Jmeter测试更需要人工测试,人工确认。
可以跳过页面限制,向后台程序添加非法数据,这样 可以测试后台程序的健壮性。
就算是jmeter脚本顺利执行,依旧无法确定程序是否正 确执行,有时候需要进入程序查看,或者查看Jmeter 的响应数据。
注:agent启动默认监听的端口是4444
2021/7/23
27
运行线程组,查看结果
2021/7/23
28 试网址,执行对应操作即可录制脚本
2021/7/23
29
将录制脚本导出为jmx格式。
点击File→Export to JMeter...→另存为“test.jmx"→ 保存。
【步骤三】验证jdk 运行cmd->输入java -version->显示java版本就表示jdk安装成功
2021/7/23
7
【步骤一】安装Jmeter 1、下载Jmeter,官网地址:
/download_jmeter.cgi 2、解压Jmeter安装包 【步骤二】配置Jmeter环境变量 按下面变量名和变量值配置Jmeter系统环境变量: 新增:
2021/7/23
30
通过JMeter自身设置来录制脚本
2021/7/23
31
配置Http代理服务器
2021/7/23
32
设置IE浏览器
IE--->“internet选项”--->“连接”--->“局域网 设置”
2021/7/23
33
点击jmeter上的“启动”按钮,打开浏览器输 入需要录制web项目地址,jmeter会自动记录 你IE所访问的页面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jmeter的测试脚本的管理不可以纳入版本控制
使用参数化以及Jmeter提供的函数功能,可以快速完 成测试数据的添加修改等 Java占用内存较大 功能测试和性能测试均可完成
增加统计监听器 1>在线程组节点上,点击右键,选择添加-> 监听器->聚合报告 2>配置参数:文件存放位置(日志位置)
PerfMon插件 做压力测试时,我们需要关注服务器的CPU,内 存,硬盘读取等,这时候要用到PerfMon 环境搭建 1>下载地址: /p/jmeterplugins/wiki/PerfMon 2>解压zip包,将JMeterPlugins.jar放到jmeter 客户端的jmeter/lib/ext下 3>启动jmeter,添加“监听器”时你就看到 PerfMon Metrics Collectors
添加线程组:首先右键添加一个线程组,这里 我们重命名“接口测试”
在线程组上添加一个“HTTP Cookie管理器” , 并配置cookie相关信息
在线程组上添加一个Http信息头管理,并
配置信息头相关字段
在线程组上添加一个Http默认请求,并配
置服务器的IP地址和传输编码
在线程组中添加一个HTTP请求,这里我们
服务器端启动Agent 将下载的zip包解压到服务器上面,如果你是linux(需 要jre环境),就进入serverAgent目录,运行 startAgent.sh命令,如下: 1>启动:>>./startAgent.sh --udp-port 0 --tcpport port(agent起来之后所监听的端口) 2>停止:>>./startAgent.sh --udp-port 0 --autoshutdown 如果你是windows环境:进入serverAgent目录, 直接双击startAgent.bat,启动agent
注:agent启动默认监听的端口是4444
运行线程组,查看结果
通过Badboy录制脚本 Badboy软件下载并安装,启动后输入测 试网址,执行对应操作即可录制脚本
将录制脚本导出为jmx格式。 点击File→Export to JMeter...→另存为“test.jmx"→保存。
对应参数Filename:文件名,指保存参数化数据的文件目录,可 以相对或者绝对路径。 File encoding:文件的编码格式,可以使用电脑自带的笔记本另 存为时选择编码方式即可 Variable Names(comma-delimited):参数名称(如:有 几列参数,在这里面就写几个参数名称,每个名称中间用分隔符 分割,分隔符在下面的“Delimitet”中定义,为了和文件中的“,” 对应,这里也用“,”分割每个参数名,引用方法:${username}, ${password} Delimitet:定义分隔符,这里定义某个分隔符,则在“Vari able Names”用这里定义的分隔符分割参数。 Allow quote data:选项选为“true”的时候对全角字符的 处理出现乱码 Recycle on EOF:是否循环读入,因为CSV Data Set Co nfig一次读入一行,分割后存入若干变量中交给一个线程,如果 线程数超过文本的记录行数,那么可以选择从头再次读入
另外,在Jmeter的bin\templates目录下面 有些模板可供学习参考,这些都是非常不错 的资料:
线程组配置以下属性: 线程数(x):代表并发用户数。 ramp-up period(y):启动并发用户的消耗时间,启动间隔时 间为:t=y/x 单位秒 循环次数:循环测试的次数 如果始终测试,选择foreever
优点
缺点
不依赖于界面,测试脚本不需要编程,熟悉http请求, 使用Jmeter无法验证JS程序,也无法验证页面,所以 熟悉业务流程,就可以根据页面中input对象来编写测 需要手工去验证 试用例。 Jmeter的断言功能不是很强大。而Jmeter提供的断言 测试脚本维护方便,可以将测试脚本复制,并且可以 功能有限,并且不依赖于界面,无法完成界面相关内容 将某一部分单独保存 的验证,用Jmeter测试更需要人工测试,人工确认。 就算是jmeter脚本顺利执行,依旧无法确定程序是否正 可以跳过页面限制,向后台程序添加非法数据,这样 确执行,有时候需要进入程序查看,或者查看Jmeter 可以测试后台程序的健壮性。 的响应数据。 利用badboy录制测试脚本,可以快速的形成测试脚 本
重命名为“创建金币商品”
配置接口请求信息,如下所示
设置检查点:在被测接口对应的“HTTP 请求” 上,添加“响应断言”,然后在设置页面上添加 对相应结果的正则表达式存在性判断
在线程组上添加监听器,察看结果树
点击启动,运行结束后查看,结果树
一、使用CSV Data Set Config: 添加CSV Data Set Config,然后配置对应参数。
Jmeter是Apache组织开发的基于Java的压 力测试工具,用于对软件做压力测试。它最初 被设计用于Web应用测试,后来扩展到其他测 试领域。
压力测试(性通过JDBC) 接口测试:支持HTTP服务端接口测试 功能测试:利用badboy录制测试脚本, 可以快速的形成测试脚本 回归测试:利用插件架构的优势,可以用 于功能和接口的回归测试
【步骤一】安装Jmeter 1、下载Jmeter,官网地址: /download_jmeter.cgi 2、解压Jmeter安装包 【步骤二】配置Jmeter环境变量 按下面变量名和变量值配置Jmeter系统环境变量: 新增: 【变量名】JMETER_HOME, 【变量值】E:\jmeter\apache-jmeter-3.0(jmeter解压路径) 修改: 【变量名】 CLASSPATH 【变量值】 ;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME %/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar 【步骤三】启动Jmeter 双击Jmeter解压路径(apache-jmeter-3.0\bin)的bin下面的 jmeter.bat
变量使用
二、使用Jmeter函数助手: 1、点击 选项-->函数助手 调出函数助手对话框 2、选择 _CSVRead 函数(下图第一个框) 3、函数参数: 1)第一个参数:填写文件路径。 2)第二个参数:文件列号是从0开始的,第一列 0、第二列1、第三列2、依次类推,然后点击【生 成】按钮,则会自动生成我们需要的参数化函数。 3) 复制生成的参数化函数, copy过程需要使用 的地方即可。
测试计划(Test Plan) 线程组(Threads) 逻辑控制器(Logic controller) 配置原件(Config element) 定时器(Timer) 前置处理器(Per processors) 取样器(Samples) 后置处理器(post processors) 断言(Assertions) 监听器(Listener)
可链接的取样器允许无限制的测试能力。 各种负载统计表和可链接的计时器可供选择。 数据分析和可视化插件提供了很好的可扩展 性以及个性化。 具有提供动态输入到测试的功能(包括 Javascript)。 支持脚本编程的取样器(在1.9.2及以上版本 支持BeanShell)。
安装环境要求 Java版本 JMeter要求充分满足JVM1.3或更高。 操作系统 JMeter可以在当前任何一个已经部署了Java的 操作系统上运行。 Unix(Solaris,Linux,etc) Windows(98,NT,2000,XP,WIN8) Open VMS Alpha 7.3+
通过JMeter自身设置来录制脚本
配置Http代理服务器
设置IE浏览器 IE--->“internet选项”--->“连接”--->“局域网 设置”
点击jmeter上的“启动”按钮,打开浏览器 输入需要录制web项目地址,jmeter会自动 记录你IE所访问的页面。
1. jmeter功能测试的优缺点
【步骤一】安装jdk 1、下载jdk,到官网下载jdk,地址: /technetwork/java/javase/downloads/index.html 2、安装jdk,下载完成后,双击安装 【步骤二】配置jdk环境变量 右键计算机属性->高级系统设置->系统属性->高级->环境变量->添加如 下的系统变量: 变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.8.0_92【jdk安装路径】 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 最后在系统变量“Path”的变量值加上%JAVA_HOME%/bin,记得在前面 加上;号 【步骤三】验证jdk 运行cmd->输入java -version->显示java版本就表示jdk安装成功
可移植性和精心的GUI设计:100%基于Java 多线程:框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样 扩展性:能够自动扫描其lib/ext子目录下.jar 文件中的插件,并且将其装载到内存,让用 户通过不同的菜单调用。 支持分布式机制:使用多台机器同时产生负 载的机制