loadrunner 脚本开发-url解码

时间:2021-10-11 21:50:45

url解码

by:授客 QQ1033553122

脚本结构如下:

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];

if (isupper(c))

{

c = tolower(c);

}

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)) &&

isxdigit((int) *(data +
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解码

loadrunner 脚本开发-url解码的更多相关文章

  1. loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取

    转自:http://blog.sina.com.cn/s/blog_13cc013b50102v49c.html(查看原文) 在VuGen中默认使用{}的字符串称为参数 注意:参数必须在双引号中才能用 ...

  2. Loadrunner脚本开发规范

    Loadrunner脚本开发规范 目录 1.一般约定... 3 2.代码注释约定... 4 3.格式化代码... 5 1.一般约定 1.1具体脚本规则,必须在具体代码中加注释,以便脚本开发人员阅读和理 ...

  3. Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试

    脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试 by:授客 QQ:1033553122   目的 实现基于http协议的流媒体在线视频播放,服务器性能测试脚本,模拟用户浏览器方式在线播放 ...

  4. Loadrunner&&num;160&semi;脚本开发-利用Loadrunner生成Web&&num;160&semi;service测试脚本

    脚本开发-利用Loadrunner生成Web service测试脚本 1.选择协议--Web Service,如下图 2.导入服务 入口1:点击Manage Services ->弹出窗中选择“ ...

  5. loadrunner&&num;160&semi;脚本开发-文件下载

    脚本开发-文件下载 by:授客 QQ:1033553122 下载简介 对 HTTP协议来说,无论是下载文件或者请求页面,对客户端来说,都只是发出一个GET请求,并不会记录点击后的“保存”.“另存为操作 ...

  6. loadrunner&&num;160&semi;脚本开发-基本知识

    脚本开发-基本知识 1)编码工具设置 自动补全输入Tools->General Options->Environment->Auto complete word 显示功能语法Tool ...

  7. Loadrunner&&num;160&semi;脚本开发-利用web&lowbar;submit&lowbar;data函数实现POST请求

    脚本开发-利用web_submit_data函数实现POST请求   by:授客 QQ:1033553122 概述 web_link()和web_url()函数都是页面访问型函数,实现HTTP请求中的 ...

  8. Loadrunner&&num;160&semi;脚本开发-利用loadrunner开发Windows&&num;160&semi;Sockets协议脚本

    脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...

  9. Loadrunner&&num;160&semi;脚本开发-soap&lowbar;request函数介绍及WebService接口测试

    脚本开发- soap_request函数介绍及WebService接口测试 by:授客 QQ:1033553122 函数介绍 soap_request 函数执行一个SOAP请求 函数原型 int so ...

随机推荐

  1. AMD and CMD are dead之js模块化黑魔法

    var define, require, define2, require2; typeof JSON != "object" && (JSON = {}), fu ...

  2. Croppic – 免费开源的 jQuery 图片裁剪插件

    Croppic 这款开源的 jQuery 图片裁剪插件能够满足网站开发人员各种不同的使用需要.只需要简单的上传图片,就可以实现你想要的图像缩放和裁剪功能.因为使用了 HTML5 FormData  对 ...

  3. php和js一起实现倒计时功能

    里获取的php服务端的时间 纯JS是获取客服端时间! <?php //php的时间是以秒算.js的时间以毫秒算 date_default_timezone_set('PRC'); //date_ ...

  4. phonegap文件,目录操作以及网络上传,下载文件(含demo)

    正在做一个跨平台的应用,需要使用phonegap进行文件的一些基本操作. 需求如下:可以选择本地图片,或者从相机选择图片,并进行显示在本地,然后上传到服务器,以及可以从服务器下载图片显示出来,如果本地 ...

  5. VPN各种常见状态码及修复方法

    1.633错误 :由于Windows系统本身的问题,在PPTP协议连接多次并断开之后,后导致一直出现633错误.参见微软的官方解决方案:http://support.microsoft.com/kb/ ...

  6. Mongodb Gridfs

    http://www.cnblogs.com/lipan/archive/2011/03/21/1989409.html

  7. C&num;里巧用DateTime预设一些可选的日期范围&lpar;如本年度、本季度、本月等&rpar;

    //大家在做报表或查询的时候都会有给用户预设一些可选的日期范围(如上图)                //如本年度销售额.本季度利润.本月新增客户                //C#里内置的Da ...

  8. 读阿里巴巴Java开发手册v1&period;2&period;0之编程规约有感【架构篇】

     不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么 ...

  9. Java微信公众平台开发之扫码支付模式二

    官方文档点击查看 准备工作:已通过微信认证的公众号,域名可以不通过ICP备案借鉴了很多大神的文章,在此先谢过了大体过程:根据固定金额和商品的ID先生成订单,再生成二维码,客户扫一扫付款模式二支付的流程 ...

  10. linux audit审计(7-1)--读懂audit日志

     auid=0 auid记录Audit user ID,that is the loginuid.当我使用lbh用户登录系统时,再访问audit_test,此时记录的auid为1001,具体日志如下: ...