首页 新闻 会员 周边 捐助

开发一个http压力测试工具

0
[已解决问题] 解决于 2018-03-22 10:10

要求:

每秒发10000个请求

问题:

http是短连接,每秒10000个请求,本地端口估计很快就用完了,哪位大神能给个思路?

什麼江湖的主页 什麼江湖 | 初学一级 | 园豆:116
提问于:2017-09-20 16:08
< >
分享
最佳答案
0

不会的。别说会自动(手动)关掉,就是不关掉都够你用很久。

原则上你单机测试并发最好不用http模块来测,会消耗大量cpu时间去做http解析,即使你机器并发很强,那么造成并发下的串行运算也会极大的增强,因此你可以直接上tcp去测比较好,顺便可以测试http模块无法做到的一些测试。

奖励园豆:5
花飘水流兮 | 专家六级 |园豆:13615 | 2017-09-20 21:16

大神,能否详细说说。

1.您意思是直接走tcp去发http请求?

2.通常http是短连接,能否将http转为长连接,连上之后不停的发?

3.您说的上tcp,是不是有两层意思:1)长连接,2)节省http解析时间?

什麼江湖 | 园豆:116 (初学一级) | 2017-09-21 15:07

@什麼江湖: http是应用层,由tcp实现,就是你1的意思。

长连接还是短连接由双方规定(通常http服务端可设置,它本身也有约定,包括超时等等...);

—— 你的3是错误的认知。

你想短链接就不停的socket过去,然后模拟http请求,然后收到后就关掉行了(测试当然你可以日志下来),这样你可以不必还要走http里面的很多对象解析,比如 Method,StatusCode,Cookie....

花飘水流兮 | 园豆:13615 (专家六级) | 2017-09-21 15:18

@花飘水流兮: 我是这样理解的:如果是短连接,那么如果我要求客户端发10000请求每秒,那势必每秒要建立一万个连接,我想这个指标肯定是上不去的。

什麼江湖 | 园豆:116 (初学一级) | 2017-09-21 15:56

@什麼江湖: 1s内上得上得去,取决于你的机器。不可能有绝对并发,操作系统的并发只是相对,你想想cpu的硬件级极限并发才多大,况且进程是对线程数有限制的,win大概是2000多,所以你可以想像,怎么并发的,实际(相对)除了你的cpu核(乘以硬件线程)这个是并发,实际都是站在硬件层看,都不是并发。所以只能说,看你的客户端的速度和服务端的速度。你可以参照jmeter,逐步往上加,看看服务器会在什么“并发数”下慢下来,当然如果服务器太强,单机测试肯定就无用了,比如10000和100000对于服务器来说都是一回事,你10000以内的测试就没用。

花飘水流兮 | 园豆:13615 (专家六级) | 2017-09-21 16:32

@花飘水流兮: 谢谢你的回复,对我很有用

什麼江湖 | 园豆:116 (初学一级) | 2017-09-21 17:48
其他回答(1)
0

loadrunner、jmeter都可以做到。

压测机分多台,端口就不会很快用完。

ycyzharry | 园豆:25683 (高人七级) | 2017-09-20 16:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册