服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 开发工具 > 查看文档

如何使用jmeter测试java项目

  一、 apache jmeter工具

  1)简介

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

  2)jmeter的下载地址:http://jakarta.apache.org/jmeter/usermanual/index.html

  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)测试环境:

  硬件配置 软件环境

  测试时间 2004 年 5 月 25 日

  服务器 p4 512m 内存 oracle 10g+tomcat5.5

  客户端 p4 512m 内存 jmeter

  测试内容 khxx_xg.jsp 接受用户参数、调用 javabean 、输出相关信息。

  2)安装启动jmeter

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

 

  以下为我的测试计划的内容:

  1、右键单击测试计划,选择添加-〉线程组

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

  线程数: 10

  ramp-up period(inseconds): 0

  循环次数: 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 发送测试请求时使用的协议

  路径: /hrbin/hg_admin/khxx_xg.jsp 默认的起始位置。

   3、添加http请求

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

  说明

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

  服务器名称或ip:

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

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

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

  路径: /hrbin/hg_admin/khxx_xg.jsp 默认的起始位置。

  因为我测试的是查询,故添加了一个同请求一起发送的参数(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

  我分别模拟10、25、50、75和100个用户并发访问该页面,根据报告所得测试结果作出如下统计。注:时间单位是ms

  

  用户数 #samples average median 90%line min max error% throughput kb/sec

  10 642 672 688 125 125 719 00.0 14.8/sec 221.15

  25 250 1620 1687 1750 250 1781 00.0 14.5/sec 217.14

  50 500 3319 3438 3578 281 3657 00.0 14.2/sec 212.02

  75 750 4887 5109 5584 328 7094 00.0 14.5/sec 216.67

  100 1000 6244 6485 6672 250 6844 00.0 15.1/sec 225.43

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

扫描关注微信公众号