SOA应用程序的性能测试包括了benchmarking test(基准测试),capacity test(容量测试)和sOAk test(浸泡测试)三个主要测试阶段。
基准测试(Benchmarking Test)
基于SOA的性能测试第一阶段是基准测试,基准测试是用来确定被测应用程序是否存在性能衰退,并且收集可重复性能测试结果以作为性能基准。基准测试的最好方法是每次测试只改变一个参数。基准测试包括了相应时间驱动的测试和吞吐量驱动的测试。
响应时间驱动测试
对于web service的应用程序,其中响应时间定义为发送一个服务请求到收到服务响应的时间间隔。响应时间驱动的测试主要用来测试单个service的性能。首先加一个虚拟用户作为负载量,然后对同一测试用例按照比例的增加并发虚拟用户数,并分别记录下测试结果,最后计算出这些测试结果的平均值作为平均响应时间。
平均响应时间随着并发虚拟用户数的增加而增加。在用户数从50到100,平均响应时间开始比较大幅度地增长,此时很有可能某个系统资源出现了瓶颈,当然前提条件是在被测应用程序没有出现错误的情况下。此时可以进行调优,但要保证每次只改动一个参数值,然后再次执行相同测试用例,并与之前的结果进行对比,选取结果最优的参数配置。
吞吐量驱动测试
吞吐量被定义为在单元时间内能够成功处理的服务请求的数量。吞吐量驱动的测试主要是基于一组连续web服务形成一个或多个测试场景,来测量应用在单位时间内能够处理的事务数量。
这是针对一个业务场景进行的性能测试用例,同样首先加一个虚拟用户作为负载量,然后对同一测试用例按比例的增加并发虚拟用户数,最后记录下不同虚拟用户数下的吞吐量。
与响应时间一样,吞吐量也随着并发虚拟用户数的增长而增长,但不同的是吞吐量在达到某一最高点后,再增加并发虚拟用户时吞吐量则保持与最高值接近。这是由于当用户数较少时,单位时间内发出的服务请求较少,所以测出的吞吐量较小,当用户数增加,发出的服务请求增加,所以吞吐量也随之增加,当吞吐量达到最高值表明被测应用在测试的硬件环境下达到处理事务的最高能力。最后同样要做性能调优,以选取最优的吞吐量最大值时的配置情况。
容量测试(Capacity Test)
容量测试的目标是要看被测应用在一定测试环境下能够达到的最大处理能力。容量测试将模拟更加接近真实用户使用的环境,并且用更为真实的用户负载来测试 SOA应用程序的capacity scale。具体地说,一般容量测试是为了检测在达到一定响应时间或吞吐量的前提下被测应用能够支持的并发用户数。其中容量测试包括了以下几方面内容:
定义访问系统的并发虚拟用户数
定义虚拟用户的think time,也就是发出两个连续请求之间的时间间隔。
用ramp-up run的方式增加负载量进行测试,得到被测应用能够支持的虚拟用户数的范围。
在应用支持的用户数地范围内,采用flat run的方式进行测试,以得到更为精确性能结果。
浸泡测试(Soak Test)
Soak test是在一个稳定的并发用户上进行的long run测试,用来测试SOA应用程序的健壮性。通过soak test往往可以发现内存泄露,频繁 GC 等严重性能问题。进行soak test需要注意以下两点:
Soak test需要在一定适中的用户负载量下进行,最好低于应用支持最大的负载量。
在执行long run测试时,采用几种不同用户组,并且每个用户组织性不同的业务流程。
Soak test实际上比较简单的性能测试,测试最好能够运行几天,以真正得到一个健壮的应用。确保应用测试是贴近真实世界,尽量与实际使用情况接近。
在执行应用程序负载测试的时候,很难预测一项新的Web服务将要经受的流量。尽管初期预测是精确的,但Web服务经常随着超出企业连接范围的外部用户的使用而增长。JetBlue质量经理Sagi Varghese谈到为了减少性能风险,从相关应用程序分离出来,单独测试Web服务的性能以及将测试结果文档化至关重要。
Varghese 表示:“一旦你向社区发布了一项Web服务,你并不完全了解用例将会是什么。所以你希望独立地测试Web服务并发布指南说明我们已经对Web服务进行过哪些测试,这就是性能的体现。”
依照期望的并发用户数量,大多数Web应用程序都有一个固定的需求。当测试团队了解到期望的流量种类后,负载测试将提供更多逼真的结果。虽然Web服务可以经受到来自用户和其他服务的攻击,但保持性能标准是最新的也很重要。
特别的,JetBlue的测试人员观察若干连接并将其与响应时间进行对比。如果一项Web服务的响应时间超过一秒,这就是有问题的,Varghese说道。他的团队在开始性能测试之前,会查看有多少并发连接服务可以被处理。平均响应时间趋近于小于0.5秒。
当并发连接的上限找到的时候,就会有一项限制来阻止在一定时刻内,消费Web服务的用户数量。为了防止出现性能下降,流量溢出将被放入一个队列中。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/