zoukankan      html  css  js  c++  java
  • jmeter处理接口加密和解密

    https://www.liangzl.com/get-article-detail-39672.html

    https://www.cnblogs.com/artoftest/p/7277996.html

    https://blog.csdn.net/Stephen_shijun/article/details/86599144

    https://blog.csdn.net/russ44/article/details/56009084

    https://blog.csdn.net/Nancycyy/article/details/51423868

    流程:测试数据--加密--请求服务器--获取返回值--解密--提取token值--作为下个请求的参数

    1.加解密jar包
    代码:

    加解密代码
    2.BeanShell 使用
    (1)请求数据data加密,BeanShell PreProcessor

    import AES.AESUTil; //调用加解密的jar包
    String data1 ="{"data":"111","userName":"${userName}"}";//输入请求,userName可以获取
    String data=AESUTil.AEept(data1); //调用加密算法,加密data1,得到加密串data值
    vars.put("data",data); //输出加密data值
    ${userName}可以是从CSV Data Set Config 取值

    (2)http请求发送

     

    (3)返回数据解密,及提取token值,BeanShell PostProcessor

    import AES.AESUTil;//调用加解密的jar包
    import org.json.JSONObject;//调用json的jar包

    String response = prev.getResponseDataAsString();//得到返回数据存在response
    String Pcontent=AESUTil.BEept(response); //解密返回数据response,保存在Pcontent
    //vars.put("Pcontent",Pcontent);//输出解密返回的数据
    JSONObject data_obj = new JSONObject(Pcontent);//新建json串,将string类型的Pcontent转换值保存
    String errorCode1 = data_obj.get("errorCode");//截取json串data_obj返回值中的errorCode
    String code ="0000";//设定固定的返回值code
    if (errorCode1.equals(code)){//当返回值errorCode与设定code值相等时,执行下面的内容
    vars.put("userNo",data_obj.get("result").get("userNo").toString());
    //截取json串errorCode中的返回值中result下的userNo
    vars.put("Token",data_obj.get("result").get("accessToken").toString());
    //vars.put("errorCode1",errorCode1);
    }
    else
    vars.put("errorCode1",errorCod1);//返回值errorCode1不为0000,打印返回值errorCode1
     

    (3)BeanShell断言

    import AES.AESUTil;
    import org.json.JSONObject;
    prev.setDataEncoding("utf-8");//解决中文乱码问题
    String response = prev.getResponseDataAsString();
    String Pcontent=AESUTil.BEept(response);

    JSONObject data_obj = new JSONObject(Pcontent);
    String error1 = data_obj.get("errorCode");
    String code ="0000";
    //当结果error1与设定值不符时,在断言打印出来失败的error值
    if (!error1.equals(code)){
    Failure = true;
    FailureMessage = Pcontent;
    }
    (4)Debug Sampler的使用

     

    默认的设置即可,上面的vars.put()值都能显示在里面,调试的时候可以用

    3.调用jar包的问题
    二种方法

    (1)直接放到jmeter/lib 的目录下

     

    (2)在jmeter.jmx的测试计划下引用


    ---------------------
    作者:qie134
    来源:CSDN
    原文:https://blog.csdn.net/qie134/article/details/83306222
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    个人作业3-(Alpha阶段)
    结队编程二---单元测试
    个人作业2-英语学习APP案例分析
    结队编程一
    个人作业1——四则运算题目生成程序
    软件工程的实践项目课程的自我目标
    个人附加作业
    个人作业3——个人总结(Alpha阶段)
    结对作业2:单元测试
    个人作业2——英语学习APP案例分析
  • 原文地址:https://www.cnblogs.com/python-xiakaibi/p/11154899.html
Copyright © 2011-2022 走看看