首页 > 解决方案 > 如何从独立于操作系统的 LoadRunner 生成通用唯一标识符、UUID

问题描述

在编写脚本时,我曾多次遇到需要在 LoadRunner 中生成 UUID,但没有内置函数可以这样做。我正在使用 linux 和 windows 负载生成器。

感谢 Scott Moore 编写了以下代码,该代码使用 Windows 内置 CoCreateGuid 函数(依赖于 ole32.dll)来生成所需的 UUID。然而,该代码完全依赖于 Windows 平台,在 Linux 平台上不起作用。

我们如何从独立于操作系统的 Loadrunner 生成 UUID?

    #include "lrun.h"
    #include "web_api.h"
    #include "lrw_custom_body.h"
    #include "stdlib.h"
    #include "stdio.h"
    #include "string.h"
    int lr_guid_gen()
    {
        typedef struct _GUID
        {
            unsigned long Data1;
            unsigned short Data2;
            unsigned short Data3;
            unsigned char Data4[8];
        } GUID;

        GUID m_guid;
        char buf[50];

        lr_load_dll ("ole32.dll");

        CoCreateGuid(&m_guid);

        sprintf (buf, "%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
        m_guid.Data1, m_guid.Data2, m_guid.Data3,
        m_guid.Data4[0], m_guid.Data4[1], m_guid.Data4[2], m_guid.Data4[3],
        m_guid.Data4[4], m_guid.Data4[5], m_guid.Data4[6], m_guid.Data4[7]);

        lr_save_string(buf, "PAR_GUID");

        return 0;
    }

标签: cperformance-testinguuidguidloadrunner

解决方案


您可以使用以下不需要任何代码的技巧。定义一个十六进制参数如下: 在此处输入图像描述

然后将其与以下代码一起使用: lr_eval_string("{MyHex}{MyHex}-{MyHex}-{MyHex}-{MyHex}-{MyHex}{MyHex}{MyHex}")


推荐阅读