文档库 最新最全的文档下载
当前位置:文档库 › 跟我学如何应用Apache JMeter对项目进行压力测试(第2部分)

跟我学如何应用Apache JMeter对项目进行压力测试(第2部分)

跟我学如何应用Apache JMeter对项目进行压力测试(第2部分)
跟我学如何应用Apache JMeter对项目进行压力测试(第2部分)

1.1跟我学如何应用Apache JMeter对项目进行压力测试(第2部分)

1.1.1如何应用JMeter实现对数据库进行性能测试

1、对数据库服务器进行性能测试

(1)性能测试的目的

数据库服务器在大多数企业项目中是不可缺少的,对于它进行压力测试是为了找出:数据库对象是否可以有效地承受来自多个用户的访问。

这些对象主要是:索引、触发器、存储过程和锁。通过对于SQL语句和存储过程的测试,JMeter 可以间接的反应数据库对象是否需要优化。

(2)需要关注2种类型的JDBC请求:select语句和存储过程

前者反应了select语句是否高效,以及表的索引等是否需要优化;后者则是反应存储过程的算法是否高效。它们如果效率低下,必然会带来响应上的不尽如人意。

(3)对于这两种请求,JDBC请求的配置略有区别

●Select语句

●存储过程

2、拷贝mysql-connector-java-5.1.6-bin.jar到../lib目录中

注意必须首先添加JDBC驱动程序包文件以后,再启动JMeter。

3、添加线程组

处理每个JMeter测试计划的第一步就是添加线程组元件。这个线程组会告诉JMeter我们想要模拟的用户数量,用户应该发送请求的频率和应该发送的数量。

(1)添加一个线程组

首先选择这个测试计划,用鼠标右键点击然后在得到的菜单中选择添加--> 线程组。这时我们应该看到这个线程组已经在测试计划下面了,如果没有看到,就点击测试计划元件展开这个测试计划树。

(2)需要修改这些默认的属性

如果还没有选择线程组元件,则从测试计划树型结构中选择它。这时我们应该看到JMeter 窗口右边的线程组控制面板了。

(3)首先给这个线程组起一个有意义的名字。在名称域中, 输入JDBC Users

(4)需要一个可用的数据库,数据库表,和表的用户使用权限

在这个例子中,数据库是bbsdatabase,表名是userinfo。

(5)设置参数

将用户的数量(即threads)增加为10。在下一个the Ramp-Up Period文本域中 , 使用默认值为0。这个属性表示每个用户启动的迟延时间。例如,如果你输入Ramp-Up Period 为5秒,JMeter将会在五秒结束前完成启动所有的用户。所以,如果你有五个用户并且Ramp-Up

Period为五秒,那么开始用户的延迟就是1秒。(5个用户 / 5秒 = 1 用户每秒)。如果你设置其值为0,JMeter将会立即启动你所有的用户。

最后,取消标记为"永远"的复选框选择并设置循环次数为3。这个属性表示你的测试的重复次数。如果你设置为1,JMeter将你的测试只运行一次。要让JMeter不断的运行,你要选择“永远”这个复选框。

4、添加JDBC连接配置(负责配置数据库连接相关的信息)

(1)首先选择JDBC线程组元件

右键点击,在弹出的菜单中选择Add --> Config Element --> JDBC Connection Configuration。然后,选择这个新的元件来显示它的控制面板。

设定下面的文本域的值(我们这里假定用一个本地的MySQL数据库名为bbsdatabase)。Variable name bound to pool:这需要能够唯一标识这个配置,设置为MySQLDB。Database URL: jdbc:mysql://localhost:3306/bbsdatabase

JDBC Driver class: com.mysql.jdbc.Driver

Username: root

Password: root

JDBC连接配置主要是数据库url、数据库驱动类名、用户名和密码等等。在这些配置信息中,“绑定到池的变量名”(Variable Name Bound to Pool)是一个非常重要的属性,这个属性会在下面的“JDBC请求”中被引用。通过它, JDBC请求和JDBC连接配置建立关联。

