使用时间戳作为C ++语言的输入生成V4 UUID

时间:2016-10-10 10:55:05

标签: c++ uuid loadrunner

我正在寻找能够使用UTC时间戳作为输入生成V4 UUID的代码。

我想在我的Load Runner脚本中使用此代码在我的Load Runner请求中传递UUID。

感谢代码是否以C ++提供

3 个答案:

答案 0 :(得分:1)

我记得使用像

这样的东西
int GenerateGuid()
{
    typedef struct _GUID
    {
        unsigned long Group1;
        unsigned short Group2;
        unsigned short Group3;
        unsigned char Group4[8];
    } GUID;

    GUID m_guid;
    char msgId[msgIdSize];

    lr_load_dll("ole32.dll");

    CoCreateGuid(&m_guid);

    sprintf(msgId, "%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
        m_guid.Group1, m_guid.Group2, m_guid.Group3,
        m_guid.Group4[0], m_guid.Group4[1], m_guid.Group4[2], m_guid.Group4[3],
        m_guid.Group4[4], m_guid.Group4[5], m_guid.Group4[6], m_guid.Group4[7]);

    lr_save_string(msgId, "msgId");

    return 0;
}

这基本上是调用CoCreateuid函数(仅适用于Windows load Generator)并将结果存储到msgid LoadRunner参数中。

实际上这是我最后一次使用LoadRunner,因为我记得它无法在硬件上产生所需数量的大型POST请求(我还必须解决几个对请求大小的人为限制){{3作为一个魅力。只是为了比较,您只需要调用一个函数,例如:${__UUID}即可。如果感兴趣,请查看Apache JMeter文章。

答案 1 :(得分:0)

LoadRunner是C虚拟用户,而不是C ++

我建议您使用内置函数 web_save_timestamp_param() lr_save_timestamp()作为使用选项

答案 2 :(得分:0)

我正在使用以下代码在独立于Loadgenerators操作系统的loadrunner中生成UUID。请同时检查此链接-How to generate Universally Unique IDentifier, UUID from LoadRunner independent of the OS

int lr_guid_gen()
{

    char GUID[40];
    int t = 0;
    char *szTemp = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";
    char *szHex = "0123456789abcdef-";
    int nLen = strlen (szTemp);


    for (t=0; t<nLen+1; t++)
    {
        int r = rand () % 16;
        char c = ' ';   

        switch (szTemp[t])
        {
            case 'x' : { c = szHex [r]; } break;
            case 'y' : { c = szHex [r & 0x03 | 0x08]; } break;
            case '-' : { c = '-'; } break;
            case '4' : { c = '4'; } break;
        }

        GUID[t] = ( t < nLen ) ? c : 0x00;
    }

    lr_save_string(GUID,"PAR_GUID");

    return 0;
}