烈焰门户技术文章JavaScript
阅读文章

一个简单的java压力测试框架

[日期: 2008-05-12 ] 来源:   作者: [字体: ]

一个简单的java压力测试框架

原理

压力测试主控程序(以下简称主控程序)根据测试计划,启动各测试工作站(以下简称工作站)上的测试程序,模拟大量的并发访问,并接收工作站返回的测试结果数据(完成笔数)

Getting Started编写测试计划

     测试计划是个简单的文本文件,文件名为testplan.properties,每行以key=value的形式保存测试参数,value是以逗号分隔字符串。测试参数包括:
     1、worker:一个测试类的全名,该类必须是com.jcomposer.test.TestWorker的子类,并且重写process()方法,在该方法中加入要进行压力测试的代码段
     2、ip:各工作站的ip地址,以逗号分隔
     3、thread:各工作站上启动的线程数
     4、time:各工作站上测试执行的时间,以毫秒为单位
     5、files:文件名列表,为可选设置。如果设置,则文件在各测试工作站上必须存在,测试人员可自行决定该文件的内容,以及如何在worker指定的类中处理该文件。指定files参数的用意,是为了给测试工作站提供更多测试内容选择,例如可以是各种要提交的数据或参数

以下是一个测试计划文件:testplan.properties

worker=com.jcomposer.testframework.MyTestWorker
ip=182.119.115.55,182.119.115.188,182.119.115.155
thread=10,20,30,40
time=10000,20000,30000
files=query.xml,tran.xml

以上测试计划告诉主控程序,启动指定ip地址的各工作站上的com.jcomposer.testframework.MyTestWorker,并在每个工作站上依次开启10、20、30、40个线程,测试时间依次为10秒、20秒、30秒,文件依次为query.xml和tran.xml

运行压力测试

首先运行各工作站上的测试程序start.bat,进入准备状态。接着,在主控程序所在机器上运行主控程序startMain.bat,这将同时启动各工作站上的测试程序,即testpanel.properties中指定的worker,例如上面testplan.properties中的com.jcomposer.testframework.MyTestWorker。

查看测试结果

测试结束后,主控程序所在目录下有一个test.log文件,记录了测试结果,第一行为列标题,格式类似如下:

182.119.115.127 thread time file start end elapsed count
14 10 10000 query.xml 1208840567421 1208840579640 12219 14
24 10 20000 query.xml 1208840579640 1208840601671 22031 24
43 10 30000 query.xml 1208840601671 1208840633734 32063 43
8 20 10000 query.xml 1208840633734 1208840645796 12062 8
15 20 20000 query.xml 1208840645796 1208840667843 22047 15
31 20 30000 query.xml 1208840667843 1208840699890 32047 31
56 30 10000 query.xml 1208840699890 1208840711953 12063 0
8 30 20000 query.xml 1208840711953 1208840734015 22062 8
23 30 30000 query.xml 1208840734015 1208840766078 32063 23
6 40 10000 query.xml 1208840766078 1208840778140 12062 0
13 40 20000 query.xml 1208840778140 1208840800203 22063 0
3 40 30000 query.xml 1208840800203 1208840832250 32047 3
45 10 10000 tran.xml 1208840832250 1208840844312 12062 0
70 10 20000 tran.xml 1208840844312 1208840866343 22031 70
237 10 30000 tran.xml 1208840866343 1208840898390 32047 237
93 20 10000 tran.xml 1208840898390 1208840910437 12047 93
154 20 20000 tran.xml 1208840910453 1208840932515 22062 154
231 20 30000 tran.xml 1208840932515 1208840964593 32078 231
17 30 10000 tran.xml 1208840964593 1208840976656 12063 17
85 30 20000 tran.xml 1208840976656 1208840998703 22047 85
203 30 30000 tran.xml 1208840998718 1208841030781 32063 203
79 40 10000 tran.xml 1208841030781 1208841042843 12062 79
149 40 20000 tran.xml 1208841042843 1208841064906 22063 149
162 40 30000 tran.xml 1208841064906 1208841096953 32047 162

(为简单起见,上面的test.log只列出了一个工作站的测试数据)

这是一个tab分隔的文本文件,从左到右依次为:各工作站完成的笔数、各工作站上的线程数、测试运行时间、文件名、开始时间、结束时间、耗时、所有工作站完成笔数合计。你可以很方便地在excel中打开该文件,对测试结果数据进行整理分析。

下一步开发计划

1、加入定时运行测试功能,可设置测试启动的时间,以便在业务繁忙或空闲的时间段进行压力测试
2、加入AOP(Aspect Oriented Programming)机制,对应用程序的各部分进行全面的灵活的测试、观察
3、GUI版本的主控程序

阅读:
录入: ☆我就‰喜欢☆ 打印 错误报告
上一篇: Javascript 在IE、Firefox 下的兼容汇总
下一篇: 让整个网页变成灰白效果,配合全国哀悼
相关文章
本文评论(点击查看所有评论
发表评论
希望 寒冷 强悍 惊讶 开心 吃饭 恭喜 流泪 爱你 啊困 心碎
偷笑 咒骂 流汗 大哭 求爱 装酷 砖头 头晕 出气 呲牙 吸烟

点评:


  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规!
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任!
  • 本站管理人员有权保留或删除其管辖留言中的任意内容!
  • 本站有权在网站内转载或引用您的评论!
  • 参与本评论即表明您已经阅读并接受上述条款!
关于烈焰网 | 意见投诉 | 网站地图 | 联系方式 | Ajax技术
Copyright © 烈焰门户 www.Jvqq.Net.Cn All Rights Reserved 京ICP备07022601号