个人做网站给手机发短信,广告创意设计竞赛,城乡建设学校网站,营销型网站建设和平台建设项目A需要给项目B提供一个接口#xff0c;这个接口加密了#xff0c;现在需要测试这个接口#xff0c;需要怎么编写脚本呢#xff1f;实现接口签名的方式有两种#xff1a;BeanShell实现MD5加密和函数助手实现MD5加密#xff0c;之前已经分享过了函数助手实现MD5加密这个接口加密了现在需要测试这个接口需要怎么编写脚本呢实现接口签名的方式有两种BeanShell实现MD5加密和函数助手实现MD5加密之前已经分享过了函数助手实现MD5加密今天就来分享下BeanShell实现MD5加密。 一、接口信息
POST /api/agent-pid json请求参数 {
app_id:1,
timestamp:1667033841,
pid_num:2,
signxxxxxxxxxxxxxxxxx
} 算法 1、将请求参数按照键名进行升序排序需要带上时间戳
即app_id${app_id}pid_num${pid_num}timestamp${timestamp} 2、拼接秘钥将秘钥拼接在参数后面
即app_id${app_id}pid_num${pid_num}timestamp${timestamp}${key} 3、将拼接后的结果取md5值
即DigestUtils.md5Hex(app_id${app_id}pid_num${pid_num}timestamp${timestamp}${key}) 二、编写JMeter脚本 结构如下添加测试计划添加用户自定义变量app_idpid_num和key添加前置处理器BeanShell通过MD5加密得到请求参数sign添加线程组 添加http请求添加断言添加察看结果树。 一添加测试计划
右键文件--新建--测试计划 二添加用户定义的变量
选中测试计划右键--添加--配置元件--用户定义的变量 定义三个变量key请求参数app_id和pid_num 三添加前置处理器BeanShell
添加前置处理器BeanShell来定义两个变量timestamp和sign。
选中测试计划鼠标右键--添加--前置处理器--BeanShell PreProcessor新建成功命名为timestamp另一个变量sign方法类似。 1、时间戳timestamp
调用System.currentTimeMillis()函数即可获取时间戳具体代码如下
//获得系统的时间单位为毫秒,转换为秒
long timestamp1 System.currentTimeMillis()/1000; //将timestamp转化为string类型并复制给变量timestamp
vars.put(timestamp,timestamp1.toString()); 2、签名sign
主要用到md5Hex函数取MD5值具体代码如下
import org.apache.commons.codec.digest.DigestUtils; //将请求参数按照键名进行升序排序需要带上时间戳
//拼接秘钥将秘钥拼接在参数后面
String md5_str app_id${app_id}pid_num${pid_num}timestamp${timestamp}${key};
log.info(md5_str: md5_str); //将拼接后的结果取md5值
String sign DigestUtils.md5Hex(md5_str);
vars.put(sign,sign);
log.info(sign); 四添加线程组
鼠标右键测试计划添加--ThreadsUsers--线程组命名为test接口。 五添加HTTP请求
鼠标右键线程组--添加--Sample--HTTP请求命名为test接口请求填写方法、路径和请求参数的值四个请求参数分别为app_id,timestamp,sign,pid_num。 六添加响应断言
选中HTTP请求鼠标右键--添加--断言--响应断言即可添加成功 七添加察看结果树
选中HTTP请求鼠标右键--添加--监听器--察看结果树即可查看响应结果。 这样一个结果脚本就完成了。 我是程序员馨馨全网ID唯一转载请注明出处。