量体裁衣性能测试在企业中的应用

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:
一个估计有百万用户的门户网站代码编写完成了。进行功能测试,运行效果良好,项目组为此欢呼雀跃。在产品的演示会上,风险投资商提出了一个问题-“咱们这个网站能支持多少用户同时在线啊?”。整个会场寂静,一会儿,项目经理说:“我们还没有进行这方面的测试。”会场哗然……

性能测试介绍

只进行功能测试,而不进行性能测试,对一个拥有百万用户的门户网站来说,无疑是一个天大的笑话。一个好的网站(软件)应该是性能稳定的,经的起考验的。那么什么是性能测试呢?
u       性能测试的概念及种类
性能测试是为描述测试对象与性能相关的特征并对其进行评价,而实施和执行的一类测试。它主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。通常大家把性能测试、负载测试、压力测试统称为性能测试。
负载测试-通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量的测试。
压力测试-通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并来获得系统能提供的最大服务级别的测试。
u        性能测试的工具介绍
 
n          开源工具
开源工具以其源代码开放、针对性强、小巧灵活多变、免费的特性吸引着越来越多的企业和个人投入到开源项目研发当中。IBM投资1000万的Eclipse无疑是最为吸引大家眼球的开源项目。伴随着开源项目的蓬勃发展,很多非常优秀的开源性能测试工具也纷纷出炉,如:JmeterOpenSTADBMonsterTpTest等。
工具名称
功能简介
Jmeter
Jmeter 可以完成针对静态资源和动态资源(Servlets, Perl脚本, Java对象数据查询, FTP服务等)的性能测试、可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能、提供图形化的性能分析。
OpenSTA
OpenSTA 可以模拟大量的虚拟用户、结果分析包括虚拟用户响应时间、web服务器的资源使用情况、数据库服务器的使用情况,可以精确的度量负载测试的结果。
DbMonster
DBMonster 是一个生成随机数据,用来测试SQL数据库的压力测试工具。
TpTest
TPTest 的提供测试Internet连接速度的简单方法。
……
……
13-1:开源性能测试工具介绍
 
n          商业工具
商业工具以其界面美观、功能强大、操作方便、插件种类多、统计分析项丰富、直观,同时提供产品的定期或者不定期的升级以及技术支持服务等优势也广泛的应用于各个企业。目前比较流行的商业性能测试工具也非常多,如Mercury LoadRunnerIBM Rational Performance Tester(RPT)等工具。
工具名称
功能简介
Mercury LoadRunner
Mercury LoadRunner  是一种预测系统行为和性能的工业级标准性能测试负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。支持Web(HTTP/HTML)Windows SocketsFile Transfer Protocol(FTP) Media Player(MMS) ODBCMS SQL Server等协议。
IBM Rational Performance Tester
适用于团队验证 Web 应用程序的可伸缩性的负载和性能测试工具,引入了新的技术进行负载测试的创建、修改、执行和结果分析。
……
……
13-2:商业性能测试工具介绍
n          免费工具
免费工具以其界面美观、免费使用、统计分析项较多、操作较方便等优点也吸引了很多
的企业应用这类软件,比较出名的免费性能测试工具有Microsoft Application Center TestMicrosoft Web Application Stress Tool
工具名称
功能简介
Microsoft Application Center Test
它可以对 Web 服务器进行强度测试,分析Web 应用程序(包括 ASPX 页及其使用的组件)的性能和可伸缩性问题。通过打开多个服务器连接并迅速发送 HTTP 请求,Application Center Test 可以模拟大量用户。
Microsoft Web Application Stress Tool
由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。可以数种不同的方式建立测试指令:包含以手动、录制浏览器操作步骤、或直接录入IIS的记录文件、录入网站的内容及录入其它测试程序的指令等方式。
……
……
13-3:免费性能测试工具介绍

性能测试在软件企业的应用

