
Action部分run两次以上就会这样,被测系统也有London for Portland不知道为啥这里找不到

上午好☀️☀️☀️️
本答案参考通义千问
你提到的 "LoudRunner" 报错,可能是指 LoadRunner(现在称为 Micro Focus UFT One 或 Performance Center) 中的一个错误。根据你的描述:
这表明你在使用 LoadRunner 进行性能测试时,脚本在多次运行后出现错误,并且可能与被测系统的某些配置或路径有关。
LoadRunner 的 Action 脚本通常是在 Vuser 脚本中定义的,如果你在同一个 Action 中重复调用某些函数、变量或资源(如文件、数据库连接等),可能会导致以下问题:
lr_save_string 保存的值没有在每次运行前清空。这句话可能有歧义,但从上下文推测,可能是:
在每次 Action 执行前,确保所有变量、连接、文件句柄等都被重置。
// 在 Action 开始前添加如下代码
lr_save_string("", "my_var"); // 清空变量
lr_delete_file("temp_file.txt"); // 删除临时文件
重点:确保每次 Action 执行前都重新初始化所有资源
如果使用的是 Web/HTTP 协议,请确保:
lr_set_header() 设置必要的 headers。lr_think_time() 添加合理的思考时间,避免服务器超载。重点:确保被测系统地址和接口在 LoadRunner 脚本中正确配置
.lrr 文件)和 Run-time Viewer。在脚本中加入错误处理机制,防止因一次失败导致后续执行中断。
int ret = lr_eval_string("{my_response}");
if (ret != LR_PASS) {
lr_output_message("Error occurred in the script.");
return LR_FAIL;
}
重点:在关键步骤添加错误处理,提高脚本健壮性
// Action 函数开始
int action() {
// 重置变量
lr_save_string("", "response_body");
// 发送请求
web_url("Get Data",
"URL=http://your-app.com/api/data",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1",
"Mode=HTML",
LAST);
// 获取响应内容
lr_get_value("response_body", "Body", "Response");
// 检查是否包含 "London for Portland"
if (strstr(lr_eval_string("{response_body}"), "London for Portland") == NULL) {
lr_output_message("Expected response not found: 'London for Portland'");
return LR_FAIL;
}
return LR_PASS;
}
| 问题点 | 解决方案 | |--------|----------| | Action 多次运行出错 | 重置变量、文件、连接等资源 | | 被测系统 “London for Portland” 无法识别 | 确保 URL、API 正确,检查日志 | | LoadRunner 报错 | 检查日志、添加错误处理逻辑 |
如果你能提供具体的错误信息(如错误代码、截图、日志内容),我可以进一步帮你定位问题。