postman自定義函數(shù)實(shí)現(xiàn) 時(shí)間函數(shù)的思路詳解
Postman說明
Postman是一種網(wǎng)頁調(diào)試與發(fā)送網(wǎng)頁http請求的chrome插件。我們可以用來很方便的模擬get或者post或者其他方式的請求來調(diào)試接口。
Postman背景介紹
用戶在開發(fā)或者調(diào)試網(wǎng)絡(luò)程序或者是網(wǎng)頁B/S模式的程序的時(shí)候是需要一些方法來跟蹤網(wǎng)頁請求的,用戶可以使用一些網(wǎng)絡(luò)的監(jiān)視工具比如著名的Firebug等網(wǎng)頁調(diào)試工具。今天給大家介紹的這款網(wǎng)頁調(diào)試工具不僅可以調(diào)試簡單的css、html、腳本等簡單的網(wǎng)頁基本信息,它還可以發(fā)送幾乎所有類型的HTTP請求!Postman在發(fā)送網(wǎng)絡(luò)HTTP請求方面可以說是Chrome插件類產(chǎn)品中的代表產(chǎn)品之一。
Postman的操作環(huán)境
postman適用于不同的操作系統(tǒng),Postman Mac、Windows X32、Windows X64、Linux系統(tǒng),還支持postman 瀏覽器擴(kuò)展程序、postman chrome應(yīng)用程序等。
一:主要內(nèi)容
•postman環(huán)境變量方式封裝格式化日期函數(shù):yyyy-MM-dd HH:mm:ss
•postman利用moment模塊實(shí)現(xiàn)格式化日期函數(shù):yyyy-MM-dd HH:mm:ss
二:postman環(huán)境變量方式封裝格式化日期函數(shù),如輸出:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 23:59:59
1. 配置globals全局變量
打開postman的全局變量globals配置頁面,配置variable為(自定義命名,后期調(diào)用時(shí)名稱統(tǒng)一即可):format_time,配置current value為如下(下面就是普通的js代碼,用于實(shí)現(xiàn)格式化日期功能):
Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小時(shí)
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
var timeNow = new Date().Format("yyyy-MM-dd HH:mm:ss");
如圖所示:

2. 調(diào)用全局變量,獲取格式化好的時(shí)間值,并存儲該值到環(huán)境變量中,供接口使用該值
上面的那段js代碼其實(shí)也是可以直接放在tests或者pre-request script中使用的,之所以我把它放在全局變量里,是為了復(fù)用方便,因?yàn)槲覀冊谧稣麄€(gè)接口自動化框架的時(shí)候,可能不止一個(gè)接口會用到這個(gè)格式化函數(shù),那么是不是所有用到的接口我都要在tests或pre-request script拷貝這么一大長串的js代碼呢,這樣會顯得腳本很冗長,所以為了復(fù)用方便,我把那段冗長的js代碼放在了全局變量中,只需要寫一次,其他用到的地方,直接調(diào)用即可,當(dāng)然通過這個(gè)方法,你可以實(shí)現(xiàn)任何你想要的函數(shù)的封裝
在需要使用的接口預(yù)處理腳本中即pre-request script中,調(diào)用這個(gè)全局變量,并將獲取的格式化日期值設(shè)置環(huán)境變量,這樣該接口就能獲取當(dāng)前格式化好的時(shí)間了
腳本如下:
//獲取當(dāng)前時(shí)間,并設(shè)置環(huán)境變量
eval(globals.format_time);
pm.environment.set("timeNow",timeNow);
如圖所示:

3. 接口使用該值
在需要獲取當(dāng)前格式化時(shí)間的地方,直接使用:{{timeNow}},的方式就能獲取當(dāng)前值

當(dāng)接口運(yùn)行以后,我們可以在環(huán)境變量中看到當(dāng)前取值:

備注:如果想要獲取格式化格式為:yyyy-MM-dd 23:59:59或yyyy-MM-dd 00:00:00,則只需要將上面2中pre-request script腳本改成如下即可:
//獲取當(dāng)前時(shí)間,并設(shè)置環(huán)境變量
eval(globals.format_time);
pm.environment.set("timeNow",timeNow);
//獲取當(dāng)前時(shí)間到時(shí)分秒
var dateNow = pm.environment.get("timeNow");
//切割拿到日期加上固定開始結(jié)束的時(shí)分秒
var startTime = dateNow.split(" ")[0]+" 00:00:00";
var endTime = dateNow.split(" ")[0]+" 23:59:59";
//設(shè)置環(huán)境變量開始時(shí)間和結(jié)束時(shí)間
pm.environment.set("startTime",startTime);
pm.environment.set("endTime",endTime);
然后在需要的地方直接引用對應(yīng)的環(huán)境變量即可:


三:postman利用moment模塊實(shí)現(xiàn)格式化日期函數(shù),如輸出:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 23:59:59、yyyy-MM-dd 00:00:00
上面二的方法只是一個(gè)思路,提供給你一種postman自定義函數(shù)的思維,三是針對時(shí)間函數(shù)另一種實(shí)現(xiàn)方案
只需要在需要的接口的tests或pre-request script腳本中編寫如下代碼即可:
//調(diào)用moment模塊
const moment = require('moment')
//格式化日期YYYY-MM-DD 23:59:59和YYYY-MM-DD 00:00:00
pm.environment.set("startTime", moment("00:00:00","HH:mm:ss").format('YYYY-MM-DD HH:mm:ss'));
pm.environment.set("endTime", moment("23:59:59","HH:mm:ss").format('YYYY-MM-DD HH:mm:ss'));
//格式化日期YYYY-MM-DD HH:mm:ss
pm.environment.set("timeNow", moment().format('YYYY-MM-DD HH:mm:ss'));
然后在需要的地方進(jìn)行引用即可


取值結(jié)果:

總結(jié)
以上所述是小編給大家介紹的postman自定義函數(shù)實(shí)現(xiàn) 時(shí)間函數(shù)的思路詳解 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
JavaScript實(shí)現(xiàn)快速排序的方法分析
這篇文章主要介紹了JavaScript實(shí)現(xiàn)快速排序的方法,結(jié)合實(shí)例形式分析了快速排序的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-01-01
一文熟練掌握J(rèn)avaScript中Object.keys()與Object.values()的實(shí)用技巧
本文詳細(xì)介紹了JavaScript中Object.keys()和Object.values()方法的使用方法、功能及應(yīng)用場景,通過實(shí)例展示了如何使用這些方法進(jìn)行對象的遍歷、復(fù)制、比較和屬性計(jì)算等操作,需要的朋友可以參考下2025-01-01
JS實(shí)現(xiàn)窗口加載時(shí)模擬鼠標(biāo)移動的方法
這篇文章主要介紹了JS實(shí)現(xiàn)窗口加載時(shí)模擬鼠標(biāo)移動的方法,涉及javascript鼠標(biāo)事件的相關(guān)技巧,需要的朋友可以參考下2015-06-06
JavaScript setTimeout()基本用法有哪些
這篇文章主要介紹了JavaScript setTimeout()基本用法有哪些,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
elementui的select實(shí)現(xiàn)多選添加功能
這篇文章主要介紹了elementui的select實(shí)現(xiàn)多選添加功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
D3.js實(shí)現(xiàn)散點(diǎn)圖和氣泡圖的方法詳解
這篇文章將會給大家介紹了另外兩種可視化圖表,利用D3.js實(shí)現(xiàn)散點(diǎn)圖和氣泡圖,文章通過多個(gè)方面介紹的非常詳細(xì),下面來一起看看吧。2016-09-09
JS,Jquery獲取select,dropdownlist,checkbox下拉列表框的值(示例代碼)
本篇文章主要是對JS,Jquery獲取select,dropdownlist,checkbox下拉列表框的值(示例代碼)進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01

