2026/1/11 4:57:28
网站建设
项目流程
seo查询网站,遵义广告公司网站建设,搜索竞价,hao1123网址之家在使用postman进行接口测试的时候#xff0c;对于有些接口字段需要时间戳加密#xff0c;这个时候我们就遇到2个问题#xff0c;其一是接口中的时间戳如何得到#xff1f;其二就是对于现在常用的md5加密操作如何在postman中使用代码实现呢#xff1f; 下面我们以一个具体的…在使用postman进行接口测试的时候对于有些接口字段需要时间戳加密这个时候我们就遇到2个问题其一是接口中的时间戳如何得到其二就是对于现在常用的md5加密操作如何在postman中使用代码实现呢下面我们以一个具体的接口例子来进行说明。首先来看看我们的接口文档信息如图所示此接口文档中需要三个参数customercode、timestamp和itoken是customerCodetimestampytoken加密后的结果。第一次操作的时候我们使用postman会这样操作如图这样操作流程是选择提交方式是post输入接口的url地址选择接口情况的方式是x-www-form-urlencoded设置接口的参数customerCode、timestamp和itoken和值设置完成之后点击send发送查看接口响应结果说明x-www-form-urlencoded即是application/x-www-from-urlencoded将表单内的数字转换为键对值postman中 form-data、x-www-form-urlencoded、raw、binary的区别postman中 form-data、x-www-form-urlencoded、raw、binary的区别_postman from-data-CSDN博客时间戳转换工具Unix时间戳(Unix timestamp)转换工具 - 站长工具md5加密工具MD5在线加密 - MD5加密工具 - MD5在线生成这样创建会话的接口我们就完成了但是为了系统的安全性这里的timestamp是每30分钟就会过期的下次我们又需要重新设置timestamp就是md5加密的结果......这样操作岂不是太麻烦?还好postman中Pre-Request Script可以在 Request 之前自定义请求数据这样做的好处就是可以以嵌入脚本的方式动态准备测试数据并根据业务需求设计测试用例。这里我们仍继续以上面的用例为例在postman中如何才能获取当前机器上的timestamp呢Math.round(new Date().getTime())可以满足我们的要求!!!那代码如何实现呢//设置当前时间戳毫秒postman.setGlobalVariable(timestamp,Math.round(new Date().getTime()));这样就将获取的时间戳设置为全局变量timestamp我们知道itoken的值是md5(customerCodetimestampytoken)那么接下来就可以动态的获取md5的信息了代码如下://发起请求之前获取当前的时间戳放在参数里//postman.setGlobalVariable(customerCode,***2345677***);//1.设置环境变量 postman.setEnvironmentVariable(key, value);//2.设置全局变量 postman.setGlobalVariable(key, value);//environment.customerCode ***2345677***;customerCode postman.getGlobalVariable(customerCode);//设置当前时间戳毫秒postman.setGlobalVariable(timestamp,Math.round(new Date().getTime()));//environment.timestamp Math.round(new Date().getTime());//postman.setEnvironmentVariable(unixtime_now,timecode);//var jsonData JSON.parse(request.data.applyJsonStr);//postman.setGlobalVariable(ytoken,*********b176a4739bfccb*********);//获取全局变量//如postman.getGlobalVariable(key);customerCode postman.getGlobalVariable(customerCode);timestamp postman.getGlobalVariable(timestamp);ytoken postman.getGlobalVariable(ytoken);var str customerCodetimestampytoken;//postman.setEnvironmentVariable(str,str);//environment.str str;postman.setGlobalVariable(str,str);//var md5 CryptoJS.MD5(str).toString().toLowerCase();//使用md5加密//var strmd5 CryptoJS.MD5(str).toString();var strmd5 CryptoJS.MD5(str);//environment.strmd5 strmd5;postman.setGlobalVariable(md5,strmd5);//environment.md5 md5;//timecodeSystem.currentTimeMillis();console.log(str);而在接口请求中就可以使用已经定义好的变量来进行接口操作代码如下customerCode:{{customerCode}}timestamp:{{timestamp}}ltoken:{{md5}}如图所示这样下次创建接口的时候直接运行该用例即可不用再次修改参数值(≧▽≦)/那么我们如何才能知道该接口用例是成功的呢该怎么断言呢这里列出我该接口断言的一个示例代码如下/*// 推荐用全等 确保类型和值都一致tests[Status code is 200] responseCode.code 200;// 判断是否存在 success 值tests[Body matches code] responseBody.has(0);var jsonData JSON.parse(responseBody);postman.setEnvironmentVariable(sessionId,jsonData.result);tests[[INFO] Request params: ${JSON.stringify(request.data)}] true;tests[have result ]jsonData.hasOwnProperty(error)!true;tests[[INFO] Response timeout: ${responseTime}] responseTime 6000;**///状态代码是200if(responseCode.code 200){// 判断是否存在 success 值检查响应体包含一个字符串tests[Body matches code] responseBody.has(0);//响应结果中result保存为全局变量sessonIdvar jsonData JSON.parse(responseBody);postman.setGlobalVariable(sessionId,jsonData.result);//输入接口参数信息tests[[INFO] Request params: ${JSON.stringify(request.data)}] true;// tests[have result ]jsonData.hasOwnProperty(error)!true;//判断接口响应结果有resulttests[have result ]jsonData.hasOwnProperty(result)true;//判断接口响应时间小于N秒tests[[INFO] Response timeout: ${responseTime}] responseTime 6000;}else{//接口请求失败tests[WaringRequest Failed. Please Fix!] false;}这样创建会话的接口就完成了感谢每一个认真阅读我文章的人作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。