JMeter是采用数据库连接池的方式进行数据库连接的,在JDBC连接配置中主要是配置上面的几个主要的属性,剩下的文本域我们可以采用默认的值。

5、添加JDBC请求(负责发送请求进行测试)

(2)再次选择JDBC线程组元件

右键点击,并在弹出的菜单中选择Add --> Sampler --> JDBC Request。

输入请求的SQL语句

6、添加一个监听器浏览/保存测试结果

需要添加到你测试计划的最后元件是一个监听器。这个元件责任是储存所有你的JDBC请求结果到文件,并且展示一个可视数据模型。

7、运行测试计划

从Run菜单,选择Run。

如果你测试正在运行,JMeter在右手上方的角落点燃一个绿正方形显示。当所有测试停止,那个方块变成灰色。即使你选择了"stop",绿光依然会继续停留,直到所有测试都已经停止。

可以查看请求的过程及结果,为了观察来自提供的取样器的响应内容,可以添加"观察结果树"或者"在表格观察结果"监听器到测试计划。

8、也可以改用其他形式的结果显示

Jmeter多接口测试性能测试

一、接口业务流程 1、获取token接口 http://192.168.1.4:9900/rest/getToken/ 2、获取图片链接口 http://192.168.1.4:9900/regist/getImagePath/?token=89bd9d88f4f3421c9e639dfab0c a423c&type=fql 返回数据: {"msg": "\u6210\u529f", "code": 0, "detail": {"image_path": "/images/regist/20160822/img1471837595.25.jpg"}} 3、获取图片验证码接口 http://192.168.1.4:9900/images/regist/20160822/img1471850521.18.jpg 4、获取注册结果接口 http://192.168.1.4:9900/regist/imageView/?imagecode=zds4&phone=182********&t oken=89bd9d88f4f3421c9e639dfab0ca423c&type=fql 二、JMETER的使用 1、基本操作 1.1、新增测试计划 新增线程组,接着在该线程组下方新增4个“HTTP请求”(添加-Sampler-HTTP请求),

再在该线程组下方添加“察看结果树”(添加-监听器察看结果树)。也可以在每个HTTP请求下方添加“察看结果树”,方便找到需要正则或参数化的数据。 一个完整的测试计划诞生了,如下图2.1所示 图2.1 1.2、配置HTTP请求 以上图中的“HTTP请求01”为例进行说明。在HTTP请求窗口中的Basic标签页面上输入服务器名称或IP、端口号和路径(路径URL地址端口号后面的),其他默认,如下图2.2-1所示。此时可以执行下然后在当前的HTTP请求01的察看结果树里检查接口是否能正常访问(如下图2.2-2所示)。 图2.2-1

jmeter性能测试报告.doc

快乐农家网站压力测试报告 一、测试简介 1、测试环境: 测试人:*** 测试时间:2010年9月13日 服务器 IP :客户端内存:(R)4 测试工具:测试内容: 二、测试说明 1、名词定义(时间的单位均为ms): Samples -- 本次场景中一共完成了多少个线程 Average -- 平均响应时间 Median -- 统计意义上面的响应时间的中值 90% Line -- 所有线程中 90%的线程的响应时间都小于 xx Min -- 最小响应时间 Max -- 最大响应时间 Error -- 出错率 Troughput -- 吞吐量 KB/sec -- 以流量做衡量的吞吐量 2、安装启动JMeter ,分别对以上页面进行压力测试 分别测试10、100、500、1000 个线程,即模拟这些数目的用户并发;每个用户循环发送请求 1; Ramp-up period ( inseconds )的值设为0,即并发请求。

