栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

HTTPS加密接口压测脚本编写及调试方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HTTPS加密接口压测脚本编写及调试方法

【摘要】

某项目的压测过程中,遇到接口请求体/响应体均做加密处理的场景,为了还原真实的接口使用场景,以及对接口响应体内容做业务判断,需要在Jmeter脚本中做相应的处理。本文介绍如何对接口加密的场景,进行压测脚本的编写以及调试。

业务场景说明

通过抓包了解接口的结构

通过对加密接口进行抓包,了解接口的结构及加密部分,如下图所示,“手机号登录”接口的请求体及响应体均作了加密处理

因此,在压测脚本编写的过程中,需要对请求体先做加密处理,同时为了对响应体做业务判断,需要对响应体做解密处理

获取接口的加密方式

请求/响应体使用了XXTEA加密算法,开发提供了相关的Jar包,加解密调用方法如下图所示:

JMeter脚本编写

1. 引入Jar包

方式一:把jar包加入到classpath 

方式二:把jar包放到lib/ext下

Jmeter会自动从lib及lib/ext目录下去找jar包,外部引入的jar包一般放在lib/ext目录下

2. 创建线程组

创建线程组后,添加接口相关的请求头及请求体部分,http请求体内容通过引用变量(变量的值会在beanshell处理器中进行赋值)

3. 添加beanshell预处理器

此部分,完成对http请求体的加密,先编辑好接口的请求头及请求体部分,增加beanshell中,将请求体做加密处理后,传入请求参数

//引入加密算法包
import org.xxtea.XXTEA;

//原始请求体
String request = "{"phone":"18789405020","validCode":"1234"}"; 
log.info("======================request明文=============================");
log.info(request);

//加密后请求体
request = XXTEA.encryptTobase64String(request, "5b28bae827e651b3");
log.info("======================request加密=============================");
log.info(request);

vars.put("requestdata",request)

4. 增加断言

断言部分,在正常不加密接口压测脚本的基础上,添加解密的部分即可。

//引入加密算法包
import org.xxtea.XXTEA;

//对响应体做解密处理,同时打印出解密前后的值 
String response = new String(ResponseData); log.info("=====================response密文================================="); 
log.info(response); 

response = XXTEA.decryptbase64StringToString(response,"5b28bae827e651b3".getBytes()); 
log.info("=====================response明文================================="); 
log.info(response);

//对响应码及响应体做校验
if(!ResponseCode.equals("200"))
{  
Failure = true;  
FailureMessage=ctx.getPreviousResult() +" 请求失败,返回码:" + ResponseCode + ",响应体:"+ response +"n";  
return;
}  

Failure = !(response.contains(""code":0"));
if (Failure) 
{  
Failure = true;  
FailureMessage=ctx.getPreviousResult() + " 响应体未发现: "code":0 ,响应体:" + response + "n";
}

JMeter脚本调试

通过添加结果观察树,结合在GUI上看打印的信息,确认加密/解密是否处理成功

总结

对接口加密的场景做压测时,需要先通过抓包了解接口的结构以及哪部分做了加密处理,同时需要拿到接口加密算法的相关jar包,以及加密/解密调用的方式,用于在脚本中完成数据加解密的处理。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号