一、 Apache JMeter工具

  1)简介

  JMeter——一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。

  2)Jmeter的下载地址:http://jakarta.apache.org/jmeter/usermanual/index.html 和http://www.testtao.cn/?p=369

  3)Apache JMeter 的特性:

  a) 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。

  b) 完全的可移植性和100% 纯Java。

  c) 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。

  d) 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。

  e) 精心的GUI设计允许快速操作和更精确的计时。

  f) 缓存和离线分析/回放测试结果。

  g) 高可扩展性:

  h) 可链接的取样器允许无限制的测试能力。

  i) 各种负载统计表和可链接的计时器可供选择。

  j) 数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。

  k) 具有提供动态输入到测试的功能(包括Javascrīpt)。

  l) 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。

  二、 JMeter可以做哪些方面的测试

  原先Jemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。

  三、具体事例

  1)测试环境:

  2)安装启动JMeter

  请将下载的.zip文件解压缩到E:\Jmeter目录下。现在,请使用E:\Jmeter/bin下面的jmeter.bat批处理文件来启动JMeter的可视化界面,下面的工作都将在这个可视化界面界面上进行操作。图1就是Jmeter的可视化界面。

以下为我的测试计划的内容:
  1、右键单击测试计划,选择添加-〉线程组

  在线程组里设置负载信息,即线程属性。我向测试计划中增加相关负载设置是Jmeter需要模拟十个请求者,每个请求者在测试过程中并发请求,并且连续请求10次。

  线程数: 20

  Ramp-up period(inseconds): 10

  循环次数: 10

  说明:线程数代表发送请求的用户数目,Ramp-up period(inseconds)代表每个请求发生的总时间间隔,单位是秒。假如我的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒。如果设置为0就代表并发请求。Loop Count代表请求发生的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复 指定的次数,如果输入0,那么请求将执行一次。

  2、添加HTTP默认请求值

  右键单击线程组,选择添加-〉配置元件-〉HTTP默认请求值,以下是我设置的信息:

  说明

  名称: HTTP 默认请求值 该元素的名称

  服务器名称或IP:

  localhost 被测试服务器的 IP或者名字

  端口号: 8080 服务器提供服务的端口号,我用的服务器是 Tomcat,所以端口号是8080

  协议: http 发送测试请求时使用的协议

  路径:/routing/routing_open_account.html默认的起始位置。【就是页面路径jsp】

   3、添加HTTP请求

  右键单击线程组,选择添加-〉Sampler-〉HTTP请求,以下是我设置的信息

  说明

  名称: HTTP 默认请求值 该元素的名称

  服务器名称或IP:

  localhost 被测试服务器的IP或者名字

  端口号: 8080 服务器提供服务的端口号,我用的服务器是Tomcat,所以端口号是8080

  协议: http 发送测试请求时使用的协议

  路径:/routing/routing_open_account.html 默认的起始位置。

  因为我测试的是查询,故添加了一个同请求一起发送的参数(in_id=dsgds):

   4、添加监听器,存放测试结果。

  右键单击测试计划,选择测试计划-〉添加-〉监听器-〉聚合报告

  你也可以选择用表格查看结果、图形结果、查看结果树等。

  4)运行测试

  单击运行,选择启动。

四、 测试结果的分析说明

  说明:

  Label: 每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示的就是Name 属性的值

  #Samples: 表示你这次测试中一共发出了多少个请求,我的测试计划模拟 10 个用户,每个用户迭代 10 次,因此这里显示100

  Average: 平均响应时间 —— 默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以 Transaction 为单位显示平均响应时间

  Median: 中位数,也就是 50 %用户的响应时间

  90% Line: 90 %用户的响应时间

  Min: 最小响应时间

  Max: 最大响应时间

  Error%: 本次测试中出现错误的请求的数量 / 请求的总数

  Throughput: 吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second ),当使用了Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

  KB/Sec: 每秒从服务器端接收到的数据量,相当于 LoadRunner 中的 Throughput/Sec
  一般情况下,当用户能够在2秒以内得到响应时,会感觉系统的响应很快;当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;当用户在5-10秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;而当用户在超过10秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。故该系统的用户信息查询信息页面的在10到25人并发访问时,系统响应速度很快,25人到50人并发访问时速度还可以,50人到100人并发访问就比较慢了。