三、测试结果及分析 1、首页测试结果及分析: Label#Samples Average Median90%Line Min Max Error% Throughput KB/sec 首页10 53 52 73 39 73 % sec 首页100 31 26 66 10 83 % sec 首页500 76 32 196 9 661 % sec 首页1000 36 22 69 9 345 % sec 分析: #Samples: 模拟 1000 个用户时的压力测试,Average :平均响应时间为秒,90%Line: 百分之90 的用户相应时间为秒,Error% : 没有无法相应的请求。 2、社区论坛测试结果及分析: Label#Samples Average Median90%Line Min Max Error% Throughput KB/sec 社区论坛10 53 52 73 39 73 % sec 社区论坛100 10279 9748 14997 528 15505 % sec 社区论坛500 28048 22277 79473 9 82674 % sec 社区论坛1000 17988 2509 71178 9 86822 % sec 分析:#Samples: 模拟 500 个用户时的压力测试,tomcat 已经明显看到响应慢了,Average : 平均响应时间为秒,90%Line:百分之90 的用户相应时间为秒,Error% :百分之40的请求无法响应。模拟1000 个用户时,出现的无法响应的概率:%。 3、专家与咨询测试结果及分析 Label#Samples Average Median90%Line Min Max Error% Throughp KB/sec ut

jmeter操作实例分析

JMeter操作实例 基本功能介绍 1.常用测试计划元件 主要包含右键的功能模块介绍 1.1 Threads(users) 1.1.1 setUp Thread Group 一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。 说白了就是在启动其他线程前,该线程会首先启动并且完成后才会启动其他线程。

1.1.2 teardown thread group 一种特殊的hread group,用于执行测试后的动作,即所有线程完毕后启动的线程. 1.1.3 thread group(线程组) 这个就是我们通常添加运行的线程。通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。 1.2测试片段(Test Fragment) 1.2.1 Test Fragment 测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。 1.3 配置元件 1.3.1 CSV Data Set Config 被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理众多变量。其实就是设置变量。

1.Variable Names:变量名列表(逗号分隔),可以指定变量名。 2.Allow quoted data?: CSV文件是否容许值被引用 3.Recycle on EOF: 达到文件结尾后,是否从文件开始循环重新读取(默认True),当到达文件尾时,且Recycle选项设置为True,就会从文件第一行重新开始读取,如果设置为false,而Stop thread on EOF是False,那么当到达文件尾部时所有变量都将被置为,可以通过设置JMeter属性csvdataset.eofstring来改变该值。如果Recycle选项为false,而Stop thread是True,那么到达文件尾部之后,将导致线程被终止。 4.Stop thread on EOF?:达到文件结尾后,线程是否该终止。 5.Sharing mode:如果希望每个线程拥有自己独立的值集合,那么就需要创建一系列数据文件,为每个线程准备一个数据文件,如test1.csv、test2.csv等,使用文件名test${__threadNum}.csv,并将“sharing mode"设置为"Current thread"

jmeter性能测试学习_鲁德性能测试

jmeter性能测试学习 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库,FTP 服务器,等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。 JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1,大家可以 到https://www.wendangku.net/doc/8c15378749.html,/jmeter/index.html下载源代码和查看相关文档。 JMeter作用领域 JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java 对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。 使用JMeter测试Web应用 接下来的章节里,作者将详细的演示如何使用JMeter来测试Web应用的完整过程。 2.1 测试环境 作者使用了Tomcat作为Web服务器进行测试,被测试的内容是一个jsp文件和一个servlet,jsp文件调用JavaBean、打印相关信息,servlet接受用户参数、调用javabean、输出相关信息。详细的内容请参考作者提供的JMeter.war的内容。 2.2 安装启动JMeter 大家可以到通过 https://www.wendangku.net/doc/8c15378749.html,/dist/jakarta/jmeter/binaries/jakarta-jmeter-1.9.1.zi p下载JMeter的release版本,然后将下载的.zip文件解压缩到C:/JMeter(后面的文章中将使用%JMeter%来引用这个目录)目录下。

Jmeter性能测试之JAVA脚本编写

