2

软件测试:通过jmeter完成对请求字段的加密

 3 years ago
source link: https://my.oschina.net/u/5316626/blog/5179124
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

软件测试:通过jmeter完成对请求字段的加密 - 软件测试柠檬班Plus的个人空间 - OSCHINA - 中文开源技术交流社区

相信大家在工作中做接口测试的时候,肯定会遇到一个场景,那就是你们的软件,密码是加密存储的。。

那么这样的话,我们在执行接口的时候,对于密码的处理就开始头疼了。。

所以,本文将使用 jmeter 这款 Java 开源的接口测试工具,给大家来讲解 jmeter 完成加密的接口请求

在执行加密之前,你需要了解 3 个知识点:

元件-> 前置/后置处理器

beanshell 是什么

beanshell 的内置变量

元件-> 前置/后置处理器

前置处理器:此元件突出一个“前”,所以它是在请求发出之前的一个处理器

后置处理器:此元件突出一个“后”,所以它是在请求发出之后,得到了响应结果后的一个处理器

beanshell 是什么

BeanShell 是一种完全符合 Java 语法规范的脚本语言,并且又拥有自己的一些语法和方法。

BeanShell 是可以执行标准 Java 语句和表达式,另外包括一些脚本命令和语法。

简单的来说,我们可以在 beanshell 里写 Java 代码,然后 jmeter 会去执行这些代码

beanshell 内置变量

vars:本质上来说。它是一个类似于 HashMap 的集合,所以 vars 是可以对数据进行存储和读取的,它所存储的数据格式为 key.value

它的常用语法:

vars.get(string key):从集合里取值

vars.put(string key.string value):把变量传到集合里进行保存

ps:要注意的是 vars 内置变量是一个局部变量,不能跨线程使用!!!

1、从开发处获取加密 jar 包

对于很多测试经验不足的测试工程师而言,是有点畏惧向开发要东西的。

总感觉一问开发要,就会被开发骂。大家放宽心哈,不会的,只要你的要求是合理的,开发肯定会愿意配合你的。

所以,当你要对数据进行加密的时候,你得先找到对应的开发,要开发给你提供加密方法的 jar 包。

因为这个加密的方式,公司里面也就只有开发是最清楚的了。并且,每家公司的加密方式都是不一样的。

2、在 jmeter 里引用 jar 包

jmeter 引用 jar 包有 2 种方法:

软件测试:通过jmeter完成对请求字段的加密

在测试计划中直接引用

将 jar 包放到 jmeter 文件下的\lib\ext 下

软件测试:通过jmeter完成对请求字段的加密

3、添加一个加密请求

ps:本文将以登录接口中的密码,进行讲解

软件测试:通过jmeter完成对请求字段的加密

4、在登录请求下,添加前置处理器,并完成对密码的加密

为什么要加前置处理器呢??

因为我们登录要用的是加密后的密码,所以必须要在请求发送之前就已经把密码加密好了。

软件测试:通过jmeter完成对请求字段的加密

代码如下:

import com.lemon.encryption.RSAManager;

String code = RSAManager.encryptWithBase64("520lemon");

vars.put("pwd",code);

PS:下图为使用 rar 软件打开 jar 包,右键点击 jar 包,选择打开方式,找到加密类

软件测试:通过jmeter完成对请求字段的加密

5、登录请求调用已经加密好的字符串

软件测试:通过jmeter完成对请求字段的加密

6、添加监听器-> 察看结果树,对返回数据进行确认。

软件测试:通过jmeter完成对请求字段的加密
软件测试:通过jmeter完成对请求字段的加密

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK