1、 浅谈 Web 应用系统的负载测试摘要:本文结合 web 系统负载测试工作,对 web 系统的负载测试理论进行研究;并根据软件测试理论和负载测试原理,采用负载测试工具 hp loadrunner8.1 对测试过程进行了设计与实现;通过分析被测系统的测试需求,设计相应的测试案例,执行不同的测试场景后进行测试结果分析。文中引入了自动化测试流程,采用专业的负载测试工具,描述整个 web 系统的负载测试设计与测试实施过程。abstract: combining with the load testing of web system,the load testing theory of the web
2、system is studied; according to the software testing theory and load testing principle, the load testing tools hp loadrunner 8.1 is used to design and implement the testing process; through the analysis of the test requirements of measured system, the corresponding test cases are designed, and diffe
3、rent test scene are implemented to analyse the testing results. this paper introduces the automation test process, uses professional load testing tools, and describes the load test design and test process of the whole web system.关键词:负载测试;并发量;响应时间;利用率key words: load test;the concurrency value;respons
4、e time;utilization rate中图分类号:tp39 文献标识码:a 文章编号:1006-4311(2012)11-0169-020 引言软件测试是软件开发过程中一个非常重要的环节,软件测试通常占用了整个软件开发项目工作量的 40。通过测试工作全面检验系统初级成品是否符合系统设计的思想,达到系统设计的功能和性能要求。其中,在软件交付之前,为了验证系统的性能容量,给系统进行性能调优,需要进行负载测试,负载测试是性能测试的一种。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。1 负载测试简介负载测试(load testing)方法
5、通过在被测系统上不断增加压力,直到达到预设的负载预期,例如“响应时间”达到预定指标或者 cpu 利用率达到 75%,然后再去观察不同负载下系统的响应时间、系统资源利用率和数据的吞吐量等。这种测试方法可以找到系统处理极限,为系统调优提供数据。在某些情况下,有时这种方法也称为可量性测试(scalability testing) 。该方法有如下特点:这种性能测试方法的主要目的是找到系统处理能力的极限;该方法需要在特定的测试环境下执行,通常需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义;该方法一般用来了解系统的性能容量,或是配合性能调优来使用。简而言之,负载测试时通过逐步加压的方
6、式来确定系统处理能力,确定系统能够承受的各项阀值。例如,逐步加压,从而得到“响应时间不超过 10 秒” , “服务器平均 cpu 利用率低于 85%”等指标阀值。2 负载测试分析一般的负载测试分为负载需求分析、测试计划设计、开发负载测试脚本、定义测试负载模型,执行负载测试五个步骤。这里以“安徽电力营销辅助决策该系统”为实例,分析如何进行 web 应用系统的负载测试。2.1 搭建测试环境 在建立一个测试环境时,应考虑以下几点原则:测试环境应该只包含被测试服务器和测试客户机;测试环境应该运行独立的测试系统,避免在同一测试环境中同时运行多个测试;由于互联网的不可预知性,不同时间的测试,所获得的数据不
7、一致,为了能让测试在一个稳定的网络下,测试工作最好安排在局域网内,且测试的同时最好不要有其它无关的数据通信;使用快速的网络组件,避免使用 http 代理服务器。负载测试依赖于逐渐增加的负载等级,直到 web 服务器或者数据库服务器处理能力达到极限的时候停止增加负载。该系统的测试环境如下:应用/数据库服务器硬件配置:5160 3.0ghz 4 核 cpu,3.25g 内存,100mb 独立网卡,软件配置:windows server 2003 操作系统,oracle10g 数据库,weblogic9.0web 服务。客户机端:硬件配置 5160 3.0ghz 4 核cpu,2g 内存,100mb
8、 独立网卡,软件配置:windows server 2000 操作系统,ie6.0 浏览器。2.2 负载需求分析 “安徽省电力公司营销辅助决策系统”中的“公司全行业销售电量统计表”主要是地市公司管理员每月定时进行访问,主要数据操作是查询,并发访问量以 20 量级为测试标准。该系统对同一用户的登陆没有策略限制,在负载测试的时候可以用同一帐号模拟多人登陆,所以不需要创建多个帐户。2.3 负载测试方案 采用负载测试工具 hp loadrunner8.1 模拟并发用户,设计该业务场景,对其进行负载测试,检测该系统“公司全行业销售电量统计表”的查询业务操作可承受的并发量及响应时间,同时监控应用服务器、数
9、据库服务器的系统资源占用情况。测试指标:系统响应时间小于 30 秒,应用服务器、数据库服务器平均 cpu 利用率均低于 85%,网络流量不得占用本地带宽的 50%以上。场景执行策略:各场景分别设置若干组并发数测试,分别取值 10、20、30 个并发数对相应模块进性测试。3 执行负载测试3.1 录制脚本 启用 loadrunner 中的 vugen 组件,选择录制脚本的协议类型,在弹出的 start recording 窗口,输入 web 系统的 url 地址,点击“ok”进行脚本录制,客户端浏览器自动打开系统登录界面,输入用户名和密码,点击登录按钮,等完全进去系统后进行相应的报表查询操作。分别
10、在打开“公司全行业销售电量统计表”页面和点击查询按钮的两个地方插入事务,操作完毕后点击“停止录制” ,输入测试脚本名称,编译无错后就完成了录制测试。3.2 运行测试场景 启动 loadrunner 中的 controller 创建一个 manual scenario,在 scenario scripts 中添加录制的“公司全行业销售电量统计表”测试脚本,分别设置vuser=10/20/30,edit schedule:5 秒加载 5 个用户,用户加载使用 run until completion 方式,限制持续运行 5 分钟,迭代次数=1,tinktime3 秒;timeout 时间均设置为 300 秒,在负载执行过程中监控并收集系统资源(如 cpu、内存、i/o 等)和系统的网络吞吐量。