在一次协助测试中,发送HTTP body报文时,需要用到UUID字符串,查阅相关资料,及微微调试,成功运行并输出UUID值。
1、将生成GUID方法放在新建的guid.h文件中;
2、把这个文件放入脚本保存处;
3、在globals.h中#ifndef下增加函数头“#include “guid.h””;
guid.h代码如下:
char* lr_guid_gen(char* paramName){
typedef struct _GUID{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
GUID m_guid;
char buf[50];
char pNameStr[50];
CoCreateGuid(&m_guid);
// 定义输出格式
//sprintf (buf, "{%08lX-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", // 大写
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, paramName);
sprintf(pNameStr,"{%s}",paramName);
return lr_eval_string(pNameStr);
在Action中调用该方法:
char *test;
lr_load_dll("ole32.dll"); //引用windows生成GUID的API
test=lr_guid_gen("GUID"); //调用上面lr_guid_gen()方法
lr_save_string(test,"GUID");
//lr_output_message(test);
lr_output_message("xxxxxxxxxxxxx:%s",lr_eval_string("{GUID}"));
测试的时候这个LUID,就可以当成GUID/UUID使用了。除非同时使用了多个Contorller而且脚本组名也相同,而且即使是如此,取到重复值的机率也非常小!函数就是在拼接“-”到指定位置。