日期:2014-05-17  浏览次数:21021 次

利用线程池打造一个简单的压力测试软件
很想知道以前写的ASP.NET网站的性能如何 于是上网找相关的网站压力测试工具 找了半天不是要收费的就是巨麻烦配置一大堆 虽然VS似乎也自带webform的测试框架 但是感觉也挺复杂 我所要的就是输入一个网址和访问数量 就可以得到平均response时间的软件 这几天正好在鼓捣多线程 原生的写了个进度条 这回打算试试线程池 干脆就利用线程池自己写个压力测试工具

软件的基本思路非常简单 就是利用HttpWebRequest提交请求 获取返回 然后利用Stopwatch来得到请求返回的时间 求这些集合的和再除以访问成功的连接的数量 就可以得到平均response时间 当然 所有这些请求都是利用线程池线程来完成的 顺带还熟悉了一下interlocked这个类 毕竟在统计总计时间的时候必须是同步操作 不然就会出错 
程序运行图片如下:
针对百度的测试:平均response时间为134ms

针对CSDN论坛的测试(希望不会被当成黑客~):平均response时间为235ms

针对自己的网站:写的太烂~平均response时间就不说了 不过通过windows内置的性能计数器可以看到软件在我的电脑上跑的最高1秒的请求可以达到113 当然这个值是根据我后台开的程序多少变动的 如果什么都没有开估计会更高


利用这个软件还可以模拟测试一些本地测试无法覆盖 但是放到server上就报错 尤其是那种过一会儿才发生的错误

软件还自带了之前写的progressbar控件 顺带修复了好几个bug~真心是要在实际运用中才能看出bug啊~
唯一比较遗憾的就是无法针对需要有session验证 表单提交的页面做测试 程序内部利用GET形式提交请求
下载地址在此
http://download.csdn.net/detail/xboxeer/4405096

------解决方案--------------------
 


话说。。你那白白的进度条背景深深地融入了窗体,让我眼前只剩下一条黑黑的道道……

第一眼真看不出来那是进度条,还以为你给次数打了马赛克。。
------解决方案--------------------
大哥 可以发源码给我学习学习下么? 谢谢. smkogeo@163.com
------解决方案--------------------
这个跟你的网络状况有很大关系,没有压力
------解决方案--------------------
探讨
我了个去 肿么没人~桑心~

------解决方案--------------------
我了个去 
CSON



------解决方案--------------------
看看,不怎么会c#
------解决方案--------------------
这个比较适用
------解决方案--------------------
比较适用
------解决方案--------------------
比较牛哦,现在自学在,写个QQ 对于线程还有socket 还是一知半解,弄了别人的代码参考,各有各的写法。
能交个好友,以后有问题请教下····
------解决方案--------------------

------解决方案--------------------
这个和你机器的带宽没有关系吗? 个人认为,带宽不够的话根本测不出来...
------解决方案--------------------
不错啊
------解决方案--------------------
相当不错啊
------解决方案--------------------
楼主好人呢! 代码都提供了
------解决方案--------------------
...自己的网速有快有慢不能说明问题!
我之前写了个刷贴的软件!
在自己的机子只能刷1秒20个左右!
网吧1秒能刷100左右!
能说明什么?
这个网站是速度快还是慢?

------解决方案--------------------
楼主好人 学习了
------解决方案--------------------
楼主好人
------解决方案--------------------
感谢楼主分享!
------解决方案--------------------
楼主好人 学习了
------解决方案--------------------
用apache带的ab命令行可以了
------解决方案--------------------
多线程需要好好学习啊。
------解决方案--------------------
不知道
------解决方案--------------------
不错啊
------解决方案--------------------
什么东东。。来看看
------解决方案--------------------