随着软件行业的不断发展,越来越多的企业更加重视产品的质量。性能测试已经成为软件质量保障的一个重要因素。一个软件性能的优劣很有可能直接决定一个软件的成败,甚至一个企业的兴衰。每个软件企业都有各自不同的应用领域,有着不同的实际情况,这样必然要求每个企业量体裁衣,选择适合自己的应用策略。
大型企业、大型项目的应用策略
大型企业应用的软件系统,业务比较复杂、用户数很多、存在并发情况、业务的响应时间、操作的实时性、稳定性、安全性、可恢复性等都要求很高。
象银行、电信、铁路等大型企业一般通过CMMIISO等认证,企业拥有先进的管理模式、人员储备丰富、实力雄厚,在涉足的领域基本处于不可撼动的地位。这些行业对性能的要求很高。在此仅举一个铁路售票系统的例子:每逢春节、五一、十一,相信坐火车回家探亲或度假的朋友一定身有体会。在火车站、车票零售点,人海茫茫,一望无际,此时火车售票系统正在经受着巨大的性能考验。全市几百个售票网点同时紧张忙碌工作。售票过程一般分为两步,首先根据购票者提供的要出行的日期、车次和目的地进行相关查询,然后在有票的情况下,收取现金,打印出相应的车票交付给购票者。一个看起来简单的两个步骤,但当成百上千的终端同时执行时,情况就复杂了。如此众多的交易同时发生,对应用程序本身、操作系统、中心数据库服务器、中间件服务器、网络设备的承受力都是一个严峻的考验。由这些行业的性质决定了决策者不可能在发生问题后才考虑系统的承受力预见并发承受力是这些行业应该考虑的一个很重要的问题。
鉴于大型企业资金雄厚、管理规范、人员分工明确,笔者认为主要可以有两种方式解决大型企业的性能测试问题。
解决方案一:构建自己的性能测试团队
组建由性能测试专家、数据库专家、网络专家和系统软件管理员以及资深的程序员(有的公司还有业务专家)构成的性能测试团队。性能测试团队是一个独立的部门,在进行性能测试时,需要制定详细的性能测试计划、测试设计、测试用例,而后依据测试用例执行性能测试、分析性能测试结果,提出性能调整建议、书写性能测试总结报告。在工具的选用方面,建议选择商业性能测试工具,强大的功能、丰富的统计分析项、而且象Mercury LoadRunnerIBM Rational Performance Tester等工具还提供了专门的插件可以集成到IDE中,做粒度很细的工作,如看某个算法的执行时间、某个存储过程的执行时间、甚至某个语句的执行时间等。这些优势无疑为专家们定位系统问题提供了很好的依据。
解决方案二:专业性能测试机构为系统测试
   如果企业没有自己的性能测试部门,请专业的性能测试机构为系统做测试也不失为一个好办法。专业软件测试机构具有成熟的测试流程和测试方法,由有丰富的工作经验的性能测试工程师进行测试并提交专业的性能分析报告,可极大地提高测试有效性,同时企业不需为维护性能测试而保留的由各方面专家组成的部门人员的高额费用(这种情况在很少进行性能测试的企业尤为重要)。还可保证测试的独立性、公正性,避免了部门之间产生矛盾或磨擦。
