c - 如何从独立于操作系统的 LoadRunner 生成通用唯一标识符 UUID

标签 c performance-testing uuid guid loadrunner

我在编写脚本时多次需要在 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;
    }

最佳答案

您可以使用以下不需要任何代码的技巧。 定义一个十六进制参数如下: enter image description here

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

关于c - 如何从独立于操作系统的 LoadRunner 生成通用唯一标识符 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58202093/

相关文章:

c - 如何在 while 循环中传递多个命令

c - 在 Objective-C/iPhone 应用程序中使用 "classic"malloc()/free() 可以吗?

java - 内存问题 - Java 8 + Tomcat 6 与 Java 8 + Tomcat 8

ios - 从 namespace 生成 UUID?

database - 在 Slick 中自动生成 UUID

c++ - C/C++ 测试框架(如 JUnit for java)

c - 尝试将 gets 与结构一起使用,但它不起作用

python - Locust 负载测试 - 将孵化率从几秒更改为几分钟?

testing - 如何使用线程对 Sharepoint 站点执行压力测试

Python - 为什么使用 uuid4() 以外的任何东西来获取唯一字符串?