zoukankan      html  css  js  c++  java
  • 性能测试初学_loadrunner base64/md5 编码 解码

    参考这3篇文章:

    MD5:

    http://bbs.51testing.com/forum.php?mod=viewthread&tid=1111323

    base64:

    http://www.cnblogs.com/preftest/archive/2011/06/12/2079178.html

    http://www.51testing.com/html/41/15103841-3707341.html

    主要思路为:

    1. LR中保存一个空项目,取名test

    2. 把base64或md5的c语言代码保存为 base64.h 格式的文件,保存在test项目根目录下。具体代码在前面3篇文章可找到。

    3.在loadrunner中左侧 action、vuser_end 模块上,右击,选择“add file to script”,选中base64.h文件,导入。

    4.在loadrunner的globlas.h 的include files模块 加入 #include "base64.h",如下:

    // Include Files
    #include "lrun.h"
    #include "web_api.h"
    #include "lrw_custom_body.h"
    #include "base64.h"

    5.loadrunner->action 中引用 base64.h已封装好的 加密、解密函数。

    如:

    *******************************************************

    //base64.h例子:

    Action()
    {   
        int res;
        //编码
        lr_save_string("1234567","number01");
        b64_encode_string(lr_eval_string("{number01}"),"b64str");
        lr_output_message("encode result: %s", lr_eval_string("{b64str}"));
        //解码                                                                
        b64_decode_string(lr_eval_string("{b64str}"),"number02");
        lr_output_message("decode result: %s",lr_eval_string("{number02}"));

        //校验
        res = strcmp(lr_eval_string("{number01}"),lr_eval_string("{number02}"));

        if(res == 0) {
            lr_output_message("test is successful");
        }

      // 下面的代码自己写的,编码出来的效果跟上面的有点区别,不知为啥,但解密的结果是一致。

      b64_encode_string("1234567","base64");
        lr_output_message("encode base64 result: %s", lr_eval_string("{base64}"));

        b64_decode_string(lr_eval_string("{base64}"),"number03");
        lr_output_message("decode base64 result: %s",lr_eval_string("{number03}"));


        
        return 0;
    }

    **************************************************

    //MD5例子:

    Action()
    {
        char Md5[33];

     // MD5只有编码的函数
        GetMd5FromString("1234567",Md5); 
        lr_output_message(Md5);    

    }

  • 相关阅读:
    go包初始化顺序
    go map
    go包管理
    C++ 线程池
    RAFT共识算法笔记
    最大子序列和
    常见网络攻击及其防御
    go常用标准库功能
    using代替typedef
    typename和class的区别
  • 原文地址:https://www.cnblogs.com/jilu1219/p/6599712.html
Copyright © 2011-2022 走看看