谈到测试很多开发人员以为是测试人员需要考虑的事情,其实不然针对一个良好的应用测试是需要研发人员,测试人员,项目管理人员,甚至公司高层需要关心的事情。因为这个涉及到交付的软件产品的质量问题。今天我们来聊聊软件开发中的性能测试和压力测试。
什么是性能测试
是针对目标应用或者目标系统的速度,吞吐量以及设备或者硬件的有效性的测试。说白了就是看应用或者系统是否达到了设计之初设定的那个预期。如果系统设计100分是满分的话,那么性能测试就是看这个应用或者系统是否达到了最基本的可用预期,也就是及格的分数60分。
如何进行性能测试
那么执行性能测试需要经历哪几个阶段呢?
第一,建立性能测试的目标,例如我们希望该系统的在规定时间能够支持多少的并发数(5000/秒)。这个目标定义的依据又是什么呢,我们通常是通过系统运行的历史数据归纳总结获得的,如果是新建的系统,可以参考同行业其他系统在一定业务量情况下的标准。
第二,建立适合的测试环境,这里我建议最理想的测试环境就是和生产环境一模一样的,不过这个一般是很难达到的,这需要动用大量的服务器资源。我们可以根据生产环境服务器资源的1/2,1/4,1/8 的配置来设置这个测试环境,测试的结果再按照2,4,8的倍数放大,当然这里需要考虑设备增多以后的通讯损耗问题,所以最后的结果需要打一个折扣。不过这样的预估和真实的生产环境已经向差不多了。
第三,定义测试,这里我们需要进行以下几种测试。
以上这些测试,都需要根据具体的测试场景,写出测试用例以及需要的数据。这里的数据尽量使用生产环境的数据。
第四,执行测试,这里有很多执行的方法。我们介绍一种常用的性价比较高的方法。针对目前的持续集成持续开发的模式,在每天发布之后可以进行一些负责测试,功能性的测试,有人工或者脚本完成。在发布的当天晚上,利用夜间到第二天的较长时间进行耐久性测试,由脚本完成。
第五,分析数据,在执行测试之后我们会收集到一些数据,这些显然是我们关心的,例如:响应时间,数据库单位时间处理查询请求的个数。这里我们可以通过t-校验,因子分析,主效应图,方差分析等方法对这些信息进行分析,看是否达到了我们预期的设想。
第七,重复测试和分析,这里比较清楚,发现问题解决问题然后再次验证问题,使整个测试过程形成一个闭环。
下期接着聊压力测试。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!