Jmeter性能测试脚本编写 一。jmeter使用简介 简单点说,使用jmeter就是新建个Test plan 在test plan 下建个Thread Group ,Thread Group 下新建个simpler来发起请求,然后新建个listener,一般选择View Results Tree和Aggregate Report 来收集请求的结果数据,View Results Tree 侧重于单个请求的具体结果,Aggregate Report 侧重于多次请求后平均计算的数据结果 具体的步骤网上有很多文章,这里不再详细述说了 这里介绍一下同步定时器(Synchronizing Timer):在该定时器处,使线程等待,一直到指定的线程个数达到后,再一起释放。可以在瞬间制造出很大的压力。没错,它和loadrunner 的集合点(rendezvous point)差不多的功能。为什么要用这个组件呢?因为在线程组中设置的线程是依次去访问请求的,不是多个线程一起同步去访问的。要是想模拟线上的多个用户同时并发访问的情况, 最好使用Synchronizing Timer来设置一下。 Number of Simulated User to Group:模拟用户到组数,即设置组的用户数,达到该用户数后才进行接口的请求 Timeout in milliseconds :超时(毫秒),设置超时时间,即组在超时时间后达不到设置的线程数时,会丢弃继续请求

这些配置完成后,生成的是一个jmx为后缀的文件,里面的内容是xml格式文件,是这样的: 二。使用jmeter API 来构建自己的请求 一般来说,被压测的接口常用的就是那几种:http, socket,webservice,soap 这些,这些类型请求都可以使用各种不同的sampler来构建,

WEB性能测试-JMeter工具测试并发

WEB性能测试-并发测试 今天根据程序开发的逻辑和习惯来解决几个问题: (1)JMeter并发测试的基本使用。 (2)redis和mysql相比的性能差距如何? (3)大量的并发和请求下redis、mysql、nginx各自会出现的问题?(4)遇到并发带来各种各样的问题如何解决? 问题一:JMeter并发测试的基本使用 (1)设置系统语言:Options->Choose Lanuage 里选择适合你的语言。(2)添加线程组: (3)设置线程属性: 线程数:也就是并发数。 Ramp-Up时间(秒):并发时间,0为同时并发。 循环次数:重复次数。 (4)添加HTTP请求: 协议:http或https。 服务器名称或IP:请求地址。 路径:要请求的路由或文件路径。 参数:添加请求参数。 (5)添加察看结果树:可查看发送的数据,返回的结果等。

(6)添加汇总报告:可查看错误率,吞吐量等。 问题二:大量的并发和请求下redis、mysql、nginx各自会出现的问题? 在同时并发2000的情况下(因为redis队列为异步,所以这里不考虑redis出列的性能问题): mysql:错误率87.9%,成功条数241。 redis:错误率0.35%,成功条数1993。 总结:从以上结果可以看出在高并发场景下msyql扛不住压力错误率高。 结论:redis在处理并发性能优于mysql。 问题三:大量的并发和请求下redis、mysql、nginx各自会出现的问题? 3000并发循环请求3次相当于9000的次请求的情况下: (1)nginx报错:Too many open files(打开的文件数超过限制nginx默认为1024)。 (2)redis报错:RDB: 2 MB of memory used by copy-on-write。 (3)mysql直接写入失败。 问题四:遇到并发带来各种各样的问题如何解决? (1)nginx错误分析:最大打开文件数超过限制

JMeter测试数据和测试结果分析图表

JMeter测试数据和测试结果分析图表聚合报告: 测试数据统计与分析:

一、图形报表 图表底部参数的含义如下: 样本数目是总共发送到服务器的请求数。 最新样本是代表时间的数字,是服务器响应最后一个请求的时间。 吞吐量是服务器每分钟处理的请求数。 平均值是总运行时间除以发送到服务器的请求数。 中间值是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。 偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。 二、聚合报告

图表含义说明如下: Label:说明是请求类型,如Http,FTP等请求。 #Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。 Average:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。 Median:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。 90%line:是指90%请求的响应时间比所得数值还要小。 Min:是代表时间的数字,是服务器响应的最短时间。 Max: 是代表时间的数字,是服务器响应的最长时间。 Error%:请求的错误百分比。 Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。 KB/sec:是每秒钟请求的字节数。 三、使用分析 在测试过程中,平均响应时间是我们性能测试的一个重要衡量指标,但是在测试中,特别是在聚合报告中,得出的90%Line,我这里参考《《LoadRunner 没有告诉你的》之一——描述性统计与性能结果分析》,我认为90%Line等同于该文作者提出的90%响应时间,这个数

jmeter性能测试操作手册

