我在编写脚本时多次需要在 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;
}
最佳答案
您可以使用以下不需要任何代码的技巧。 定义一个十六进制参数如下:
然后将其与以下代码一起使用:
lr_eval_string("{MyHex}{MyHex}-{MyHex}-{MyHex}-{MyHex}-{MyHex}{MyHex}{MyHex}")
关于c - 如何从独立于操作系统的 LoadRunner 生成通用唯一标识符 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58202093/