B/S架构应用软件性能测试问题研究

Tallulah ·
更新时间:2024-09-21
· 727 次阅读

   软件测试包括功能测试和非功能测试,性能测试作为非功能测试的一种,其重要性往往被低估。但是,对于企业级应用软件,忽略性能测试的重要性将带来严重的后果,因为企业级应用软件用户数量多,一旦性能不能满足要求,轻则造成用户长时间等待服务器响应,重则导致服务器资源耗尽,服务不可用。因此,在企业级应用软件推广之前,必须经过严格的性能测试。当前企业级应用软件多采用B/S架构,即浏览器和服务器结构。   它是随着Internet技术的兴起,由C/S结构变化或者改进而来的结构。在这种结构下,用户工作界面是通过Web浏览器来展现,较少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,这样大大减轻了客户端计算机载荷,降低了系统维护与升级的成本。本文以一个这样的三层B/S架构的应用系统为性能测试对象,通过对测试结果的分析,确定导致该结果的原因,并提供解决方法。1 性能测试场景1.1 测试内容  该应用系统主要功能是根据用户输入数据,判断业务类型,并计算该业务的输出,类似于某些网站上的“贷款计算器”,只是业务处理逻辑相对复杂。因此,测试内容主要包括2个功能:用户登录和数据计算。1.2 测试目的  测试目的有2点:一是测试被测系统所能承载的大并发用户数量,在超过200用户并发情况下,系统是否可以稳定运行;二是测试被测系统在不同数量并发用户数的情况下,系统主要功能(用户登录和数据计算)的平均响应时间是否在15 s以内。1.3 测试方案  根据测试目的,相应的设计测试方案如下:①压力测试:分别模拟150、200、250用户同时执行用户登录和数据计算操作,检测系统是否可以正常运转并记录操作的平均响应时间。②负载测试:分别模拟150、200、250用户逐步加压,并执行用户登录和数据计算操作,检测系统是否可以正常运转并记录操作的平均响应时间。1.4 测试工具测试工具采用HP公司的LoadRunner,本文的测试报告均由该工具生成2 性能测试问题分析2.1 服务器网络性能问题  首次测试结果表明,压力测试中,不同用户并发数情况下用户登录和数据计算均能正常进行;负载测试中,200用户情况下用户登录和数据计算操作平均响应时间分别为58s和46s。分析性能测试报告中的Web Page Dianostics。“数据计算”操作响应时间的主要因素,因此解决问题的重点在于查找服务器网络性能缺陷。通过分析测试环境,发现应用服务器是虚拟机。通常一个高配置的实体机的资源会分配给其上安装的多个虚拟机,这种情况下,每个虚拟机的CPU和内存基本能按要求分配,但是网络资源却不一定能按要求分配,在多个虚拟机争用实体机网络硬件资源时,应用服务器的网络性能是比较差的。  解决这个问题有2种方法:一种是优化应用服务器网络性能,另一种是将应用服务器更换为实体机。考虑到测试进度,我们更换了相同CPU和内存配置的实体机进行测试,测试结果表明,200用户情况下用户登录和数据计算操作平均响应时间分别为9.6 s和10.3 s。可见,虚拟机较差的网络性能对性能测试影响较大,在性能测试中要注意优化服务器网络性能。2.2 数据库调优能力问题  上一节中,解决应用服务器网络问题后,用户登录和数据计算操作平均响应时间大幅降低,但分析服务器资源使用情况发现,性能测试执行25 min后,数据库服务器CPU使用率超过80%,在30 min后甚至升高到90%以上,这显然是不利于系统稳定运行的,需要解决数据库服务器资源消耗过大问题。跟踪数据库进程情况,发 随着时间的增长,数据库内的进程阻塞越来越严重,由于进程阻塞,导致页面响应时间越来越长,响应时间曲线呈线性上升。系统内进程只是阻塞,并没有出现死锁情况。   由于没有出现死锁,可以判断造成数据库内进程阻塞的原因,不是软件设计问题,而应当是数据库性能优化能力问题,也是说,数据库在高负载情况下自身性能调优能力不足。为了解决这个问题,将数据库软件从SQL Server2000升级到SQL Server2005,测试结果表明,200用户情况下用户登录和数据计算操作平均响应时间分别为7.4 s和8.1 s。可见,SQL Server2005的负载处理能力远远强于SQL Server2000。2.3 应用服务器参数设置问题  从上一节的测试结果可以看出,“数据计算”操作的平均响应时间(8.1s)比“用户登录”的响应时间(7.4s)长,但是从程序逻辑看,应该是“用户登录”的响应时间较长,因为“用户登录”要加载页面元素,还要加载默认计算参数。经过分析,发现这个问题是应用服务器和数据库服务器之间负载不够均衡所致。具体而言,是应用服务器的连接缓冲池中大数据库连接数值设置过小,这样应用服务器中与数据库进行交互的资源较少,导致系统数据处理能力下降。   将大数据库连接池数增大后,“数据计算”操作的平均响应时间明显降低。测试结果表明,200用户情况下用户登录和数据计算操作平均响应时间分别为7.5 s和4.9 s。另外,应用服务器的接受预备连接数、JDBC语句缓存大小、非活动连接超时时间也是Weblogic性能优化的重要参数。2.4 应用软件设计问题  应用软件自身设计问题无疑是影响性能测试结果的决定性因素。在性能优化的过程中,可以采用以下方法优化代码。①修改程序结构,去掉不必要的框架文件。②将用户登录的默认数据加载到内存,加快访问速度。③修改代码,减少数据库访问次数,优化查询逻辑。④在数据库上建立索引,加快数据访问速度。⑤从需求方面,将复杂操作分解执行,提高系统可用性。2.5 其他问题  除了上述影响B/S架构应用软件性能的问题外,以下因素对软件性能影响也比较大。2.5.1 服务器硬件性能  服务器的CPU、内存、存储都可能成为性能瓶颈。实践经验表明,从软件角度充分优化系统后,后仍可能要提高系统硬件配置以改善系统性能。例如:对于数据库服务器,本地磁盘相对于外部高速存储而言,磁盘I/O(Input/Output,输入/输出)能力明显较低,这个问题通常不太容易引起注意,但对系统性能确实影响较大。2.5.2 其他应用软件干扰问题  在某次性能测试过程中,发现随着用户数的增长,应用服务器的CPU使用率不升反降,如图4所示。分析这一异常现象的原因,是由于应用服务上部署了2个应用程序,受另一个应用程序对应用服务器的压力逐步下降影响,测试结果中应用服务器CPU使用率呈下降趋势。所以,我们在进行性能测试时,要保证服务器不被其他应用软件、服务器上其他用户干扰。3 总 结  通过一个B/S架构应用软件的性能测试实例,全面介绍了影响应用软件性能测试的主要问题,并根据Loadrunner生成的各种报告、以及服务器监控信息分析了解决这些问题的具体方法。用户身份认证的实现过程一个登录请求;1.WEB服务器响应后,根据用户请求的UID判断是否需要由浏览器下载ActiveX控件,该控件含有由CA签发的PKCS#12格式的单证书,同时将WEB服务器的证书下载到客户端;2.客户端得到了控件和证书后,再访问LDAP以得到新的CRL的数据;3.客户端浏览器根据以上两步的结果,通过ActiveX调用PKI动态连接库来验证WEB服务器证书是否合法; 4.如验证通过后,客户端将用户证书通过HTTP方式向WEB服务器发送;5.WEB服务器得到了用户证书后,再访问LDAP以得到新的CRL数据,同时将转交由应用服务器对证书进行验证的结果。4.1.3 数据签名、加密的应用实现①用户通过浏览器访问WEB服务器,并填写WEB应用表单;②当用户在浏览器中提交数据时,系统根据事前的约定将需要进行加密和签名的数据组成一个数据包,并通过ActiveX控件调用PKI动态连接库进行数据的加密和签名;③浏览器中加密的密文和无须加密的明文通过HTTP方式向WEB服务器发送;④WEB服务器收到数据后,判断是否已建立了安全会话,否则将需重新登录;⑤WEB服务器将解密、验证过的数据交由应用服务器进行继续处理;⑥WEB服务器回馈成功与否。4.2 安全策略  系统主要采取如下安全策略:通报系统访问次数、双向认证并核对登录密码、密码加密、设置会话密钥(Session Secret)和审计。5 结束语  本系统独立开发了一套系统处理平台,该平台是一个SERVLET,它的功能是:接收前台的请求,生成通用处理类的一个实例,调用通用处理类中的方法,完成对用户的请求的处理;在处理完成以后,生成输出处理类的实例,把通用处理类的输出参数传给输出处理类,调用输出处理类中的方法,生成输出页面;把输出页面返回给前台。该平台的设计,不仅提高了业务处理效率,而且缩短了系统开发时间,增强了系统的可维护性和系统的可扩展性。



性能 软件性能测试 性能测试 测试 软件

需要 登录 后方可回复, 如果你还没有账号请 注册新账号