stress testing(压力测试)

压力测试用于模拟多用户并发情景,检测系统在高负载下的稳定性,防止DoS攻击导致内存耗尽。Grinder是一款用于此目的的工具。采用TDD(测试驱动开发)模式,每天自动进行编译、单元测试和压力测试,能及时发现潜在的内存泄漏问题。为确保应用健壮,开发者应在业务需求基础上编写测试用例,随着功能增加同步更新测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在web application的开发上,memory management相当重要,而session management对memory management的影响最为明显。而stress testing(压力测试)就是用在这方面的,用于模拟多用户同时在线的情景,甚至可以模拟黑客的DoS Attack 。而grinder就提供了这样的功能。(http://grinder.sourceforge.net

举个例子来说吧,可能一个HttpSession挂了几个总共2KB大小的session object,而timeout值是20分钟(这通常是最理想的值)……OK,现在有一个黑客对我们的网站进行DoS ( Denial of Service ) Attack (恶意海量攻击),在5分钟内,他可以generate上百万甚至上千万个Http Attack,如果我们处理得不好,那么未timeout的HttpSession也就是上百万、上千万,再乘以2KB,那会是多少?这样的话,web 服务器的内存马上玩完。

所以,这就是为什么越来越多人提倡用TDD(测试先行)模式去开发软件的理由了:每天系统自动从source control那里提取最新的code,然后编译、自动做unit testing和stress testing……如果一旦有一天早上发现昨晚的stress testing结果突然差了许多(例如昨天还可以同时应付500个concurrent users,但今天就变成了200个),那么,就是说,昨天有人写的程序出了问题,有些code导致了memory leak.但是,这种观念,很多人都不以为然……当然,听上去是很好,但实践起来,需要大家都有这种意识和自觉去做。

那么,应该怎样避免出现这种情况呢?

首先,根据business requirements写test cases,然后再写code;每当程序要加一个功能,首先就为这个功能写test cases……

以上内容来我跟一个牛人的聊天。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值