在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……
以上内容来我跟一个牛人的聊天。。。。。。。。。。。
分享到:
相关推荐
Stress Testing 压力测试是指模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作。其主要目标是评估在超越最大负载的情况下系统将如何运行,识别程序的弱点和在极限负载下程序将如何运行。 压力测试的...
12. 压力测试:Stress Testing 压力测试是一种测试方法,旨在检查软件在高压力下的正确性和可靠性。压力测试需要测试人员了解软件的性能要求和规格。 13. 负载测试:Volume Testing 负载测试是一种测试方法,旨在...
在给定的“go-stress-testing-master.zip”压缩包中,我们可以预见到它包含了一个Go语言实现的压力测试工具或框架。Go(Golang)由于其并发特性、高效性能和简洁的语法,常被用于构建高性能服务,因此Go语言进行压力...
Stress Testing 压力测试 我们实作压力测试的时候,有几个面向是想要在压力测试中得到的: 目前的系统能力 目前的设备与系统设计下能乘载的最大能力 如果要提升能力,可能的瓶颈会是哪一块 如果要每个页面都去做调整...
BackTrack中文指南 Backtrack 中文指南会...9. Stress Testing 压力测试工具 10. Forensics 取证工具 11. Reporting Tools 报告工具 12. Services 服务 13. Miscellaneous 杂项 14. python编程基础 15. perl编程基础
**压力测试**(Stress Testing)则是性能测试的一个子集,它专注于评估系统在极端条件下的行为,比如大量用户同时访问、高频率的事务处理或超出常规的工作负载等场景。通过施加越来越大的压力直至系统崩溃或表现出不...
3. **压力测试**(Stress Testing):超过正常负载范围对系统进行测试,以检测其稳定性和容错性。 4. **疲劳测试**(Endurance Testing):长期持续地施加高负载,以评估系统在长时间运行后的性能变化。 5. **峰值...
例如,`Microsoft.VisualStudio.TestTools.UnitTesting`库提供了单元测试框架,可以扩展用于压力测试。另一个常用的工具是`Apache JMeter`,它可以跨平台地对Web应用进行压力和性能测试,虽然不是.NET原生的,但通过...
file-system-stress-testing 是一款能够进行 POSIX 文件系统压力测试的工具。 分享 window._bd_share_config = { "common": { "bdSnsKey": {},...
描述中连续三次提到“was 微软的 网站 压力 测试 工具”,这进一步强调了该工具的核心功能——针对网站进行压力测试,以确保它们在大规模用户访问时能够正常运行。在IT行业中,网站压力测试是确保服务质量和用户体验...
- **压力测试在风险管理中的角色**(The Role of Stress Testing in Risk Management):阐述了压力测试在风险管理框架中的作用。 - **总结与启示**(Summary and Implications):总结了研究发现,并提出了对未来...
其次,压力测试(Stress Testing)用于评估系统在高负载或长时间运行条件下的表现和稳定性。在C++环境中,我们可以使用像是Apache JMeter、LoadRunner等工具,但它们通常更适用于Web服务和应用。对于C++库或本地应用...
同时,可能还会结合负载测试(Load Testing)和耐久测试(Stress Testing),以了解系统在长时间高负载下的行为。 3. **测试工具**:选择合适的压力测试工具至关重要,如JMeter、LoadRunner、 Gatling等,这些工具...
* 测试方法:确定软件性能测试的方法,包括负载测试、压力测试、stress testing等。 * 测试进度:规定软件性能测试的进度,包括测试的开始时间、结束时间和测试的里程碑。 * 资源分配:规定软件性能测试所需的资源,...
Apache JMeter是一款强大的开源压力测试工具,主要由Apache软件基金会开发,完全基于Java语言,因此具备跨平台特性。它的设计目标是模拟大量并发用户访问,对服务器、网络或对象进行性能评估,确保系统在高负载下...
WAS工具提供了这样的能力,通过模拟真实用户的行为,它可以执行各种负载测试,包括负载测试(Load Testing)、压力测试(Stress Testing)和耐久性测试(Endurance Testing)。 **负载测试**:这是评估系统在正常或...
性能测试基础知识 1.3 性能测试策略: 性能测试(Performance Testing) 负载测试(Load Testing) 压力测试(Stress Testing) 并发测试(Concurrency Testing) 可靠性测试(Reliability Testing) ……
* 压力测试(Stress Testing):测试软件的压力和负载。 * 负载测试(Volume Testing):测试软件的负载和容量。 * 易用性测试(Usability Testing):测试软件的易用性和人机交互。 * 安装测试(Installation ...