问题描述
我在 loadrunner 控制器中运行 4 个 Vugen 脚本,我有 10000 个用户,一些用户在登录后失败(404 页/TCP 错误页),开发要求我从 dat 文件中删除这些用户。我知道我们可以从单个日志文件中获取用户列表,但我想知道是否有任何特定方法可以将失败的用户导出到文件中。以便在下一次运行中我将在下一次运行中消除这些用户。
解决方法
这是您的测试代码中关于您如何处理错误的编码问题。您可以选择让 LoadRunner 在出现错误时终止您的使用,或者您可以选择 [continue on error] 并自行处理。您可以将错误参数记录到输出窗口 lr_output_message()。
但可能有一个更简单的方法,您的应用程序所有者应该提出一个方法,而不是让您通过另一个测试来浏览数据:
- 转到 Web 服务器上的 HTTP 错误日志
- 搜索有问题的页面,状态为 404
- 看看请求的参数,除了 ?在请求中。您很可能会在此处找到错误的参数。
目前在 LoadRunner 中没有使用自定义数据导出失败事务的内置方法。
我能想到的一种方法是使用 LoadRunner 提供的 VTS feature。将 VTS 组件安装为 HTTP(S) 服务以管理脚本的参数需要一些额外的工作,例如用户名和密码,以及通过 lrvtc-* 系列 API 保留您感兴趣的任何自定义数据。
在您的 vuser_init 脚本中,通过 lrvtc_connect_ex API 准备 VTS 连接。
然后在检测到登录错误的代码中,使用 lrvtc_send_message 保留所有失败的用户名,例如
Action()
{
int rand = 0;
lr_output_message("login user %s",lr_eval_string("{LoginUserName}"));
rand = atoi(lr_eval_string("{RandomNum}"));
if(rand < 60) {
//mock a http login failure by possibility
lrvtc_send_message("FailedLoginUser",lr_eval_string("{LoginUserName}"));
}
return 0;
}
注意:{} 中的字符串是我在 VuGen 中创建的 LR 参数。为了简化脚本,我使用了一个随机值来模拟您的情况下可能出现的登录错误。
每次测试运行后,您可以打开 VTS 管理门户浏览您保存的值。
高级用法:在您的 VTS 中的用户名参数表中添加一个新列,例如“有效”,则直接根据登录结果的有效性更新其在同一行的状态。