性能测试的重要意义
性能测试的重要意义
随着社会的发展,科技的进步,信息技术的飞速发展,计算机的普及,软件产品已经应用到社会的各个行业领域,加上网络的发展,信息的共享性等,人们对计算机及网络的依赖性越来越大。软件产品的使用者对高质量、高效率的工作方式的要求越来越高,因此对于工作和生活中息息相关的IT系统服务,他们也要求提供更快、更高效的服务品质。
网络的发展,让人们对网络的依赖越来越大,对外界新事物的好奇心等也越来越强烈,成千上万的用户在庞大的网络系统中游转。网络时代的到来,也给提供服务的系统带来严重的系统负荷,这就是系统网络发展中最明显的特征:"高并发"、"数据集中"。
数据越来越集中于后台系统服务器中,众多系统同时为成千上万的网络用户提供服务,如银行、电信、社交网站等公司的软件系统随处可见,影响着我们生活的方方面面。随着各个企业的业务发展、用户访问量的增加,其服务系统承载的负荷也会随着增加,系统性能的好坏将严重影响企业的利益,因此对于IT服务系统的性能测试与优化也越来越受业界的重视。
目前典型的企业信息服务系统的架构大致如图1.1所示。
图1.1 典型的企业信息服务系统的架构
一般是由客户端、网络、防火墙、负载均衡服务器(硬件如F5、软件Apache等)、Web服务器、应用服务器(中间件WebLogic、Tomcat等)、数据库服务器等各个环节组成。
在交付给客户上线使用之前,业务系统的每个环节都要进行性能测试和优化,才能保证上线后的质量。每个环节都要有专业人士协助性能的诊断和优化,这些专业人士包括:性能测试工程师、系统管理员、网络工程师、DBA、程序设计人员等。
IT服务系统的性能测试与优化是一项复杂、富有挑战性的工作,对于一个专业的测试人员而言,性能优化技术的学习和研究有利于性能测试工作的顺利、深入开展。
功能测试和性能测试
功能测试主要根据产品业务需求、产品行业特征、模拟用户操作方式来测试一个产品的特性以确定它们是否满足用户需求。
性能测试则是通过某种特定的方式对被测试系统按照一定的测试策略进行施压,获取该系统的响应时间、运行效率、资源利用情况等各项性能指标,来评价系统是否满足用户性能需求的过程。
通俗地说,功能测试用于确保软件系统做了正确的事情,性能测试则用于确保软件系统快速地完成了任务。
项目组不同角色眼中的软件性能
1、系统管理员眼中的软件性能
系统管理员作为软件系统的运维人员,主要关注服务器的资源使用状况、系统的扩展性、系统支持的最大用户量、系统稳定性,以及系统可能出现的瓶颈、出现异常的情况下如何处理等。
2、研发人员眼中的软件性能
作为研发人员,他们会更关注软件系统架构设计的合理性、数据库的设计是否存在问题、代码是否存在性能方面问题、内存使用方式是否正确、线程同步方式是否合理、是否存在不合理的资源竞争等。
3、测试人员眼中的软件性能
测试人员是软件性能质量的把关者,在软件性能生命周期中占据至关重要的位置,软件性能测试工程师要对性能问题进行监控、分析及模拟实际使用过程中所出现的性能问题。还要跟各个角色做好沟通工作,对测试出的各种性能问题,要提供充分有力的数据,为后续的分析和定位性能问题、性能优化工作做好充分的准备。
1秒的性能对于顾客的意义
根据2008年Aberdeen Group的研究报告,对于Web网站,1秒的页面加载延迟相当于少了11%的PV(page view),相当于降低了16%的顾客满意度。如果从金钱的角度计算,就意味着:如果一个网站每天挣10万元,那么一年下来,由于页面加载速度比竞争对手慢1秒,可能导致总共损失25万元的销售额。
Compuware公司分析了超过150个网站和150万个浏览页面,发现页面响应时间从2秒增长到10秒,会导致38%的页面浏览放弃率。
由此可见,网站性能与业务目标有着直接的关系,对网站进行负载测试非常重要。
====================================分割线================================
最新内容请见作者的GitHub页:http://qaseven.github.io/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
测试驱动开发的感悟
1、微软的自动化测试是否适合于淘宝?微软的自动化测试有三种形式。 1)根据设计文档,进行代码级别的测试。开发人员根据测试脚本进行开发。 现状,很难进行这种测试。 2)针对于界面的自动化测试。 淘宝属于web服务提供商,而且界面变更频繁,且缺乏这方面的专业人才。 3)测试主要业务逻辑。 目前我们的自动化测试,主要集中于业务逻辑方面。业务逻辑的正确性对于淘宝来说是必须保证的。 它是保证系统稳定的基础。淘宝的接口有很多,如果逐个进行自动化回归,以现在的人力是几乎不可能完成的。 若只是大体上进行测试而没有达到一定的测试粒度,那么意义并不大。所以我们做自动化测试的基础就是做好业务逻辑的测试,做细做强。 2、淘宝的自动化测试要细化到何种程度,细化过程中容易遇到的问题?陆老师在课堂上举过一个例子。一个方法,其返回值长达两屏。老师问:测么? 有人说测,有人说不测。 而最终的答案是:全要测,交给自动化测试。 而我们的测试怎样能细化到这种程度呢? 首先,测试所有的返回值。 其次,测试执行方法后所有数据库表中的相关数据。 但是,实现这两点有可能会遇到很多问题。 其一,在编码结束前,没有一个确定的文档明确的准...
- 下一篇
软件测试环境要不要和软件开发环境隔离?
开发环境要不要和测试环境隔离?要就是说,是不是要各用一套数据库等基础设施? 能隔离当然最好,开发人员和测试人员不会互相干扰。但隔离是有代价的,它意味着你要多引一个数据库,如果你的系统是分布式的,你还要多维护一套MQ、RPC中间件等。 依我看,需不需要隔离要看系统是否满足下面的三个条件: 1、两个环境的系统总是要接触到同一份数据 2、数据被一个系统接触后,业务状态会改变;导致这份数据对另一个系统不再可用 3、很难禁止两个系统在同一时刻接触到同一份数据 解释: 条件1.如果两个环境共享数据库,但开发环境只处理北方数据,测试环境只处理南方的,那不用隔离 条件2.即使两个环境都会处理北方数据,但如果这种处理是只读的,也就是开发环境用了,测试环境可以再用,那也无所谓 条件3.即使数据被一个环境处理后,另一个不能用;但如果对数据的接触是人为触发的,也就是说开发环境被人触发数据改动时,不会干扰测试环境的测试,那也无所谓。 具体的场景: 1、纯读的网站不必隔离,它不满足条件2 2、有写、但所有操作都由用户触发的网站也不必隔离,因为它不满足条件3 3、以全局数据为目标的自启应用需要隔离,比如Quartz...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度