利用JMeter的beanshell进行接口的加密处理
最近项目中在做http协议的接口测试,其中接口请求报文数据有个字段值需要用到加密后的签名,即出于网络传输过程中,对数据安全的考虑,要对请求的数据进行特定的处理(加密),再进行请求。
刚开始由于项目赶进度的需要,选择的做法是:让开发写个加密处理生成请求报文的代码,然后每次测试发送一次请求都用eclipse跑一遍该代码,测试数据的修改也是在代码中变更。这样跑一轮测试下来,测试同事都反映太累了。
jmeter中的BeanShell,可以用来调用我们的工具类对数据进行处理,然后再进行相关的请求。自己刚好以前工作中使用过,于是就利用jmeter的beanshell来解决这个问题。
解决过程:
1、获取对应接口加密的工具类,并生成jar包
这个需要看测试人员是否具有代码查看的权限,如果没有权限,直接要求开发人员把该工具类的代码发过来即可。
在eclipse中建个Java工程,把得到的工具类代码导进去。然后再导出成jar包。


2、把jar包放到${jmeter_home}\lib\ext下
将导出的jar包放到jmeter的lib\ext目录里。也可以不放进该目录,然后在jmeter的测试计划直接引用即可。

3、创建jmeter脚本
在jmeter中创建一个项目,添加一个httprequest,在这个请求里添加一个BeanShell PreProcessor。

在http请求中根据实际情况填写对应的数据:

在BeanShellPreProcessor中导入我们的jar包,BeanShell PreProcessor中的两个方法是我们最常用到的:vars.get(String paramStr)、vars.put(Stringkey,String value),前一个是从jmeter中获得变量值,后一个是将数据存到jmeter变量中。

说明:mac是需要签名加密的字段,在BeanShell PreProcessor中主要是利用加密的工具类对报文进行加密,得到加密后的mac值,然后在接口报文中调用mac即可。
4、执行jmeter脚本
通过上述步骤脚本即可解决接口报文需要进行加密后才发送请求的测试处理。
未加密的请求结果:

利用beanshell加密后的请求结果:

至此,接口请求的加密处理已完成,不仅解决需通过代码生成请求报文的繁琐方法,还可以在此脚本的基础上,实现数据驱动的接口自动化测试,测试小伙伴们就可以愉快的进行测试了。
本文出自 “半路测试” 博客,请务必保留此出处http://tiantiantesting.blog.51cto.com/10211292/1789571
利用JMeter的beanshell进行接口的加密处理的更多相关文章
- Jmeter使用beanshell对数据进行加密传输
首先,来看一下接口签名加密规则 1.需要参于签名的参数: a. 在请求参数列表中,除去 cliSign 参数外,其他需要使用到的参数皆是要签名的参数. 2.生成签名字符串 a. 没有值的参数无需传递, ...
- 【Jmeter】利用Jmeter+ant+Jenkins 搭建 接口&性能测试 持续集成平台
https://www.jianshu.com/p/6ab73a95d53e https://yq.aliyun.com/articles/664329
- Jmeter(十九) Md5加密操作之-------BeanShell PreProcessor(转载)
转载自 http://www.cnblogs.com/yangxia-test 背景: 有一些登录会做一些md5校验,通过jmeter的BeanShell可以解决MD5加密情况. 1.首先需要一个解码 ...
- jmeter通过BeanShell 脚本,实现对http请求参数的加密
jmeter一直是一款很好的接口和性能测试工具,它是开源的,不需要为此支付任何费用,而且可以下载源码,可以在修改源代码并在此基础上拓展自己的功能或插件,它可以跟ant和jenkins结合起来搭建自己的 ...
- Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密
[前言] 在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法:Jmeter用BeanShell Sampler调用java写的jar包进行MD5加 ...
- jmeter beanshell断言接口自动化实例
一.JMeter介绍 Apache JMeter是一款优秀的开源性能测试工具,在国外无论是在性能测试还是接口测试领域都有着非常高的使用率,但由于本身没有完善的中文文档以及典型开源工具特点(界面不美观) ...
- jmeter通过BeanShell,实现对接口参数HmacSHA256加密(转)
jmeter通过BeanShell,实现对接口参数HmacSHA256加密2019-04-29 05:10 ps. 最近抓包网站的登陆请求,发现就2个参数,用户名和密码,通过工具去请求这个接口,一直返 ...
- jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密
前提: eclipse.JDK.Jmeter 说明: 本文分为两部分进行配置说明 第一部分:编写JavaMD5加密脚本 第二部分:使用Jmeter的BeanShell进行验证 ************ ...
- 玩转jmeter:beanshell必备技能
beanshell是什么 BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型.命令. ...
随机推荐
- 防止继承和覆盖(PHP类)
可能出现需求:我们不希望继承的类覆盖abstract类中的某个方法. 解决方案:我们可以在某个方法前面加上final关键词,可以防止继承的类覆盖它并实现继承类自己的版本. 继承类仍然可以访问和调用这些 ...
- Js、JQuery脚本兼容
1.获取属性值 IE:$("#xxx").prop("title"); chrome:$("#xxx").attr("title& ...
- JMeter 十:录制脚本--使用bodboy
1. 下载bodboy 下载地址:http://www.badboy.com.au/download 这里填写完基本信息,点击下方的Continue即可跳转到下载页面. 任选一个version,点击后 ...
- hdu4515小Q系列故事——世界上最遥远的距离
Problem Description 世界上最遥远的距离 不是生与死 而是我就站在你面前 你却不知道我爱你 世界上最遥远的距离 不是我就站在你面前你却不知道我爱你 而是明明知道彼此相爱 却不能在一起 ...
- python 字典的KeyError处理方法
先看一段代码: user = dict(name="brainliao", age=32) print(user["sex"]) 运行结果如下: user这个字 ...
- ASP.NET WEB API处理流程
前言:大图请看 http://www.asp.net/posters/web-api/ASP.NET-Web-API-Poster.pdf Web Api Hosting 我们不仅可以通过Web应用程 ...
- Yahoo关于性能优化的N条军规
一. Yahoo的军规条例: 谨记:80%-90%的终端响应时间是花费在下载页面中的图片,样式表,脚本,flash等:详细的解释来这里查:http://developer.yahoo.com/perf ...
- VBA对指定单元格填充颜色并且赋值
使用VBA对指定的单元格赋值并填充颜色 ====================================================== 代码区域 ==================== ...
- Apache OFBiz 添加样式
1.打开themes文件夹,拷贝一份样式作为自己的样式更改初始样式,我这里拷贝的是flatgrey文件夹,重新命名为qlstyle 2.在文件/ofbiz/framework/common/c ...
- 转:浅析VO、DTO、DO、PO的概念、区别和用处
原文链接 概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来. DTO(Data Transfer Object):数据传输对象,这个概 ...