VuGen正常但Loadrunner负载测试后部分事务响应时间为0的咨询
Loadrunner负载测试部分事务响应时间全为0的原因及解决办法
可能原因
- 事务边界执行异常:脚本里的
lr_start_transaction()和lr_end_transaction()可能被分支逻辑跳过,或者并发场景下因线程/进程异常导致事务未正常闭合,Loadrunner无法统计有效耗时。 - 事务内无实际网络请求:如果事务包裹的代码块没有发送HTTP请求(比如只有本地逻辑),或者负载场景下请求被缓存复用、过滤,系统会判定该事务无耗时操作,返回0值。
- 场景统计配置错误:Controller里可能把这些事务标记为「忽略统计」,或者负载生成器的统计采集功能被禁用,导致数据没上报到分析器。
- 协议适配问题:Web Http协议脚本中,事务包裹了非HTTP操作(比如本地函数调用),负载测试时无法正确捕获这类操作的耗时,统计为0。
- 并发冲突导致事务异常:多虚拟用户并发时,事务内的共享资源引发死锁或脚本提前退出,事务结束但未记录实际耗时。
预防与解决方法
- 校验事务边界逻辑:在VuGen中开启事务日志(执行
lr_set_debug_message(LR_MSG_CLASS_TRANSACTIONS, LR_MSG_ON)),检查所有分支场景下事务的开始和结束是否都能触发,避免条件判断跳过事务执行。 - 确保事务包含有效请求:确认事务包裹的代码块里有实际的HTTP请求(如
web_url()、web_submit_data()),同时在场景设置中禁用缓存复用,避免请求被跳过。 - 检查场景统计配置:在Controller的「场景设置-统计」里,确认目标事务不在「忽略的事务」列表中,且负载生成器的统计采集功能处于启用状态。
- 事务与协议操作匹配:Web Http协议脚本中,事务仅包裹HTTP请求相关操作,本地计算、等待等非网络操作单独处理,不要放到事务里。
- 小并发量提前验证:用2-5个虚拟用户运行场景,查看实时监控的事务耗时,排查并发时的脚本异常,比如添加
web_reg_find()检查请求是否成功执行。
内容的提问来源于stack exchange,提问作者khushi chavan
相关产品推荐
相关产品推荐

