如何在 Loadrunner 中将失败的用户作为单个文件获取

问题描述

我在 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 中的用户名参数表中添加一个新列,例如“有效”,则直接根据登录结果的有效性更新其在同一行的状态。