当前位置: 首页 > 测试知识 > 软件测试工具LoadRunner响应时间测试时间太长?10个效率提升技巧
软件测试工具LoadRunner响应时间测试时间太长?10个效率提升技巧
2026-04-27 作者cwb 浏览次数6

使用LoadRunner进行性能测试时,如果整个场景执行时间过长(比如一个场景要跑好几个小时甚至更久,或者从脚本调试到拿到结果非常拖沓),很可能是脚本、运行时设置、监控等步骤有比较大的优化空间。


1. 精简脚本

检查脚本里是不是有大量调试性的 lr_output_message、lr_log_message,生产运行时必须去除或注释。

避免在每次迭代中做不必要的计算、复杂字符串处理。数据准备工作(如生成 token、读取大文件)尽量放到vuser_init,只做一次;清理动作放到vuser_end。

测试点(web_reg_find 等)只保留重要业务检查,过多的文本检查会明显拖慢单个事务。


2. 调优运行时设置(Run-time Settings)

日志级别:

把 Run-time Settings > Log 改为Send messages only when an error occurs或Standard log并禁用扩展日志。全量日志(如参数替换、服务器返回数据)会严重消耗CPU和I/O,让脚本变慢好几倍。


思考时间:

如果仅想看系统的最大吞吐量,可以将Think Time设为Ignore或使用很小的倍数(如 10%)来加快加压速度。

测真实用户场景时需要保留,但可通过随机 50%~150% 来模拟并控制整体迭代速度,避免死板等待。


超时设置:

调小不重要的连接及接收超时值,避免某个请求卡住长时间不释放虚拟用户资源。


3. 合理设计场景

使用 面向目的(Goal‑Oriented) 或 手动场景时,Ramp Up间隔不宜过大。如果只是测稳态性能,可以加快加载用户的速度。

采用 Duration(不断时间) 而不是固定迭代次数来结束场景,能避免因为个别高响应时间事务把整个场景拖得很长。

正式测试前,先用少量Vuser跑 5‑10 分钟试跑,确定平均事务时间后再定正式时长,避免盲目设定半小时导致无效等待。


4.给负载生成器减负

单台Load Generator负载过高(CPU 或内存满)会反过来拖慢虚拟用户的执行速度,让响应时间假性升高,拉长整体测试。

增加负载生成器(LG)数量,使每台LG的CPU使用率控制在70%以下。

LG 和控制器的网络延迟要低,尽量在同一网段。

试运行时在LG上用任务管理器或 top 观察资源,确定不是脚本慢,是机器本身的短板。

5. 调整采样频率

Controller 默认会频繁收集各项性能数据,数据量一大就会拖慢运行并占用大量磁盘 I/O。

在 Diagnostics > Configuration 中将不需要的 J2EE/.NET 诊断、深度拆解数据统统关闭。

在Results Settings中,将Data collection frequency或者Sample frequency适当调大(如每 10‑15 秒收集一次而不是 5 秒),对于吞吐量趋势已足够。

关闭Detailed log for transaction breakdown等选项,需要深度分析时才临时打开。


6. 监控计数器只留下主要标准

Controller 添加监控时,不要全选所有计数器,否则每采集一次就要拉取成百上千个数据点,严重影响收集效率。

Windows/Linux 只保留 CPU、内存、磁盘、网络吞吐这些重要计数器。

删除不关心的进程级计数器。

对于数据库、应用服务器,选用预置的主要的模板即可,不要的全部添加。


7. 用命令行方式 (CLI) 执行场景

通过命令行(Wlrun.exe 或 mdrv.exe)驱动场景,可以关闭 GUI 渲染开销,并在自动化流水线中快速批量执行。如:


bash

Wlrun.exe -TestPath "C:\Scenario.lrs" -Run -DontClose -ResultName "NightRun"


本身不会直接缩短单次场景时间,但省去了人工点击和等待图形界面响应的时间,尤其适合需要反复执行的回归测试,让整体测试周期缩短。


8. 优化参数化和数据文件

参数文件尽量放置在LG本地的高性能磁盘上(NVMe SSD),用最少的列和行,避免使用网络途径。

参数取值方法设为Unique + Once或Sequential,少用每步都产生大范围随机读取的Random方式(如果数据量大)。

避免在脚本内动态从数据库或大文件反复读取数据,把所需数据提前一次性加载到参数块。


9. 用线程方式替代进程

在Run-time Settings > Multithreading中,将虚拟用户方式从 Process(进程) 改为 Thread(线程)。

线程方式启动更快、资源占用更低,可以显著提高同一台LG能承载的最大Vuser数,减少因进程切换引起的执行延迟。让场景执行更流畅,整体时间自然缩短。


10. 脚本关联分析

不要等到所有脚本都完美关联再开始试跑场景。可以并行推进:

用 VuGen 回放调通重要流程的同时,另外的测试机已经开始准备数据、预热系统。

利用Controller的Group功能,把不同模块的脚本拼在同一个场景里并行测试,一次场景包括多条业务线,避免串行执行多条场景。


文章标签: 软件测试 测试工具
咨询软件测试