一、 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_使用JMeter测试Java项目相关推荐

  1. maven 创建 java_使用maven创建java项目

    1. 从 Maven 模板创建一个项目 在终端(* UNIX或Mac)或命令提示符(Windows)中,浏览到要创建 Java 项目的文件夹.键入以下命令: mvn archetype:generat ...

  2. 如何真正的吃透一个Java项目?

    如何真正的吃透一个Java项目?这里要说吃透一个Java项目的标准就是:下次遇到此类Java项目可以快速使用写过的Java项目的解决方案完成它. 要达到这个的标准,还得从开发一个Java项目的过程来分 ...

  3. Android Studio创建Java项目

    我的简书:简书 在使用Android Stduio的过程中,可能需要测试一些java的东西,简单的可以使用Test包中些测试类进行测试,但是毕竟有些java相关的东西无法引用. 那么就需要使用Andr ...

  4. jmeter之java代码性能测试_松勤软件性能测试-自定义编写的Java测试代码在Jmeter中如何使用...

    原标题:松勤软件性能测试-自定义编写的Java测试代码在Jmeter中如何使用 我们在做性能测试时,有时需要自己编写测试脚本,很多测试工具都支持自定义编写测试脚本,比如LoadRunner就有很多自定 ...

  5. java 压力测试_使用 JMeter 完成常用的压力测试

    讲到测试,人们脑海中首先浮现的就是针对软件正确性的测试,即常说的功能测试.但是软件仅仅只是功能正确是不够的.在实际开发中,还有其它的非功能因素也起着决定性的因素,例如软件的响应速度.影响软件响应速度的 ...

  6. 为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname

    之前总结了 jmeter 分布式测试的过程,在部署过程中提到,要在 system.properties 中配置自己的 IP. 至于为什么要这么做,源于这一次 debug 的过程. 运行环境 mint, ...

  7. issue no route to host 为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname--(有效)

    之前总结了 jmeter 分布式测试的过程,在部署过程中提到,要在 system.properties 中配置自己的 IP. 至于为什么要这么做,源于这一次 debug 的过程. 运行环境 技术分享图 ...

  8. Java压力测试工具--Apache JMeter的安装与使用

    一.JMeter 这是一个用于java的压力测试工具,可以用于测试静态和动态资源,例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.数据库.FTP 服务器等 具体的使用见下面的博客链接 ...

  9. jmeter异步请求测试_使用JMeter对异步HTTP / REST服务进行压力/负载测试

    jmeter异步请求测试 尽管我一直在使用JMeter进行Web应用程序的压力测试和负载测试好几次,但我们还是花了一些时间才弄清楚如何使用该工具测试基于异步HTTP / REST的服务. 对我们来说, ...

最新文章

  1. linux rpm 校验软件包中的文件
  2. 《走遍中国》珍藏版(十一)
  3. dubbo-快速入门-分布式RPC框架Apache Dubbo
  4. Python学习教程(Python学习路线):如何正确使用Pandas库提升项目的运行速度?...
  5. Spring中的Bean默认是单例还是多例?如何保证并发安全?
  6. 大数据_Flink_流式处理_Flik Vs Spark streaming_Flink的特点---Flink工作笔记0007
  7. vue通过数据驱动实现表格行的增加与删除
  8. APICloud开发者进阶之路 |纯手工编写日程表功能
  9. mysql 表增加多个索引_mysql给同一个表添加多个索引的测试
  10. 某银行Zabbix开源监控系统建设之路
  11. mbedtls | 03 - 单向散列算法的配置与使用(MD5、SHA1、SHA256、SHA512)
  12. 中国人口总数、老龄人口占比及2040人口年龄结构变化预测
  13. 知了Excel教你vlookup反向查询,就是这么简单
  14. 计算机硬盘怎么整理,w7怎么整理磁盘碎片_如何清理win7电脑磁盘碎片
  15. HttpClient发送POST和GET请求
  16. jmeter 报405错误_get请求400错误,post请求405错误
  17. python eel 多线程_Python + Eel + Sqlite 实现个人密码管理器
  18. JAVA默认永久代大小_jvm——metaspace代替永久代
  19. is are am 三者的区别
  20. 第三方支付创新与风控是未来关键——拉卡拉支付

热门文章

  1. 为什么刹车热了会失灵_汽车为什么要换刹车油?
  2. python sns绘制回归线_SVM--支持向量机amp;Python代码
  3. python面向对象还是过程_Python学习————面向对象和面向过程
  4. java 读取网络图片_每日一学:如何读取网络图片
  5. c++ 如何获取网络时间_云台山茶旅集团如何四年时间获取十万老人的万千目光...
  6. linux ftp做yum源,在RedHat5下架设yum源服务器(FTP)
  7. php移除所有子节点,PHP 循环删除无限分类子节点的实现代码
  8. pythontype(1+0xf*3.14)_numpy强制类型转换|图像线性增强|不同数据类型与图像的显示...
  9. linux下直接使用base64就可转换图片为二进制
  10. 用计算机控制检测实时温度,温度实时测量及控制系统.doc