一、 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人并发访问就比较慢了。

【转】如何使用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. bzoj3402

    题解: spfa最短路 然后枚举判断奇数 代码: #include<bits/stdc++.h> using namespace std; ; ]; void jb(int x,int y ...

  2. vue 侧边导航栏递归显示

    import axios from "axios"; import tabs1 from "../tab_content/tab1.vue"; import m ...

  3. jquery中ajax跨域的写法

    由于JS同源策略的影响,因此js只能访问同域名下的文档.因此要实现跨域,一般有以下几个方法: 一.处理跨域的方式: 1.代理 2.XHR2 HTML5中提供的XMLHTTPREQUEST Level2 ...

  4. 【LeetCode 228_数组】Summary Ranges

    vector<string> summaryRanges(vector<int>& nums) { int nums_len = nums.size(); vector ...

  5. 原生js重写《锋利的JS》之 轮播效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. L161

    The robot arm made for gentle undersea explorationA soft robotic arm which will allow underwater sea ...

  7. 深度学习(六十九)darknet 实现实验 Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffma

    本文主要实验文献文献<Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization ...

  8. VSS虚拟交换系统

    下面介绍一下如何在CISCO交换机上配置VSS,具体配置如下: //在CISCO1 上配置vss域,两台设备都要在同一个域中 Cisco-(confgi)#switch virtual domain ...

  9. gulp使用 实现文件修改实时刷新

    gulp例子:https://github.com/Aquarius1993/gulpDemo 淘宝镜像:$ npm install -g cnpm --registry=https://regist ...

  10. Form表单如何传递List数组对象到后台的解决办法(转)

    举例说明: [后台有一个对象 User    一个PhotoDo对象],结构如下: public class User{ private String username; private List&l ...