天天看点

loadrunner 脚本开发-url解码

url解码

by:授客 QQ:1033553122

脚本结构如下:

loadrunner 脚本开发-url解码
loadrunner 脚本开发-url解码

Action.c中的代码如下:

int htoi(char

*s)

{

int value = 0;

int c = 0;

c = ((unsigned char *)s)[0];

if (isupper(c))

c = tolower(c);

}

value = (c >= '0' && c <= '9' ? c - '0' : c - 'a' +

10) * 16;

c = ((unsigned char *)s)[1];

value += c >= '0' && c <= '9' ? c - '0' : c - 'a' +

10;

return (value);

void url_decode(char *str,

int len)

char *dest = str;

char *data = str;

char *dst = NULL;

dest = (char*)malloc(len + 1);

dst = dest;

while (len--) 

if (*data == '+')

*dest = ' ';

else if (*data == '%' && len >= 2 &&

 isxdigit((int) *(data +

1)) &&

2)))   

#ifndef CHARSET_EBCDIC

   *dest

= (char)htoi(data + 1);  

#else

*dest = os_toebcdic[(char) htoi(data + 1)];

#endif

data += 2;

len -= 2;

else

*dest = *data;

data++;

dest++;

*dest = '\0';

lr_output_message(dst);

free(dest);

dest = NULL;

dst = NULL;

const unsigned char

os_toebcdic[256] = {

0x00,  

0x01,  

0x02,  

0x03,  

0x37,  

0x2d,  

0x2e,  

0x2f,  

0x16,  

0x05,  

0x15,  

0x0b,  

0x0c,  

0x0d,  

0x0e,  

0x0f,  

0x10,  

0x11,  

0x12,  

0x13,  

0x3c,  

0x3d,  

0x32,  

0x26,  

0x18,  

0x19,  

0x3f,  

0x27,  

0x1c,  

0x1d,  

0x1e,  

0x1f,  

0x40,  

0x5a,  

0x7f,  

0x7b,  

0x5b,  

0x6c,  

0x50,  

0x7d,  

0x4d,  

0x5d,  

0x5c,  

0x4e,  

0x6b,  

0x60,  

0x4b,  

0x61,  

0xf0,  

0xf1,  

0xf2,  

0xf3,  

0xf4,  

0xf5,  

0xf6,  

0xf7,  

0xf8,  

0xf9,  

0x7a,  

0x5e,  

0x4c,  

0x7e,  

0x6e,  

0x6f,  

0x7c,  

0xc1,  

0xc2,  

0xc3,  

0xc4,  

0xc5,  

0xc6,  

0xc7,  

0xc8,  

0xc9,  

0xd1,  

0xd2,  

0xd3,  

0xd4,  

0xd5,  

0xd6,  

0xd7,  

0xd8,  

0xd9,  

0xe2,  

0xe3,  

0xe4,  

0xe5,  

0xe6,  

    0xe7,  

0xe8,  

0xe9,  

0xad,  

0xe0,  

0xbd,  

0x5f,  

0x6d,  

0x79,  

0x81,  

0x82,  

0x83,  

0x84,  

0x85,  

0x86,  

0x87,  

0x88,  

0x89,  

0x91,  

0x92,  

0x93,  

0x94,  

0x95,  

0x96,  

0x97,  

0x98,  

0x99,  

0xa2,  

0xa3,  

0xa4,  

0xa5,  

0xa6,  

0xa7,  

0xa8,  

0xa9,  

0xc0,  

0x4f,  

0xd0,  

0xa1,  

0x07,  

0x20,  

0x21,  

0x22,  

0x23,  

0x24,  

0x04,  

0x06,  

0x08,  

0x28,  

0x29,  

0x2a,  

0x2b,  

0x2c,  

0x09,  

0x0a,  

0x14,  

0x30,  

0x31,  

0x25,  

0x33,  

0x34,  

0x35,  

0x36,  

0x17,  

0x38,  

0x39,  

0x3a,  

0x3b,  

0x1a,  

0x1b,  

0x3e,  

0xff,  

0x41,  

0xaa,  

0x4a,  

0xb1,  

0x9f,  

0xb2,  

0x6a,  

0xb5,  

0xbb,  

0xb4,  

0x9a,  

0x8a,  

0xb0,  

0xca,  

0xaf,  

0xbc,  

0x90,  

0x8f,  

0xea,  

0xfa,  

0xbe,  

0xa0,  

0xb6,  

0xb3,  

0x9d,  

0xda,  

0x9b,  

0x8b,  

0xb7,  

0xb8,  

0xb9,  

0xab,  

0x64,  

0x65,  

0x62,  

0x66,  

0x63,  

0x67,  

0x9e,  

0x68,  

0x74,  

0x71,  

0x72,  

0x73,  

0x78,  

0x75,  

0x76,  

0x77,  

0xac,  

0x69,  

0xed,  

0xee,  

0xeb,  

0xef,  

0xec,  

0xbf,  

0x80,  

0xfd,  

0xfe,  

0xfb,  

0xfc,  

0xba,  

0xae,  

0x59,  

0x44,  

0x45,  

0x42,  

0x46,  

0x43,  

0x47,  

0x9c,  

0x48,  

0x54,  

0x51,  

0x52,  

0x53,  

0x58,  

0x55,  

0x56,  

0x57,  

0x8c,  

0x49,  

0xcd,  

0xce,  

0xcb,  

0xcf,  

0xcc,  

0xe1,  

0x70,  

0xdd,  

0xde,  

0xdb,  

0xdc,  

0x8d,  

0x8e,  

0xdf   

/* 

................

*/

};

Action()

int len = 0;

char *

Params="{"dataList":[{"accountId":"10002","customerScore":0,"isCommnet":0,"isDated":0,"";

len = strlen(Params);

url_decode(Params,len);

return 0;

输出结果:

loadrunner 脚本开发-url解码
loadrunner 脚本开发-url解码

可将输出结果同在线解码工具的输出做对比

http://tool.chinaz.com/Tools/URLEncode.aspx

loadrunner 脚本开发-url解码

注意:以上脚本仅适用于不含中文字符的url解码,中文解码存在以下问题

loadrunner 脚本开发-url解码

作者:授客

QQ:1033553122

全国软件测试QQ交流群:7156436

Git地址:https://gitee.com/ishouke

友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!

作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!

           微信打赏                       

支付宝打赏                  全国软件测试交流QQ群  

loadrunner 脚本开发-url解码
loadrunner 脚本开发-url解码
loadrunner 脚本开发-url解码