从软件系统开发的角度,也就是对软件设计和开发人员来讲,他们更关注性能相关的设计和实现的细节。这个关注面几乎涵盖软件设计和开发的全过程,主要会涉及以下多个方面:
·核心算法的设计与实现是否高效
·必要的时候设计上是否采用buffer机制以提高性能,降低I/O
·代码实现是否遵守开发语言的性能最佳实践
·关键代码是否在白盒级别进行性能测试
·必要的时候是否采用数据压缩传输
·是否考虑前端性能的优化
·是否存在潜在的内存泄露
·是否存在并发环境下的线程安全问题
·是否存在不合理的线程同步方式
·是否存在不合理的资源竞争
·数据库表设计是否高效
·是否引入必要的索引
·SQL语句的执行计划是否合理
·SQL语句除了功能是否考虑性能要求
·是否提供系统容量和性能的可扩展性
·是否为性能Profiler提供必要的接口支持
……………………
衡量并发用户数的不同视角
并发用户数是性能需求与测试中提到最多的也是最重要的指标之一,但是这个术语本身其实包含了两层不同的含义,一个是业务层面的,一个是服务器层面的。通常,我们所说的并发用户数多数指的是业务层面的含义,那么两者的根本区别在哪里,又有那些内在联系?为了更好的说明这个问题,先看一个实际的例子:
一个已经投入运行的ERP系统,该系统所应用企业共有5000名员工并都拥有账号,也就是说这个系统一共拥有5000个潜在用户。同时根据系统日志分析得知,该系统最大在线用户人数是2500人,那么根据通常的并发用户数的定义,这2500就是这个系统的最大并发用户数。显然,这2500个用户仅仅表明在最高峰的时候有2500个用户登陆了系统,但这个不能实际的反映此时此刻服务器所承受的压力,服务器所承受的压力取决于登陆的用户的行为。假设在某一时间点上,在这2500个"同时使用系统"的用户中,30%用户处于页面浏览状态(对服务器没有发起请求),20%用户在填写订单过程中,5%用户在递交订单,15%用户在做订单查询,而另外的30%登陆了系统但是什么操作也没有做,那么在这个时间点上,这2500个"并发用户"中真正对服务器产生压力的只有500个用户((5%+15%)*2500=500)。在这个例子中,我们把5000称为"潜在最大系统用户数",2500称为"最大业务并发用户数",而500称为那个时间点上的"服务器并发请求数"。而实际上在那个特定的时间点上服务器端收到的并发请求数是有延迟的,这个我们在这里就不继续细究了。
......
本文收录于《51测试天地》电子杂志第三十一期。
版权声明:本文出自51Testing软件测试网电子杂志——《51测试天地》第三十一期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。