JMeter性能测试实例 JMeter性能测试实例 (1) 一、测试目标 (1) 二、使用badboy工具录制登录脚本 (1) 三、Jmeter导入Login.jmx脚本 (2) 四、用户名的参数化 (3) 五、关联 (4) 六、添加监听器(Listener) (5) 七、运行脚本 (6) 八、结果分析 (8) 一、测试目标 1)测试目标网站是http://127.0.0.1:1080/WebTours/ 2)测试目的是得到该网站在100和500个虚拟用户并发登录网站 “http://127.0.0.1:1080/WebTours/”的平均响应时间,错误率,吞吐量,程序所在机器的CPU运行效率,memory占用大小 二、使用badboy工具录制登录脚本 打开badboy工具,点击工具栏上的红色圆形按钮,在地址栏中输入被测试项目的地址“http://127.0.0.1:1080/WebTours/”,录制登录过程

点击“跳转”后 进入登录页面 登录成功后 此时录制完成,点击工具栏上的红色圆形按钮结束录制。 选择"文件"--Export to Jmeter... 得到Jmeter脚本Login.jmx 三、Jmeter导入Login.jmx脚本Jmeter中打开Login.jmx脚本,得到如下目录树

四、用户名的参数化 参数化方式:添加--前置处理器--用户参数(勾选上每次迭代更新一次) 单击"http://127.0.0.1/WebTours/login.pl",将username的值改为${user}

五、关联 在“http://127.0.0.1/WebTours/nav.pl”请求下右击,选择添加--后置处理器--正则表达式提取器 正则表达式提取器的设置如下图显示: 单击"http://127.0.0.1/WebTours/login.pl",将userSession的值改为${session}

JMeter 性能测试插件开发_Part1

JMeter 性能测试插件开发 lifr(lifr_nj@https://www.wendangku.net/doc/8c15378749.html,)

JMeter的内部数据结构和Test执行过程 问题 问题1:在执行完"Java Request 1" 后会等待多少秒? Test执行过程 首先,我们来看看JMete内部到底是如何执行一个测试的。执行测试,你只需要选择菜单“Run->Start"。接下来, JMeter内部会进行相当多的动作。理解这整个过程可以帮助你更好的利用JMeter,也是JMeter开发的基础。

JMeterStandardEngine.run() 首先, JMeterStandardEngine获得控制权。在JMeterStandarEngine.Run()函数里,有下面一些主要步骤 首先会预编译TestTree,这是一个对JMeter里变量求值很重要的步骤,不过这里我们先略过。 然后会从TestTree里找出所有TestListener,并通知每一个TestListener 实例“测试开始了” 然后按照ThreadGroup的参数指定的方式启动JMeterThread 至此JMeterStandardEngine完成了它的工作,执行权交到了JMeterThread手上。 JMeterThread.run() 在JMeterThread的run函数,有下面一些主要步骤。 首先是初始化JMeterContext, 这是一个线程执行上下文,每一个JMeterThread在运行时都有一个JMeterContext实例。很多重要的运行时信息都保存在JMeterContext 里。在initRun函数里对JMeterContext进行初始化。 然后会迭代Test Tree里所有的Sampler,依次执行。在这里controller是TestTree 的ThreadGroup节点。通过它的next()方法可以遍历所有它下面的Sampler。 实际执行在函数process_sampler里。 JMeterThread.process_sampler() 在process_sampler里有下面的步骤

jmeter性能测试案例

JMeter基础之一一个简单的性能测试 发表于:2013-08-12来源:博客园作者:虫师点击数:80508标签:性能测试 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢。这一节创建一个简单的测试计划来使用这些元件。该计划对应的测试需求。1)测试目标网站是https://www.wendangku.net/doc/8c15378749.html, 和https://www.wendangku.net/doc/8c15378749.html, 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢。这一节创建一个简单的测试计划来使用这些元件。该计划对应的测试需求。 1)测试目标网站是https://www.wendangku.net/doc/8c15378749.html, 和https://www.wendangku.net/doc/8c15378749.html, 2)测试目的是该网站在负载达到20 QPS 时的响应时间。 QPS 解释 QPS : Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 为了达成预期的测目的,需要需要在jmeter中建立一个测试计划。因为本次测试仅要求完成对https://www.wendangku.net/doc/8c15378749.html, 和https://www.wendangku.net/doc/8c15378749.html, 两个博客首页请求,因此只需要使用HTTP Request Sampler 即可。 建立测试计划 启动jmeter后,jmeter会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。 添加线程组

