在ERP系统上线前进行500并发用户的压力测试,先需要搭建贴近生产环境的测试环境。
以某离散制造企业为例,日常有数百名销售、计划、生产人员同时在线操作ERP系统。测试环境的服务器配置应保持和生产环境相同或按比例缩放,数据库需要准备和生产环境数据量级相近的测试数据(可通过数据脱敏实现)。如,测试500并发时,数据库中的订单、物料、客户信息至少需要达到数万条甚至十万条级别,这样才能真实反映数据库查询、索引效率。
在需求分析阶段,不能只看“500人同时在线”这个数字。需要细化:这500人具体在做什么?登录、查询库存、创建订单、审批流程还是生成报表?不同操作对系统的压力完全不同。根据实际业务统计,500在线用户中真正同时进行重点操作的并发用户可能只有100-150人。
脚本开发从录制到参数化
脚本开发使用LoadRunner的Virtual User Generator组件。录制前需要进行几项重点设置:选择Web(HTTP/HTML)协议,在Recording Options中勾选support charset,utf-8防止乱码。
以ERP系统的典型业务流程为例,脚本结构一般包含三个部分:vuser_init存放登录操作,Action存放重要业务(如创建订单),vuser_end存放退出操作。对于500并发测试,需要在重要业务前插入集合点(Rendezvous Point),保证所有虚拟用户同时发起请求。事务(Transaction)的插入也很重要-在开始操作前插入lr_start_transaction,在操作完成后插入lr_end_transaction,这样才能准确统计响应时间。
参数化是脚本开发的重点步骤。500个并发用户不能使用同一个账号登录,否则服务器端的缓存机制会让测试结果失真。需要准备500个真实的测试账号,通过参数化方式让每个虚拟用户使用不同账号。参数化时,将用户名设置为参数,类型选择File,取值规则选择Unique保证每个用户使用不同账号,更新规则选择Each iteration保证每次迭代都换账号。
场景设计500并发的负载方法
场景设计在LoadRunner Controller中完成。对于ERP系统500并发测试,推荐采用阶梯式加压方法:
初始阶段:以50并发运行5分钟,证实基础功能稳定性
加压阶段:每2分钟增加50个用户,直至达到500并发
峰值维持:500并发不断运行30-60分钟,观察系统稳定性
释放阶段:每5秒释放5个用户
这种设计的好处是可以观察系统在不同负载水平下的性能变化,找到性能拐点。
关于思考时间(Think Time)的设置,这是很多测试新手容易忽视的细节。真实用户在操作之间有停顿,如填完订单后会花几秒检查内容再提交。不加思考时间的测试会造成超现实压力,500并发可能把服务器压垮,而真实业务场景下服务器根本没那么大压力。实践经验表示,在脚本中加入5-10秒的思考时间后,同样的500并发场景下,服务器CPU占用率可以从99%降到70%左右。
还需要设置IP欺骗(IP Spoofer)功能,让每个虚拟用户使用不同的IP地址访问服务器,避免单一IP触发系统的防护机制。在Controller的Scenario菜单中启用“Enable IP Spoofer”,并在Load Generators设置中配置IP地址池。
执行和监控实时追踪标准
场景运行过程中,需要在Controller仪表盘实时监控以下重要标准:
Vuser运行状态:正在运行、准备运行、已停止的虚拟用户数量
事务响应时间:平均、最大、最小响应时间的变化趋势
吞吐量:每秒服务器处理的请求数
错误率:事务失败的数量和比例
服务器资源利用率:CPU、内存、磁盘I/O
同时需要监控被压测的ERP系统本身。可以通过Controller添加Windows资源监控或Linux资源监控,重视CPU使用率(峰值应低于85%)、内存使用情况、数据库连接池状态。如果CPU使用率长期维持在95%以上,说明服务器配置已到短板。