在了解了用户的行为模式后,还需要知道不同用户所占的数量或者百分比。因为用户的每一类动作给系统施加的负载都是不尽相同的,因此为了准确地模拟实际用户的动作,必须确定各种用户的数量或者百分比。各种以不同的百分比组合到一起的动作,应该满足预期的页面请求分布。例如,服务器施加很小的负载。而另一方面,购买图书时要和数据库通信,甚至要和其他子系统通信,这个动作对服务器施加的负载要比浏览信息大得多。因此,要根据掌握的Web应用负载情况,明确不同用户的数量或者百分比,这样才能准确地模拟实际用户对服务器施加的负载。

  3.2 用户延迟建模

  在进行负载测试的设计时,用户的延迟的建模也是重要的一个方面。由于不同的用户对Web应用的熟悉程度不同、阅读速度和输入速度不同,所以不同的用户在完成相同的行为时延迟的时间也不同,为了更加真实地模拟用户的行为,必须对用户延迟进行准确地建模[7]。在根据用户导航建模录制的脚本中,要考虑用户延迟建模,对脚本进行修改。首先,可以根据用户的延迟不同将用户分为比重不同的若干组。例如,在一个用户登陆页面中,可以根据用户对Web 应用的熟悉程度不同将用户分为新用户、返回用户和有经验的用户,它们所占比重分别是35%、55%和10%。以用户延迟的不同对用户进行分类,根据划分的细致程度,模拟的用户延迟的准确度不同,划分类别越多越细,模拟的用户延迟越准确。相反,如果划分的类别很少,模拟的用户延迟准确性比较差。为了尽可能地和真实用户的延迟相同,使用数学模型可以更好地实现。所以,在设计性能测试时为了很准确地模拟用户延迟,需要认真地分析真实用户的延迟情况,找到一种能够和其很好吻合的数学模型,例如,常用的有均匀分布、正态分布和负指数分布。均匀分布模型是从大值和小值之间随机地选择数据,正态分布是从大值和小值之间以不同的概率选取数据,越靠近中间的数字选取的概率越大。

  4 基于LoadRunner的负载/压力测试实例

  4.1 并发性能测试

  基于客户端应用的性能,测试的入口是单机客户端。

  并发性能测试的过程,即是一个负载测试和压力测试的过程。它的基本原理是逐渐增加并发虚拟用户数,直到系统的瓶颈,通过综合分析监控指标数据来确定系统性能。负载压力测试有助于确认被测系统是否能够支持性能需求,以及预期的负载增长,并找出系统出现异常的原因,从而对系统性能进行调优。

  并发用户测试主要是对系统的核心功能和重要业务进行测试,要以真实的业务数据作为输入,选择有代表性和关键的业务操作来设计测试用例。

  其目的是:在真实或者仿真环境下检测系统性能,评估系统性能以及服务等级的满足情况;预见系统负载压力承受力,在应用实际部署之前,评估系统性能;帮助分析系统瓶颈、优化系统自动化负载压力测试实现机制。在多种服务器配置环境下测试,则配置成本,测试时间和人力资源必然会更多的消耗。但在很多情况下可以通过一种硬件配置下的压力测试结果来预测不同配置下的Web应用程序的性能。

  4.2 进入负载测试

  由于条件的限制,本次实验Web服务器和web客户端同机。这与网络无关,即减少了网络系统这个环境因素,直接与服务器连通。下面是录制基本的用户脚本。

  (1)启动VuGen(Visual User Generator虚拟用户生成器),其方法:“开始”→“程序”→“Loadrunner”→“Visual User Generator”。通过菜单“new”新建一个用户脚本,选择通信协议。这里用的是Web应用,所以选择web(HTTP/HTML)协议。