一个性能测试请求负载是基于一个线程组完成的。一个测试计划必须有一个线程组。测试计划添加线程组非常简单。在测试计划右键弹出下拉菜单(添加 -->Threads(Users)--->线程组)中选择线程组即可。 jmeter中每个测试计划至少需要包含一个线程组,当然也可以在一个计划中创建多个线程组,那么多个线程组之间又会怎样的顺序执行(串行还是并行)?在测试计划下面多个线程是并行执行的,也就是说这些线程组是同时被初始化并同时执行线程组下的Sampler的。

jmeter性能测试白皮书

jmeter性能测试白皮书 线程组: 线程数:模拟用户数 Ramp-up period:等待周期,添加模拟用户之前的等待时间。列如:有100个模拟用户。Ramp-up=50,那么实际加压情况是每秒像数据库加2个用户(100/50)。等候周期这里设为0,jmeter会一次性启动所有用户 循环次数:重复次数,可以设置为永远。持续不断的执行下去 delay thread creation until needed:延迟线程创建,直到需要 调度器: 启动时间:可以预设一个时间来运行测试 结束时间:预设测试的结束时间 持续时间:测试运行多久停止 启动延迟:启动时间延迟秒数 JDBC Connection Configuration Variable name bound to pool 绑定变量名到连接池: Variable name: 数据库type Mysql Mssql Oracle Connection pool configuration 连接池配置: Max number of connection: 最大连接数 Pool timeout: 连接池超时 Idle cleanup interval: 自动回收不用的连接。超过这个时间的就自动回收 Auto commit:是否自动提交,oracle需要手写commit语句提交 Transaction isolation:事务隔离级别 Transaction_none:不设置事务隔离级别 Transaction_read_uncommitted:未提交读,可导致的问题是读脏 Transaction_read_committed:提交读,可导致的问题是不可重复读 Transaction_repeatable_read:导致幻读 Transaction_serializable:序列化读,最严谨但是处理最慢 Default:默认,sql service和oracle的事务隔离级别都是不一样的,数据库不一样这个default 的值不一样,详细可以百度 编辑:编辑参数来设置

Jmeter性能测试简介

Jmeter 性能测试简介 文档作者:胡丽霞 日期:2017/1/11

文档修订记录

1、概述 性能测试作为测试重要内容一致,其重要性不可忽略,然而性能测试的方式有很多,有些可以手工实现,有些需要借助工具。测试页面的响应时间我们可以使用Httpwatch,或者模拟大批量数据,自己估算时间,然而多个用户并发操作测试如果不借助工具似乎很难实现。业内提供了很多性能测试的工具,综合考虑,Jmeter 经济实用,并且容易掌握,应对简单的性能测试足以。 Jmeter可以对接口做功能测试以及性能测试,本文主要介绍Jmeter一些简单的性能测试操作。 2、适用对象 本文主要对Jmeter做简单的介绍,适用于测试人员使用此工具做接口简单的性能测试,同时也适合开发人员调试接口性能。仅为工具入门做参考。 3、工具介绍 3.1 工具下载 可以到Jmeter的官网下载最新版本:https://www.wendangku.net/doc/8c15378749.html,/ 或者可以用此安装包: apache-jmeter-3.1.zip 3.2 工具安装 此工具是一个免安装包,只需要将其解压,到bin目录下执行jmeter.bat文件即可打开工作界面,进行测试,如下图;Jmeter能够正常打开的前提是环境中需要有JDK。

3.3 Jmeter的工作界面 工具界面简洁明了,其中菜单栏中涉及的主要操作基本上提到了工具栏,当在工具栏中找不到对应操作时再返回菜单栏查找。 工作区域也分为工作目录树形结构和主要区域,树形目录方便归类查询,使用过程更便捷,管理更加便利。接下来在使用过程中介绍一些常用的操作。