使用JMeter测试Java项目的更多相关文章

  1. 【转】如何使用JMeter测试Java项目

    一. Apache JMeter工具 1)简介 JMeter——一个100%的纯Java桌面应用,它是 Apache组织的开放源代码项目,它是功能和性能测试的工具.JMeter可以用于测试静态或者动态 ...

  2. jmeter测试java代码

    有时候总是要写代码的,不得不说你也得会,这不往下看 java请求了,就的写代码,那么先来实现一个类, package com.company.jemeters; public class Hello ...

  3. jmeter 测试java协议经验总结

    对java协议的良好支持,是jmeter比loadrunner优秀的地方,但是坑也不少,本文将相关点都整理下来备忘 一. 依赖的jar包 使用IDE开发jemter java协议脚本时,需要导入以下几 ...

  4. 使用Jmeter测试java请求

    1.性能测试过程中,有时候开发想对JAVA代码进行性能测试,Jmeter是支持对Java请求进行性能测试,但是需要自己开发.打包好要测试的代码,就能在Java请求中对该java方法进行性能测试2.本文 ...

  5. JMeter学习(十七)JMeter测试Java

    目的:对Java程序进行测试 目录 一.核心步骤 二.实例 三.JMeter Java Sampler介绍 四.自带Java Request Sampler 一.核心步骤 1.创建一个Java工程: ...

  6. JMeter学习(十八)JMeter测试Java(二)

    实例: 服务为:将输入的两个参数通过IO存入文件: 1.打开MyEclipse,编写Java代码 服务: package test; import java.io.File; import java. ...

  7. JMeter学习(十六)JMeter测试Java(二)(转载)

    转载自 http://www.cnblogs.com/yangxia-test 实例: 服务为:将输入的两个参数通过IO存入文件: 1.打开MyEclipse,编写Java代码 服务: package ...

  8. JMeter学习(十五)JMeter测试Java(转载)

    转载自 http://www.cnblogs.com/yangxia-test 目的:对Java程序进行测试 目录 一.核心步骤 二.实例 三.JMeter Java Sampler介绍 四.自带Ja ...

  9. jmeter(二十二)jmeter测试Java请求

    目的:对Java程序进行测试 目录 一.核心步骤 二.实例 三.JMeter Java Sampler介绍 四.自带Java Request Sampler 一.核心步骤 1.创建一个Java工程: ...

随机推荐

  1. jdbc多种实现方式

    1,驱动加载 //注册驱动 //DriverManager.registerDriver(new Driver());此方法被淘汰 Class.forName("com.mysql.jdbc ...

  2. easyui combogrid 按需加载,点击下拉加载

    功能优点:减少不必要的http请求,减少服务器查询压力,降低额外的浏览器渲染,提高呈现速度开发分享: combogrid 点击才请求的功能实现简要:我分析了费用系统,和现在全网的写法.并不满意.都是要 ...

  3. Springboot集成BeanValidation扩展一:错误提示信息加公共模板

    Bean Validator扩展 1.需求 ​ 在使用validator时,有个需求就是公用错误提示信息,什么意思? 举个例子: ​ @NotEmpty非空判断,在资源文件中我不想每个非空判断都写”不 ...

  4. 2016summer 训练第二场

    1.http://acm.hdu.edu.cn/showproblem.php?pid=5112 #define _CRT_SECURE_NO_DEPRECATE #include<iostre ...

  5. hdu1048(c++)

    用string串来处理这个题很方便 #include<iostream>#include<string>using namespace std;string cipher(st ...

  6. linux就该这么学之新手必须掌握的linux命令

    常用的系统工作命令 1echo:用于在终端显示字符串或变量 格式为:“echo [字符串|变量]” 2date:用于显示/设置系统的时间或日期 格式为:“data[选项][+指定格式]” 3rebot ...

  7. iframe.contentWindow 属性:关于contentWindow和contentDocument区分

    定义和用法 contentDocument 属性能够以 HTML 对象来返回 iframe 中的文档,可以通过所有标准的 DOM 方法来处理被返回的对象. 语法:frameObject.content ...

  8. http://bbs.51cto.com/thread-1070029-1-1.html

    http://bbs.51cto.com/thread-1070029-1-1.html

  9. RSA加密解密及数字签名Java实现

    http://my.oschina.net/jiangli0502/blog/171263

  10. ES的关键端口

    ElasticSearch的集群可自发现,只要配置相同的集群名称,默认为组播发现机制,默认情况下: http 端口:9200 需要打开给调用 数据传输端口:9300 用于集群之间交换数据 组播端口(U ...