中型企业、中型项目的应用策略
中型应用的软件系统,业务比较复杂、用户数较多、存在并发情况,对业务的响应时间、稳定性等都有一定的要求。
中型企业一般通过ISO认证,企业拥有比较先进的管理模式、有一定的人员储备、较强实力,在涉足的领域有比较有名气,对性能的要求比较高。在此仅举一个汽车配件查询系统的例子:该系统提供近千家的汽车配件信息,通常有50120人在线。用户操作的最多的就是查询厂家及其配件信息的操作。这是一个典型的中型项目。用户并发数量不是很大,涉及到频繁的查询操作,对系统的响应时间和系统的稳定性要求比较高。
鉴于中型企业有较强实力、管理较规范、有一定的人员储备,笔者认为主要可以有三种方式解决中型企业的性能测试问题。
解决方案一:临时组建性能测试团队
在测试部门和开发部门临时组建由资深的程序员、资深的测试员、数据库专家、网络专家和系统软件管理员构成的性能测试团队。性能测试团队不是一个独立的部门,分别由隶属于开发、测试等部门的专家构成。在进行性能测试时,需要制定详细的性能测试计划、测试用例,而后依据测试用例执行性能测试、分析性能测试结果,提出性能调整建议、书写性能测试总结报告。在工具的选用方面,建议选择商业性能测试工具,购买单协议的Mercury LoadRunnerIBM Rational Performance Tester等工具。也可以选择开源的性能测试工具,如:Jmeter  OpenSTA等。还可以选择免费的性能测试工具,如:Microsoft Web Application Stress Tool  Microsoft Application Center Test 。但是无论是开源工具还是免费的测试工具,因为这些工具为非商业工具,它们使用的熟悉过程时间长、统计分析项不是十分丰富以及产品的后期升级和技术支持没有保证都应该成为企业考虑的内容。
解决方案二:自行编写测试程序
对于特定的模块或者插件也可以进行针对性进行代码编写,进行相关性能测试。在此我仅举一个例子,记得在开发一个汽车定损行业管理软件时,系统需要以FTP方式传送汽车损坏情况照片,决定采用第三方提供的FTP服务器组件。需要对该FTP服务组件进行系统稳定性和并发性测试。经过项目组协商决定采用自行编写多线程程序模拟多个客户端进行不间断的持续FTP上传和下载操作。自行编写测试程序也不失为另一种性能测试的方法,但是在您进行程序编写的时候一定要注意您所应用的组件是否是线程安全的,如果线程不安全将会出现问题。
解决方案三:专业性能测试机构为系统测试
   如果在时间紧、任务重以及在企业条件允许的情况下,请专业的性能测试机构为系统做测试也不失为一个办法,其优势不再赘述。
小型企业、小型项目的应用策略
小型应用的软件系统,业务比较简单、用户数也不是很多、存在并发情况,对业务的响应时间、稳定性等都有一定的要求。
小型企业一般管理不是很规范、人员储备不太充足、有一定的经济实力,在涉足的领域有些名气,对性能有一定的要求。在此仅举一个进销存管理系统的例子:该系统为一个大型商场对日常进销存业务的管理,通常有1030人应用此系统。用户操作的最多的就是查询与销售商品的操作。这是一个典型的中、小型项目。用户并发数量不大,涉及到频繁的查询和出库操作,对系统的响应时间和系统的稳定性有一定要求。
鉴于小型企业有一定的经济实力、管理不是很规范、人员储备也不是很充足,笔者认为主要可以有两种方式解决小型企业的性能测试问题。
解决方案一:临时组建性能测试团队
临时组建由资深的程序员、数据库专家、网络专家和系统软件管理员构成的性能测试团队,有的公司可能存在上述提及人员不完整的情况,那么可以针对项目的重要程度,适当增加相应的专家人员,必要时应该外聘一些专职或者兼职的专家。性能测试团队不是一个独立的部门,分别由隶属于开发等部门的专家构成。在进行性能测试时,需要制定详细的性能测试计划、测试用例,而后依据测试用例执行性能测试、分析性能测试结果,提出性能调整建议、书写性能测试总结报告。在工具的选用方面,可以考虑选择商业性能测试工具,购买单协议的Mercury LoadRunnerIBM Rational Performance Tester等工具、或者购买具有一个月或者几个月许可协议的商业性能测试工具。也可以选择适合项目的开源、免费性能测试工具。
解决方案二:专业性能测试机构为系统测试
   如果在时间紧、任务重或者软件性能测试要求较高以及在企业条件允许的情况下,请专业的性能测试机构为系统做测试也不失为一个办法,其优势不再赘述。

