lr添加md5方法,字符编码转换,urlcode编码化
1、使得写lr脚本时可调用md5方法,需要进行以下操作:
1)将md5.h文件加载到Extra Files下;
2)在globals.h文件中添加 #include“md5.h”
3)、打开md5文件,确认该文件方法的函数名
4)要使用该方法时,直接函数名(‘要加密的字符串’),如:lr_save_string(CMd5("123456"),"paypasswd")
2、写脚本过程中,若出现请求参数中带中文,导致请求不成功,返回400bad request。可先转码然后去终止符
例: lr_convert_string_encoding("测试",NULL,"utf-8","reremark");
lr_save_string(lr_eval_string("{reremark}"),"remark");
3、请求url中带有+号等字符,导致参数请求失败,可以使用web_convert_param()函数
a、web_convert_param()//将html文本转化成纯文本或url,或者将纯文本转化成url
b、 web_convert_param(output_param_name, "SourceEncoding=PLAIN", "TargetEncoding=URL", LAST); output_param_name参数为要转码字符串的参数名,切不能加{},比如参数变量为token,不能写成web_convert_param("{token}", "SourceEncoding=PLAIN", "TargetEncoding=URL", LAST); 而是web_convert_param("token", "SourceEncoding=PLAIN", "TargetEncoding=URL", LAST);
c、效果:
urlcode前: token: 4XrN8QoG//ESuKtc0pICg+f5s02EVkdwAh0dfk/hWP8ny+u3u17gcHEmdbAIItNOxRU/jxaEwo/fQbjJJq9BrA==
urlcode后:token: 4XrN8QoG%2F%2FESuKtc0pICg%2Bf5s02EVkdwAh0dfk%2FhWP8ny%2Bu3u17gcHEmdbAIItNOxRU%2FjxaEwo%2FfQbjJJq9BrA%3D%3D
c、例子://将字符串编码转为UTF-8
lr_convert_string_encoding(original, LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "strUTF8");
//去掉C数组后面的null终止符
lr_save_string(lr_eval_string("{strUTF8}"), output_param_name);
// 将UTF-8字符串URL encode
web_convert_param(output_param_name, "SourceEncoding=PLAIN", "TargetEncoding=URL", LAST);
4、写脚本过程中,若出现响应码返回为乱码,通过设置编码格式依然不行,可先关联你要知道正确中文含义的字段,然后lr_convert_string_encoding()函数转换格式,最后lr_output_message()输出
lr_convert_string_encoding(lr_eval_string("{loginmessage}"),"utf-8",NULL,"msg"); ,第一个参数为要转换的原子段,第二个参数是原字段的编码,第三个为要转换的编码格式,第四个为保存后的参数名
5、注册、登录、重置支付密码,下订单、支付订单、获取订单列表脚本
Action()
{
lr_save_string(CMd5("123456"),"paypasswd");
lr_save_string("192.168.46.129:8080","IP");
// 注册
web_reg_save_param_ex(
"ParamName=注册结果",
"LB={\"code\":",
"RB=,\"msg\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
web_reg_save_param_ex(
"ParamName=获取注册mobile",
"LB=\"mobile\":\"",
"RB=\",\"email\"",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
lr_start_transaction("注册");
web_custom_request("注册",
"URL=http://{IP}/mobile/api/user/register",
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"Body={\"mobile\":\"1880740{moblie}\",\"password\":\"123456\",\"code\":\"3367\",\"platform\":\"windows\",\"username\":\"\",\"sex\":1,\"age\":20,\"email\":\"\"}",
LAST);
if(strcmp(lr_eval_string("{注册结果}"),"0")==0)
{
lr_end_transaction("注册", LR_PASS);
lr_output_message("注册成功,返回响应码%s",lr_eval_string("{注册结果}"));
}
else
{
lr_end_transaction("注册", LR_FAIL);
lr_error_message("注册失败,返回响应码%s",lr_eval_string("{注册结果}"));
}
//登录
web_reg_save_param_ex(
"ParamName=登录结果",
"LB={\"code\":",
"RB=,\"msg\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
web_reg_save_param_ex(
"ParamName=loginmessage",
"LB={\"code\":0,\"msg\":\"",
"RB=,\"data\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
web_reg_save_param_ex(
"ParamName=get_login_token",
"LB=\"token\":\"",
"RB=\",\"identity\":\"",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
lr_start_transaction("登录");
web_custom_request("登录",
"URL=http://{IP}/mobile/api/user/login",
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"Body={\"mobile\":\"{获取注册mobile}\",\"password\":\"123456\"}",
LAST);
lr_convert_string_encoding(lr_eval_string("{loginmessage}"),"utf-8",NULL,"msg");
lr_output_message("返回响应文:%s",lr_eval_string("{msg}"));
if(strcmp(lr_eval_string("{登录结果}"),"0")==0)
{
lr_end_transaction("登录", LR_PASS);
lr_output_message("登录成功,返回响应码%s",lr_eval_string("{登录结果}"));
}
else
{
lr_end_transaction("登录", LR_FAIL);
lr_error_message("登录失败,返回响应码%s",lr_eval_string("{登录结果}"));
}
//重置支付密码
web_reg_save_param_ex(
"ParamName=重置支付密码结果",
"LB={\"code\":",
"RB=,\"msg\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
lr_start_transaction("重置支付密码");
web_custom_request("重置支付密码",
"URL=http://{IP}/mobile/api/user/resetpaypwd",
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"Body={\"token\":\"{get_login_token}\",\"password\":\"{paypasswd}\"}",
LAST);
if(strcmp(lr_eval_string("{重置支付密码结果}"),"0")==0)
{
lr_end_transaction("重置支付密码", LR_PASS);
lr_output_message("重置支付密码成功,返回响应码%s",lr_eval_string("{重置支付密码结果}"));
}
else
{
lr_end_transaction("重置支付密码", LR_FAIL);
lr_error_message("重置支付密码失败,返回响应码%s",lr_eval_string("{重置支付密码结果}"));
}
//下订单
web_reg_save_param_ex(
"ParamName=下订单结果",
"LB={\"code\":",
"RB=,\"msg\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
web_reg_save_param_ex(
"ParamName=get_payid",
"LB={\"payId\":\"",
"RB=\",\"orders\"",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
web_reg_save_param_ex(
"ParamName=ordermessage",
"LB=\"msg\":\"",
"RB=,\"data\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
lr_start_transaction("下订单");
web_custom_request("下订单",
"URL=http://{IP}/mobile/api/order/addorder",
"Method=POST",
"TargetFrame=",
"Resource=1",
"Referer=",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"Body={\"token\":\"{get_login_token}\",\"getAddrId\":1,\"getCarId\":23,\"payType\":2,\"remark\":\"ceshi\",\"price\":69,\"orders\":[{\"getTime\":1450921104000,\"goodss\":[{\"goodsId\":93,\"count\":1},{\"goodsId\":96,\"count\":1}]}],\"invoiceTitle\":\"title\"}",
LAST);
lr_convert_string_encoding(lr_eval_string("{ordermessage}"),"utf-8",NULL,"ordermsg");
lr_output_message("下订单返回响应文:%s",lr_eval_string("{ordermsg}"));
if(strcmp(lr_eval_string("{下订单结果}"),"0")==0)
{
lr_end_transaction("下订单", LR_PASS);
lr_output_message("下订单成功,返回响应码%s",lr_eval_string("{下订单结果}"));
}
else
{
lr_end_transaction("下订单", LR_FAIL);
lr_error_message("下订单失败,返回响应码%s",lr_eval_string("{下订单结果}"));
}
//支付订单
web_reg_save_param_ex(
"ParamName=支付订单结果",
"LB={\"code\":",
"RB=,\"msg\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
web_reg_save_param_ex(
"ParamName=payordermessage",
"LB=\"msg\":\"",
"RB=,\"data\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
lr_start_transaction("支付订单");
web_custom_request("支付订单",
"URL=http://{IP}/mobile/api/pay/pay",
"Method=POST",
"TargetFrame=",
"Resource=1",
"Referer=",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"Body={\"token\":\"{get_login_token}\",\"payId\":\"{get_payid}\",\"payPwd\":\"{paypasswd}\",\"platform\":2}",
LAST);
lr_convert_string_encoding(lr_eval_string("{payordermessage}"),"utf-8",NULL,"payordermsg");
lr_output_message("支付订单返回响应文:%s",lr_eval_string("{payordermsg}"));
if(strcmp(lr_eval_string("{支付订单结果}"),"0")==0)
{
lr_end_transaction("支付订单", LR_PASS);
lr_output_message("支付订单成功,返回响应码%s",lr_eval_string("{支付订单结果}"));
}
else
{
lr_end_transaction("支付订单", LR_FAIL);
lr_error_message("支付订单失败,返回响应码%s",lr_eval_string("{支付订单结果}"));
}
//获取订单
web_reg_save_param_ex(
"ParamName=获取订单结果",
"LB={\"code\":",
"RB=,\"msg\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
web_reg_save_param_ex(
"ParamName=getordermessage",
"LB=\"msg\":\"",
"RB=,\"data\":",
"Ordinal=1",
SEARCH_FILTERS,
LAST);
lr_save_string(lr_eval_string("{get_login_token}"),"token"); /*已证,在urlcode编码化时,lr_save_string()非必须,只是用来去掉转码导致的终止符/x00;经常和web_convert__sting_encoding()搭配;*/
web_convert_param("token", "SourceEncoding=PLAIN", "TargetEncoding=URL", LAST);
lr_output_message("urlcode化的token:%s",lr_eval_string("{token}"));
lr_start_transaction("获取订单");
web_custom_request("获取订单",
"URL=http://{IP}/mobile/api/order/getorders?token={token}",
"Method=GET",
"TargetFrame=",
"Resource=1",
"Referer=",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
LAST);
lr_convert_string_encoding(lr_eval_string("{getordermessage}"),"utf-8",NULL,"getordermsg");
lr_output_message("获取订单返回响应文:%s",lr_eval_string("{getordermsg}"));
if(strcmp(lr_eval_string("{获取订单结果}"),"0")==0)
{
lr_end_transaction("获取订单", LR_PASS);
lr_output_message("获取订单成功,返回响应码%s",lr_eval_string("{获取订单结果}"));
}
else
{
lr_end_transaction("获取订单", LR_FAIL);
lr_error_message("获取订单失败,返回响应码%s",lr_eval_string("{获取订单结果}"));
}
return 0;
}
lr添加md5方法,字符编码转换,urlcode编码化的更多相关文章
- LoadRunner调用md5方法
LoadRunner调用md5方法 上一篇 / 下一篇 2011-04-29 11:25:12 / 个人分类:Loadrunner 查看( 958 ) / 评论( 0 ) / 评分( 0 / 0 ) ...
- python基础-2 编码转换 pycharm 配置 运算符 基本数据类型int str list tupple dict for循环 enumerate序列方法 range和xrange
1.编码转换 unicode 可以编译成 UTF-U GBK 即 #!/usr/bin/env python # -*- coding:utf-8 -*- a = '测试字符' #默认是utf-8 a ...
- unicode编码、字符的转换和得到汉字的区位码
一:unicode编码.字符的转换截图 二:unicode编码.字符的转换代码 using System; using System.Collections.Generic; using System ...
- Char Tools,方便的字符编码转换小工具
工作关系,常有字符编码转换方面的需要,写了这个小工具 Char Tools是一款方便的字符编码转换小工具,基于.Net Framework 2.0 Winform开发 主要功能 URL编码:URLEn ...
- Python—字符编码转换、函数基本操作
字符编码转换 函数 #声明文件编码,格式如下: #-*- coding:utf-8 -*- 注意此处只是声明了文件编码格式,python的默认编码还是unicode 字符编码转换: import sy ...
- Python字符编码转换
编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有一天它会猝不及防坑你一把.不过感觉这哥们的答案并没把编码问题写 ...
- python 应用 base64、hmac、hashlib包实现:MD5编码 base64编码解码、SHA256编码、urlsafe_b64encode编码等等基本所有的加密签名的方法
用python做HTTP接口自动化测试的时候,接口的很多参数是经过各种编码加密处理后在传到后台的,这里列举出python实现 应用 base64.hmac.hashlib包实现:md5编码 sha1编 ...
- python字符编码转换说明及深浅copy介绍
编码说明: 常用编码介绍: ascii 数字,字母 特殊字符. 字节:8位表示一个字节. 字符:是你看到的内容的最小组成单位. abc : a 一个字符. 中国:中 一个字符. a : 0000 10 ...
- java字符编码转换研究(转)
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
随机推荐
- Win7 指定以某个用户运行某个程式
登陆的是用户A,想要以用户B执行某个程式,可以在cmd命令符下执行以下语句 runas /user:Domain\UserB /savecred notepad.exe 说明:/user:的后面即为 ...
- 安卓GreenDao(基础)
GreenDao的基础使用很简单,网上一大筐,推荐在简书里面搜索,那么我这里要说些什么呢,试想,这些简单的Demo可以带你了解GreenDao,但你能用这些代码做公司的项目么,肯定不行,所以我结合自身 ...
- deepin 安装scrapy安装出错:fatal error: Python.h 的解决办法
环境deepin Linux 15.7 Python3.6.5 今天重新装了deepin系统,需要重新安装scrapy,直接pip了一下,没成. 报错:fatal error: Python.h: 没 ...
- Axure无法签出,团队配合时无法导入项目
SVN管理项目,团队多人合作维护 在Axure签出时,报错. 提示:无法创建目录 ... 设备上没有空间 SVN也检出失败 当然,还有其他情况 如:未将对象引用设置到对象的实例.等等 个别提示如下图: ...
- 【Alpha】Scrum Meeting 8
目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第8次会议在4月12日21:00进行微信会议. 交流确认了任务进度,对下一阶段任务进行分配.时长15min. 任务分配 姓名 当前阶段任务 ...
- centos 安装python3与Python2并存,并解决"smtplib" object has no attribute 'SMTP_SSL'的错误
1.需要先安装python3依赖的包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readli ...
- lambda 委托 匿名方法
委托: delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类.与其它的类不同,delegate类能够拥有一个签名(signature),并且它只能持有与它的签名相匹配的方法的 ...
- TGCA数据的标准化以及差异分析--转载
转载果子学生信 https://mp.weixin.qq.com/s/Ph1O6V5RkxkyrKpVmB5ODA 前面我们从GDC下载了TCGA肿瘤数据库的数据,也能够把GDC下载的多个TCGA文 ...
- radio(单选框)反复选中与取消选中
做个记录,以便需要拿取 <script type="text/javascript"> $(function(){ 第一种 $('input:radio').click ...
- MySQL:(一)
数据库概述 什么是数据库 数据库是一个文件系统.通过标准SQL语言操作文件系统中数据——用来存放软件系统的数据! SQL:Structured Query Language 结构查询语言 常用数据库简 ...