POSTMAN使用

POSTMAN使用

解密响应报文

说明

使用test执行脚本,处理数据。并将结果展示在visuilize中,可以显示html,可以做自定义折叠。公共脚本可以放在globals中,在每个collectionTest引用即可

Globals导出json

json 复制代码
{
	"id": "146e52f0-fd32-4814-8e58-8a3c0f4d5eb7",
	"values": [
		{
			"key": "ENV",
			"value": "test",
			"enabled": true
		},
		{
			"key": "decrypt_data",
			"value": "true",
			"enabled": true
		},
		{
			"key": "pretty_data",
			"value": "fold",
			"enabled": true
		},
		{
			"key": "Decrypt",
			"value": "function Decrypt(param){\n\n    let key_str = pm.globals.get(\"ENV\") == \"test\" ? \"xxxxx\" : \"xxxxx\"\n  let iv_str = pm.globals.get(\"ENV\") == \"test\" ? \"xxxxx\" : \"xxxxx\"\n\n    const KEY = CryptoJS.enc.Utf8.parse(key_str);\n    const IV = CryptoJS.enc.Utf8.parse(iv_str);\n    let key = KEY;\n    let iv = IV;\n    const srcs = CryptoJS.enc.Base64.parse(param.replace(/\\s+/g,''));\n    const decryptedWordArray = CryptoJS.TripleDES.decrypt({\"ciphertext\":srcs}, key, {\n        iv: iv,\n        mode: CryptoJS.mode.CBC, // 或者使用 CBC 模式:CryptoJS.mode.CBC\n        padding: CryptoJS.pad.Pkcs7\n    });\n    const decryptedStr = decryptedWordArray.toString(CryptoJS.enc.Utf8)\n    return decryptedStr;\n}",
			"enabled": true
		},
		{
			"key": "Encrypt",
			"value": "function Encrypt(param){\n\n\n    let key_str = pm.globals.get(\"ENV\") == \"test\" ? \"xxxxx\" : \"xxxxx\"\n  let iv_str = pm.globals.get(\"ENV\") == \"test\" ? \"xxxxx\" : \"xxxxx\"\n\nconst KEY = CryptoJS.enc.Utf8.parse(key_str);\nconst IV = CryptoJS.enc.Utf8.parse(iv_str);\n    let key = KEY;\n    let iv = IV;\n\n    const decryptedWordArray = CryptoJS.TripleDES.encrypt(param, key, {\n        iv: iv,\n        mode: CryptoJS.mode.CBC, // 或者使用 CBC 模式:CryptoJS.mode.CBC\n        padding: CryptoJS.pad.Pkcs7\n    });\n\n    const decryptedStr = decryptedWordArray.ciphertext.toString(CryptoJS.enc.Base64)\n    return decryptedStr;\n}",
			"enabled": true
		},
		{
			"key": "prettyJsonVisualizer",
			"value": "function prettyJsonVisualizer(data) {\n    return `\n<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <style>\n        body {\n            font-family: monospace;\n            font-size: 13px;\n        }\n        details {\n            margin-left: 16px;\n        }\n        summary {\n            cursor: pointer;\n            font-weight: bold;\n            color: #1f2937;\n        }\n        .key {\n            color: #0f766e;\n        }\n        .string {\n            color: #2563eb;\n        }\n        .number {\n            color: #7c3aed;\n        }\n        .boolean {\n            color: #dc2626;\n        }\n        .null {\n            color: #6b7280;\n        }\n    </style>\n</head>\n<body>\n    <div id=\"json\"></div>\n\n<script>\nfunction render(value) {\n    if (value === null) {\n        return '<span class=\"null\">null</span>';\n    }\n\n    if (typeof value === 'string') {\n        return '<span class=\"string\">\"' + value + '\"</span>';\n    }\n\n    if (typeof value === 'number') {\n        return '<span class=\"number\">' + value + '</span>';\n    }\n\n    if (typeof value === 'boolean') {\n        return '<span class=\"boolean\">' + value + '</span>';\n    }\n\n    if (Array.isArray(value)) {\n        return '<details>' +\n            '<summary>Array[' + value.length + ']</summary>' +\n            value.map(v => '<div>' + render(v) + '</div>').join('') +\n        '</details>';\n    }\n\n    if (typeof value === 'object') {\n        const keys = Object.keys(value);\n        return '<details open>' +\n            '<summary>Object{' + keys.length + '}</summary>' +\n            keys.map(k =>\n                '<div><span class=\"key\">' + k + '</span>: ' +\n                render(value[k]) + '</div>'\n            ).join('') +\n        '</details>';\n    }\n\n    return value;\n}\n\ndocument.getElementById('json').innerHTML = render(${JSON.stringify(data)});\n</script>\n</body>\n</html>\n`;\n}\n\nprettyJsonVisualizer;",
			"enabled": true
		},
		{
			"key": "res_handle",
			"value": "function res_handle(res){\neval(pm.globals.get(\"Decrypt\"))\n\nif(res.status == 0 && pm.globals.get(\"decrypt_data\") == 'true'){\n    \nlet raw = Decrypt(res.data);\n\n// 如果 response 本身是 JSON 字符串\nlet json;\ntry {\n    json = typeof raw === 'string' ? JSON.parse(raw) : raw;\n} catch (e) {\n    json = { raw };\n}\nif(pm.globals.get(\"pretty_data\") == 'fold'){\n    eval(pm.globals.get(\"prettyJsonVisualizer\"))\nreturn prettyJsonVisualizer(json)\n}else if(pm.globals.get(\"pretty_data\") == 'json'){\nreturn `<pre>${JSON.stringify(json,null,2)}</pre>`\n}else{\nreturn `<pre>${JSON.stringify(json)}</pre>`\n}\n}\n}",
			"enabled": true
		}
	],
	"name": "My Workspace Globals",
	"_postman_variable_scope": "globals",
	"_postman_exported_at": "2025-12-31T08:03:38.975Z",
	"_postman_exported_using": "Postman/7.17.0"
}
相关推荐
弹简特2 小时前
【精通Postman接口测试】01-基础理论+安装使用+项目实战+接口关联(万字图文,零基础保姆级)
测试工具·postman·接口关联
武帝为此17 小时前
【Selenium 屏幕截图】
python·selenium·测试工具
武帝为此1 天前
【Selenium 执行 JavaScript】
javascript·selenium·测试工具
llilian_161 天前
晶体频率测试仪 破解晶振品控核心难题:晶体频率网络测试仪深度解析 晶体网络分析仪
网络·功能测试·单片机·嵌入式硬件·测试工具·51单片机
深念Y1 天前
从 Playwright/Selenium 到指纹浏览器:浏览器自动化技术的进阶之路
selenium·测试工具·自动化·浏览器·账号·无头浏览器·指纹浏览器
Johnstons1 天前
Wireshark ExpertInfo是什么?一文讲透异常分级、适用场景、和传统抓包阅读的区别与排查标准
网络·测试工具·wireshark·es
我的xiaodoujiao1 天前
API 接口自动化测试详细图文教程学习系列16--项目实战演练3
python·学习·测试工具·pytest
我的xiaodoujiao2 天前
API 接口自动化测试详细图文教程学习系列15--项目实战演练2
python·学习·测试工具·pytest
LT10157974442 天前
2026年低代码自动化测试平台选型指南:降低测试落地门槛
测试工具·低代码·自动化
llilian_162 天前
晶振测量仪 晶振频率测试仪器的多领域应用解析 晶振频率测试仪器
功能测试·单片机·嵌入式硬件·测试工具·51单片机