总结

       以上策略是一个普遍的应用于大、中、小企业以及大、中、小项目进行性能测试的应用策略,并不见得大公司就不做小项目,而小公司就不可以承揽大型项目,每个企业应该根据企业的实际情况和项目的规模,选择行之有效的性能测试团队组建形式和具体的解决方案来成功完成性能测试工作。




本文转自 fish_yy 51CTO博客,原文链接:http://blog.51cto.com/tester2test/156343,如需转载请自行联系原作者

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
1月前
|
敏捷开发 测试技术 持续交付
探索自动化测试在敏捷开发中的应用与挑战
本文深入探讨了自动化测试在现代软件开发流程,特别是敏捷开发环境中的重要作用和面临的挑战。通过分析自动化测试的基本原理、实施策略以及在实际项目中的应用案例,揭示了其在提高软件质量和加速产品交付方面的巨大潜力。同时,文章也指出了自动化测试实施过程中可能遇到的技术难题、成本考量及团队协作问题,并提出了相应的解决策略,为软件开发团队提供了有价值的参考和指导。
|
16天前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
1月前
|
编解码 测试技术 开发工具
测试 iPhone 应用在不同屏幕尺寸和分辨率下的响应式效果
【10月更文挑战第23天】测试 iPhone 应用在不同屏幕尺寸和分辨率下的响应式效果是确保应用质量和用户体验的重要环节。通过手动测试、自动化测试、视觉效果评估、性能测试、用户体验测试等多种方法的综合运用,能够全面地发现应用在响应式效果方面存在的问题,并及时进行解决和优化。同时,持续的测试和优化也是不断提升应用质量和用户满意度的关键。
|
28天前
|
jenkins 测试技术 持续交付
探索自动化测试在持续集成中的应用与挑战
本文深入探讨了自动化测试在现代软件开发流程,特别是持续集成(CI)环境中的关键作用。通过分析自动化测试的优势、实施策略以及面临的主要挑战,旨在为开发团队提供实用的指导和建议。文章不仅概述了自动化测试的基本原理和最佳实践,还详细讨论了如何克服实施过程中遇到的技术难题和管理障碍,以实现更高效、更可靠的软件交付。
|
21天前
|
机器学习/深度学习 人工智能 测试技术
探索自动化测试框架在软件开发中的应用与挑战##
本文将深入探讨自动化测试框架在现代软件开发过程中的应用,分析其优势与面临的挑战。通过具体案例分析,揭示如何有效整合自动化测试以提升软件质量和开发效率。 ##
|
18天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
47 1
|
28天前
|
敏捷开发 监控 jenkins
探索自动化测试框架在敏捷开发中的应用与优化##
本文深入探讨了自动化测试框架在现代敏捷软件开发流程中的关键作用,分析了其面临的挑战及优化策略。通过对比传统测试方法,阐述了自动化测试如何加速软件迭代周期,提升产品质量,并针对实施过程中的常见问题提出了解决方案。旨在为读者提供一套高效、可扩展的自动化测试实践指南。 ##
41 9
|
26天前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
28 4
|
24天前
|
监控 JavaScript 前端开发
如何在实际应用中测试和比较React和Vue的性能?
总之,通过多种方法的综合运用,可以相对客观地比较 React 和 Vue 在实际应用中的性能表现,为项目的选择和优化提供有力的依据。
31 1
|
29天前
|
自然语言处理 安全 测试技术
基于大模型的应用的测试的一些注意事项
大模型应用测试需注意三大冲突:时间敏感性冲突,即模型数据可能随时间变得过时;数据真实性冲突,指训练数据中可能存在虚假信息,影响模型准确性;数据一致性冲突,表现为模型对语义相同但句法不同的输入反应不一。测试时应针对这些问题设计用例,确保模型性能。
58 4