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
版权声明:本文为博主原创文章,转载请附上博文链接!

jmeter处理接口加密和解密的更多相关文章

  1. jmeter 请求发送加密参数(加密接口测试一)

    最近在做http加密接口,请求头的uid参数及body的请求json参数都经过加密再发送请求,加密方式为:ase256.所以,jmeter发送请求前也需要对uid及json参数进行加密.我这里是让开发 ...

  2. jmeter 请求发送加密参数

    最近在做http加密接口,请求头的uid参数及body的请求json参数都经过加密再发送请求,加密方式为:ase256.所以,jmeter发送请求前也需要对uid及json参数进行加密.我这里是让开发 ...

  3. Java_DES 加密和解密源码

    Java密码学结构设计遵循两个原则: 1) 算法的独立性和可靠性. 2) 实现的独立性和相互作用性. 算法的独立性是通过定义密码服务类来获得.用户只需了解密码算法的概念,而不用去关心如何实现这些概念. ...

  4. PHP 加密 和 解密 方法

    关于Discuz的加密解密函数,相信大家都有所了解,该authcode函数可以说是对PHP界作出了重大的贡献,真的发觉discuz这个函数写的太精彩啦. 研究了一下这个算法,总的来说可以归纳为以下三点 ...

  5. mvc url路由参数的加密和解密

    查看某个信息的时候一般会在url上加上该信息在数据库中对应的主键id(而且一般是自增的) url是这样子的 xxxDetail/1 , 虽然对于我们开发人员来说可以这种显式的数据库主键会方便调试过程, ...

  6. 浅谈.NET中加密和解密的实现方法分享

    这篇文章介绍了.NET中加密和解密的实现方法,有需要的朋友可以参考一下 .NET将原来独立的API和SDK合并到一个框架中,这对于程序开发人员非常有利.它将CryptoAPI改编进.NET的Syste ...

  7. Flash型单片机的加密与解密

    厂商利用单片机进行产品开发时,都会关心其代码和数据的保密性.考虑到用户在编写和调试代码时所付出的时间和精力,代码的成本是不言而喻的.    早期的单片机,代码是交给芯片制造商制成掩膜ROM.有两种加密 ...

  8. php接口数据加密、解密、验证签名代码实例

    php接口数据加密.解密.验证签名 代码非常easy,这里就不多废话了,直接奉上代码 <?php /** * 数据加密.解密.验证签名 * @edit http://www.lai18.com ...

  9. Java DES 加密和解密源码(转)

    原文地址:http://www.oschina.net/code/snippet_727646_18383 Java密码学结构设计遵循两个原则: 1) 算法的独立性和可靠性. 2) 实现的独立性和相互 ...

随机推荐

  1. FreeSWITCH Explained / Configuration / Proxy Media

    FreeSWITCH has 3 media handling modes: Default: media flows through FS, full processing options - RT ...

  2. C# 给DataTable去重

    using System; using System.Data; namespace DelegateTest { public class Program { public static void ...

  3. debian系列systemd 配置nodejs服务

    1  新建service配置文件 vi /etc/systemd/system/node.service [Unit] Description=My super nodejs app [Service ...

  4. Java中的Overload和Override有什么区别

    Overload和Override的区别 1.Overload 定义 Overload是重载的意思.它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后在调用时,虚拟机就会 ...

  5. man fdisk

    FDISK(8)       Linux Programmer?. Manual/Linux程序手册       FDISK(8) NAME/名称       fdisk - Partition ta ...

  6. Task7.卷积神经网络

    卷积定义: 所谓卷积,其实是一种数学运算.但是在我们的学习生涯中,往往它都是披上了一层外衣,使得我们经常知其然不知其所以然.比如在信号系统中,他是以一维卷积的形式出现描述系统脉冲响应.又比如在图像处理 ...

  7. 【ElasticSearch】概念

    小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 对小史面试情况感兴趣的同学可以观看面试现场系列. 随着央视诗词大会的热播,小史开始对诗词感兴趣 ...

  8. Hash树——数据结构

  9. Flask学习 3 url_for的使用

    #!/usr/bin/env python # encoding: utf-8 """ @version: v1.0 @author: cxa @file: flask0 ...

  10. weilaiqiche

    <!DOCTYPE html><html lang="en"> <head> <meta http-equiv="Content ...