Postman接口自动化测试之— 请求参数进行MD5/SHA256摘要计算

在接口测试过程时常需要的参数是MD5/SHA值,那个值是怎么来的,我们怎样才能获取这样的数值呢?
摘要的定义,请参阅鄙人另一篇博客
Jmeter接口测试:shell脚本实现sha256算法加密
https://blog.csdn.net/qq19970496/article/details/102804407
今天给大家介绍在postman中如何计算摘要值。
共两步:
1、在预置请求脚本中添加摘要计算代码,并将计算值赋给全局变量。

//对变量进行清空处理
pm.globals.unset("str");
pm.globals.unset("md5");

var str = "Postman中对请求参数进行MD5摘要计算。";
postman.setGlobalVariable("str",str);

//对字符串进行MD5摘要计算
var strmd5 = CryptoJS.MD5(str);
postman.setGlobalVariable('md5',strmd5);

//控制台显示MD5计算结果
console.log("md5:"+strmd5);


//对字符串进行SHA256摘要计算
var SHA256 = CryptoJS.SHA256(str);
postman.setGlobalVariable('SHA256',SHA256);

//控制台显示MD5计算结果
console.log("SHA256:"+SHA256);

2、在请求参数中添加预置请求脚本中的变量,发送请求
在这里插入图片描述
点击“Postman Console”图标,打开控制台界面,每执行一次请求数据都会被记录到控制台中。
在这里插入图片描述
在这里插入图片描述

### 配置 Postman 测试支付宝沙箱接口 要在 Postman 中成功测试支付宝沙箱接口,需要完成以下几个方面的配置: #### 1. 获取必要的参数 在使用 Postman 调试之前,必须先获取到支付宝沙箱环境中所需的必要参数。这些参数通常包括但不限于 `app_id`、公私钥对以及签名方式等[^1]。 - **应用ID (`app_id`):** 登录开发者中心,在创建的应用详情页可以找到该值。 - **商户私钥与支付宝公钥:** 这些用于加密解密通信数据,确保交易安全。注意区分自己生成的 RSA 密钥对中的公钥和私钥[^3]。 #### 2. 设置请求体 (Request Body) 对于支付宝支付接口来说,无论是普通版本还是简化后的 easy 版本,都需要向其发送 POST 请求并附带一系列字段作为业务参数[^2]。以下是构建请求时所需的主要键值对及其含义说明: | 参数名 | 描述 | |--------------|----------------------------------------------------------------------------------------| | app_id | 应用唯一标识 | | method | 接口名称, 如 trade.create | | format | 数据格式,默认 JSON | | charset | 字符集编码 | | sign_type | 签名算法类型 | | timestamp | 时间戳 | | version | API 的版本号 | | notify_url | 异步通知地址 | | biz_content | 商业逻辑的具体内容,比如商品描述、订单金额 | 其中特别需要注意的是 `biz_content` ,它是一个 JSON 对象字符串形式表示的实际交易信息集合。 #### 3. 构建签名机制 为了防止篡改传输过程的数据包内容,每次发起调用前都得按照一定规则计算得出对应的数字摘要即所谓的 “sign”。具体流程如下所示: ```python import hashlib from urllib.parse import urlencode def generate_sign(params_dict, private_key): sorted_items = sorted(params_dict.items()) unsigned_string = urlencode(sorted_items).replace('+', '%20').replace('*', '%2A').replace('%7E', '~') # 将unsigned_string 和 私钥拼接起来再通过指定哈希函数处理得到最终结果 signed_message = f"{unsigned_string}{private_key}" hash_algorithm = hashlib.sha256() if params_dict['sign_type'] == 'RSA2' else hashlib.md5() hash_algorithm.update(signed_message.encode('utf8')) signature = base64.b64encode(hash_algorithm.digest()).decode() return signature ``` 上述代码片段展示了如何基于 Python 实现一个简单的签名生成功能^。 #### 4. 使用Postman模拟整个交互过程 打开 Postman 工具之后按顺序执行以下操作即可实现自动化测试目的: - 创建一个新的 POST 类型 HTTP 请求; - 输入目标 URL 地址(例如 https://openapi-sandbox.dl.alipaydev.com/gateway.do?); - 切换至 Headers 栏位添加 Content-Type:application/x-www-form-urlencoded 头部声明; - 在 Body -> form-data 或 raw 模式下填写所有必需项连同它们各自的数值; - 如果支持的话还可以额外附加 Authorization Bearer Token 来增强安全性验证级别; 最后点击 Send 键观察返回的结果状态码及实体部分是否存在预期错误提示或者成功的响应消息。 --- ### 注意事项 当遇到诸如异步回调失败等问题排查方向可能涉及多个方面,例如确认服务端是否允许外部网络连接访问本地部署的服务实例位置等等。 ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

索菲亚李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值