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编码化的更多相关文章

  1. LoadRunner调用md5方法

    LoadRunner调用md5方法 上一篇 / 下一篇  2011-04-29 11:25:12 / 个人分类:Loadrunner 查看( 958 ) / 评论( 0 ) / 评分( 0 / 0 ) ...

  2. 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 ...

  3. unicode编码、字符的转换和得到汉字的区位码

    一:unicode编码.字符的转换截图 二:unicode编码.字符的转换代码 using System; using System.Collections.Generic; using System ...

  4. Char Tools,方便的字符编码转换小工具

    工作关系,常有字符编码转换方面的需要,写了这个小工具 Char Tools是一款方便的字符编码转换小工具,基于.Net Framework 2.0 Winform开发 主要功能 URL编码:URLEn ...

  5. Python—字符编码转换、函数基本操作

    字符编码转换 函数 #声明文件编码,格式如下: #-*- coding:utf-8 -*- 注意此处只是声明了文件编码格式,python的默认编码还是unicode 字符编码转换: import sy ...

  6. Python字符编码转换

    编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有一天它会猝不及防坑你一把.不过感觉这哥们的答案并没把编码问题写 ...

  7. python 应用 base64、hmac、hashlib包实现:MD5编码 base64编码解码、SHA256编码、urlsafe_b64encode编码等等基本所有的加密签名的方法

    用python做HTTP接口自动化测试的时候,接口的很多参数是经过各种编码加密处理后在传到后台的,这里列举出python实现 应用 base64.hmac.hashlib包实现:md5编码 sha1编 ...

  8. python字符编码转换说明及深浅copy介绍

    编码说明: 常用编码介绍: ascii 数字,字母 特殊字符. 字节:8位表示一个字节. 字符:是你看到的内容的最小组成单位. abc : a 一个字符. 中国:中 一个字符. a : 0000 10 ...

  9. java字符编码转换研究(转)

    1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...

随机推荐

  1. LInux命令英文全称

    Linux命令英文全称   su = Swith user 切换用户,切换到root用户cat = Concatenate 串联uname = Unix name 系统名称df = Disk free ...

  2. [Python]数据挖掘(1)、梯度下降求解逻辑回归——考核成绩分类

    ps:本博客内容根据唐宇迪的的机器学习经典算法  学习视频复制总结而来 http://www.abcplus.com.cn/course/83/tasks 逻辑回归 问题描述:我们将建立一个逻辑回归模 ...

  3. JS(JavaScript)的进一步了解2(更新中···)

    js数据类型 基本数据类型:string   undefined   null  boolean  number 引用数据类型  Object  array  function 二者的区别 基本数据类 ...

  4. Python3 tkinter基础 Text window 文本框中插入按钮

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. Java 问题定位工具 ——jstack

    简介 jstack 主要用于生成虚拟机当前时刻的「线程快照」.线程快照是当前 Java 虚拟机每一条线程正在执行的方法堆栈的集合. 生成线程快照的主要目的是用于定位线程出现长时间停顿的原因,如线程间死 ...

  6. Discuz3.2与Java 项目整合单点登陆

    JAVA WEB项目与Discuz 论坛整合的详细步骤完全版目前未有看到,最近遇到有人在问,想到这个整个不是一时半会也解释不清楚.便把整个整合过程以及后续碰到的问题解决方案写下,以供参考. 原理 Di ...

  7. hp quicktestprofession ver-10.0(QTP)的入门使用指南

    ---恢复内容开始--- SQA(software quality assurance) tool hp quicktestprofession ver-10.0(QTP) environment w ...

  8. Go-延时函数defer

    关于延时调用函数(Deferred Function Calls)      延时调用函数基本语法如下: defer func_name(param-list) {} 当一个函数前有关键字 defer ...

  9. IOS高级开发之多线程(五)NSOperation 2

    接着看NSOperation.NSOperationQueue线程间的通信: 应用场景:比如我们经常把一些耗时的操作比如下载图片放在子线程,那么当这个完成之后,我们就需要回到主线程,这个时候就需要用到 ...

  10. java知识点集锦--基础知识部分

    1.面向对象特征:封装.继承.多态 封装:把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口来访问.面向对象的本质就是将现实世界描绘成一系列完全自治.封闭的对象.我们在类中编写的方法就是 ...