3.4 Jmeter关键组件 3.4.1 组件的功能介绍 在树形菜单测试计划节点或者工作台节点点击右键,会出现如下一些组件: 以下做简单归纳: 1、Threads:这个组件主要用来控制Jmeter并发时产生线程的数量,在它的 下一级菜单下只有一个组件(线程组),可以这么理解每个线程就是一个虚拟的用户。所有的其他类型组件必须是(线程组)节点的子节点。我们测试就是从线程组开始的; 2、配置单元:和Sample组件一起工作,主要用来配置Sample如何来发起请 求访问服务器,这个东西的主要特点是可以把一些Sample的共同配置放在一个元 素里面方便管理,配置单元是有作用域的。作用域和树的那个关系一样越是上级节点的作用域越大,越是接近叶子节点的作用域就越小,可以复写上级作用域的配置; 3、定时器:这个主要是用来调节(线程组),控制线程每次运行测试逻辑(比如说:发出请求)的时间间隔。当然这个下面还有很多类型的定时器,他们主要功能就是调节时间间隔,但个个组件之间的策略有很大不同。 4、Sample :可能上图中没有出现Sample,需要在线程组上添加才可以,见 图

Jmeter性能测试工具使用总结

Jmeter 使用总结 1.下载 Apache JMeter是Apache组织开发的基于Java的压力测试工具。下载链接: https://www.wendangku.net/doc/8c15378749.html,/download_jmeter.cgi 2. 安装 Jmeter需要Java环境支持,首先配置系统JAVA环境变量。 Windows:解压apache-jmeter-ver.zip文件,运行bin目录下jmeter.bat文件启动。Linux:解压apache-jmeter-ver.zip文件,运行bin目录下jmeter.sh文件启动。 3. Jmeter主要组件简单介绍 a. 测试计划:Jmeter测试起点,是其他组件的容器。 b. 线程组:设置测试并发线程数量,迭代次数或者运行时长。 c. 配置元件:主要是配置信息,主要使用请求头信息、变量等。 d. Samler:指定发送的请求,所有的测试任务都在该组件完成。 e. 监听器:负责测试结果显示,支持把测试结果写入到文件。常用监听器:察看结果树, 显示请求和响应的细节,一般在测试脚本是否正确时使用;聚合报告:性能测试结果统计,显示总请求数,平均响应时间,错误率,TPS,数据传输速度等。 4. 使用Jmeter创建测试计划实例(以公有云为例) a. 运行bin目录下jmeter.bat文件启动Jmeter,界面如下 b.添加线程组并改名为Upload4KBObject。右键测试计划->添加->Threads->线程组。 c.给线程组添加Http信息头,并添加所需字段。

d. 给线程组添加Sampler,Http请求。 e.给线程组添加监听器,察看结果树。 f.运行该测试计划并察看结果树结果。

基于Jmeter的自动化性能测试方法及系统与设计方案

本技术提供了一种基于Jmeter的自动化性能测试方法及系统,所述方法采用在Jmeter测试工具中设置并发量、端口号、IP地址及循环数,运行Jmeter得到测试结果,同时编写统计结果脚本,分析Jmeter测试结果,获得最终的性能测试结果;同时本技术还通过编写Shell脚本将并发量、端口号、IP地址、循环数及Jmeter测试结果和保存目录进行参数化,来实现多个接口,多组并发,多个不同IP地址或端口的测试;本技术无需多次输入执行命令,无需多次重写脚本,无需将测试结果拷贝到安装了jmeter GUI的电脑中,可节约大量时间,提升工作效率,提升工作准确率。 权利要求书 1.一种基于Jmeter的自动化性能测试方法,其特征在于,压测机服务器、API服务器及数据库

