TA的每日心情 | 无聊 半小时前 |
---|
签到天数: 528 天 连续签到: 1 天 [LV.9]测试副司令
|
在移动应用和网络服务正式发布之前,除了进行必要的功能测试和安全测试,为了保证互联网产品的服务交付质量,往往还需要做压力/负载/性能测试。然而很多传统企业在试水互联网+的过程中,往往由于资源或产品迭代速度等原因忽视了这一块工作,导致新产品上线之后频繁出现卡顿等严重影响用户体验的问题。那么互联网产品为什么要进行压力/负载/性能测试,又有哪些工具帮我们实现呢,本文将为您细说端详。压力/负载/测试性能之异同在产品研发过程中,常常会混淆压力/负载/性能测试这三者之间的区别,这三种测试到底有什么不同呢? - 压力测试(压力测试),也称为强度测试,通过模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能,可靠性,稳定性等。压力测试需要确定 个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别。通俗地讲,压力测试是为了发现在什么条件下你的应用程序的性能会变得不可接受.-负载测试(负载测试)通常被定义为给被测系统加上它所能操作的最大任务数的过程,负载测试有时也会被称为“容量测试”或者“耐久性测试/持久性测试”,其目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。对于WEB应用来讲,负载则是并发用户或者HTTP连接的数量。负载测试通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力.
性能测试(PerformanceTesting)的目的不是去找系统错误,而是排除系统的性能瓶颈,并为回归测试建立一个基准而性能测试的操作,实际上就是一个非常小心受控的测量分析过程:“运行负载试验 - >测度性能 - >调试系统“在理想的情况下,被测应用在这个时候已经是足够稳定,所以这个过程得以顺利进行性能测试还有另一个目标就是建立一组被测系统的基准数据。应用在网络上的性能测试重点是利用成熟先进的自动化技术进行网络应用性能监控,网络应用性能分析和网络预测。虽然三种测试的目的截然不同,但其测试操作的环节都是基本一致的,因此一次测试过程中完全可以包含性能测试,负载测试,压力测试三个方面的内容,所使用的测试工具往往大同小异.
1、LoadRunner
LoadRunner的是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的 操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题.LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner的的能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期.LoadRunner的提供了3大主要功能模块:虚拟用户生成(用于录制性能测试脚本)中,LoadRunner的控制器(用于创建,运行和监控场景)时,LoadRunner分析(用于分析性能测试结果),既可以作为独立的工具完成各自的功能,又可以作为LoadRunner的一部分彼此衔接,与其他模块共同完成软件性能的整体测试。
2、Jmeter
JMeter作为一款广为流传的开源压测产品,如今JMeter可以用于测试静态和动态资源,例如静态文件,Java小服务程序,CGI脚本,Java对象,数据库,FTP服务器等等,还能对服务器,网络或对象模拟巨大的负载,通过不同压力类别测试它们的强度和分析整体性能。另外,JMeter的能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果为了最大限度的灵活性,JMeter的的允许使用正则表达式创建断言.JMeter的的特点包括对HTTP,FTP服务器,数据库进行压力/性能测试;完全的可移植性;完全摆线和轻量组件支持包;完全多线程;缓存和离线分析/回放测试结果;可链接的取样器;具有提供动态输入到测试的功能;支撑脚本编程的取样器等。在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录浏览器的H. TTP请求,也可以记录的Apache Web服务器等的日志文件来重现HTTP流量,并在测试运行时以此为依据设置重复次数和并发度(线程数)来进行压测。
3、nGrinder
nGrinder是基于磨床开源项目,由NHN公司的开发团队进行了重新设计.nGrinder是一款非常易用,有简洁友好的用户界面和控制器剂分布式结构的强大的压力测试工具.nGrinder测试基于蟒测试脚本(常规也可),用户按照一定规范编写测试脚本中,控制器会将脚本一集需要的资源分发到剂,用的Jython的执行。并且在执行的过程中收集运行情况,相应时间,测试目标服务器的运行情况等。并且保存这些数据生成测试报告,以供查看。这款框架的一大特点就是非常的简单易用,安装也很容易,可以说是开箱即用.nGrinderr直接部署成网服务,支持多用户使用,可扩展性好,可自定义插件!
4、Apache的AB
5、java本地测试小工具— stresstester
- <font face="Arial" size="3"> /*
- StressTestUtils.test(int concurrencyLevel, int totalRequests, StressTask stressTask, int warmUpTime);
- concurrencyLevel 总并发次数
- totalRequests 总请求次数, 单个线程请求次数= totalRequests/concurrencyLevel
- stressTask 并发主体
- warmUpTime 初始绿灯测试stressTask次数
- */
- StressTestUtils.testAndPrint(50, 200, new StressTask() {
- public Object doTask() throws Exception {
- callrpc.call();
- return null;
- }
- });</font>
复制代码
|
|