loadrunner生成随机uuid的方法
在一次协助测试中,发送HTTP body报文时,需要用到UUID字符串,查阅相关资料,及微微调试,成功运行并输出UUID值。
guid.h代码如下:
1 char* lr_guid_gen(char* paramName){ 2 typedef struct _GUID{ 3 unsigned long Data1; 4 unsigned short Data2; 5 unsigned short Data3; 6 unsigned char Data4[8]; 7 } GUID; 8 9 GUID m_guid; 10 char buf[50]; 11 char pNameStr[50]; 12 CoCreateGuid(&m_guid); 13 14 // 定义输出格式 15 16 //sprintf (buf, "{%08lX-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", // 大写 17 sprintf (buf, "%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",// 小写 18 19 m_guid.Data1, m_guid.Data2, m_guid.Data3,m_guid.Data4[0], m_guid.Data4[1], 20 m_guid.Data4[2], m_guid.Data4[3],m_guid.Data4[4], m_guid.Data4[5], 21 m_guid.Data4[6], m_guid.Data4[7]); 22 23 lr_save_string(buf, paramName); 24 sprintf(pNameStr,"{%s}",paramName); 25 return lr_eval_string(pNameStr);
在Action中调用该方法:
1 char *test; 2 lr_load_dll("ole32.dll"); //引用windows生成GUID的API 3 test=lr_guid_gen("GUID"); //调用上面lr_guid_gen()方法 4 lr_save_string(test,"GUID"); 5 //lr_output_message(test); 6 lr_output_message("xxxxxxxxxxxxx:%s",lr_eval_string("{GUID}"));
测试的时候这个LUID,就可以当成GUID/UUID使用了。除非同时使用了多个Contorller而且脚本组名也相同,而且即使是如此,取到重复值的机率也非常小!
函数就是在拼接“-”到指定位置。