均在由代理服务器提供网络连接的同一个内网中,所述压测机服务器与API服务器通过API 接口进行连接,所述数据库提供API接口所需要调用的数据,压测机服务器上加载Jmeter性能测试工具,所述方法包含以下步骤: S1:启动Jmeter性能测试工具,设置压测机服务器发送请求的并发数、代理服务器的IP地址及端口号及每个请求的发送循环数; S2:设置好步骤S1中的参数后运行Jmeter进行测试,将Jmeter测试结果保存在Jtl文件中; S3:分析Jtl文件,编写统计结果代码,形成统计脚本,运行统计脚本,得到最终的统计结果,形成最终性能测试报告。 2.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,还包括编写Shell 脚本来将步骤S1中的压测机服务器发送请求的并发数、代理服务器的IP地址及端口号、每个请求的发送循环数及Jmeter测试结果保存目录进行设置和参数化,将所述Shell脚本导入Jmeter并运行,以执行多个测试接口,多组压测机并发,多个不同IP地址或端口的测试。 3.根据权利要求2所述一种基于Jmeter的自动化性能测试方法,其特征在于,所述Shell脚本通过C或Python编写。 4.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,根据步骤S3中所述Jmeter测试结果:第一列数据为时间戳,第二列代表响应时间,根据公式:每秒请求数=(总请求数/总运行时间)得到每秒请求数。 5.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,步骤S3中得到的最终性能测试结果包含:平均响应时间、响应时间中值、最小响应时间、最大响应时间、90%响应时间、95%响应时间、每秒查询速度、每秒从服务器接收的数据量、每秒从服务器发出的数据量、吞吐量及错误率。 6.一种基于Jmeter的自动化性能测试系统,其特征在于,采用权利要求1-5所述任意一项基于Jmeter的自动化性能测试方法来实现Jmeter的自动化性能测试。

用JMeter来测试Tomcat的性能

用JMeter来测试Tomcat的性能 2007.07.23 来自:IT168 共有评论()条发表评论收藏 JMeter 是 Apache 组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1。接下来的章节里,作者将详细的演示如何使用JMeter来测试Web应用的完整过程。2.4 增加负载信息设置这一 JMeter 是 Apache 组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1。本文中作者将向大家介绍如何使用JMeter 进行测试。 JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1,大家可以到 https://www.wendangku.net/doc/8c15378749.html,/jmeter/index.html下载源代码和查看相关文档。 JMeter作用领域 JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter 提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。 一、使用JMeter测试Web应用 使用JMeter测试Web应用 接下来的章节里,作者将详细的演示如何使用JMeter来测试Web应用的完整过程。 2.1 测试环境 作者使用了Tomcat作为Web服务器进行测试,被测试的内容是一个jsp文件和一个servlet,jsp文件调用JavaBean、打印相关信息,servlet接受用户参数、调用javabean、输出相关信息。详细的内容请参考作者提供的JMeter.war 的内容。

通过Jmeter进行http性能测试方案

Jmeter-Http测试方案和测试报告示例 第一部分测试报告示例 第二部分Jmeter使用说明 第一部分测试报告示例 性能测试报告: 测试目标:测试xxx平台用户登录并发的承载能力 测试服务器:xxx云平台 测试原理:远程并发Http请求,通过POST方式。 测试模型一: 1.并发登录线程数:500 2.Ramp-Up Period:0ms 3.执行时间:执行一次 4.测试结果 测试模型二 1.并发登录线程数:1000 2.Ramp-Up Period:0ms 3.测试结果

测试模型三 1.并发登录线程数:4000 2.Ramp-Up Period:0ms 3.执行时间:执行一次 4.测试结果 测试模型三 1.并发登录线程数:6000 2.Ramp-Up Period:0ms 3.执行时间:执行一次 4.测试结果

测试模型四 1.并发登录线程数:8000 2.Ramp-Up Period:0ms 3.执行时间:执行一次 4.测试结果 测试模型五

1.并发登录线程数:100 2.Ramp-Up Period:0ms 3.执行时间:30分钟(7月23日23:21-23:51) 4.测试结果 性能测试结果比较: 数据含义: 样本数目是总共发送到服务器的请求数。 最新样本是代表时间的数字,是服务器响应最后一个请求的时间。 吞吐量是服务器每分钟处理的请求数。 平均值是总运行时间除以发送到服务器的请求数。 中间值是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。 偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。压力测试结果:

相关文档