Apifox公共腳本根據(jù)當(dāng)前環(huán)境設(shè)置環(huán)境變量值

一、背景

考慮到公共腳本設(shè)置的環(huán)境變量,每次切換環(huán)境時(shí)要重新修改test,dev,pro的值;故寫個(gè)根據(jù)當(dāng)前環(huán)境自動(dòng)變化前置URL的值,來達(dá)到便捷的目的!

二、腳本更新部分,在頂部多加一條獲取當(dāng)前環(huán)境前置URL

// 獲取當(dāng)前環(huán)境前置URL

let host = pm.request.url.getHost()

var qzurl =host

// 定義發(fā)送登錄接口請(qǐng)求方法

function sendLoginRequest() {

? ? // 獲取環(huán)境里的 前置URL,+qzurl+拼接該變量

? ? pm.environment.set("BASE_URL", "https://"+qzurl+"/framework");

? ? const baseUrl = pm.environment.get("BASE_URL");

? ? console.log(baseUrl)

三、原始腳本部分

? ? // 登錄用戶名,這里從環(huán)境變量 LOGIN_USERNAME 獲取,也可以寫死(但是不建議)

? ? const username = pm.environment.get("YG_USERNAME");

? ? // 登錄用戶名,這里從環(huán)境變量 LOGIN_PASSWORD 獲取,也可以寫死(但是不建議)

? ? const password = pm.environment.get("YG_PASSWORD");

? ? // 構(gòu)造一個(gè) POST x-www-form-urlencoded 格式請(qǐng)求。這里需要改成你們實(shí)際登錄接口的請(qǐng)求參數(shù)。

? ? const loginRequest = {

? ? ? ? url: baseUrl + "/api/v1/users/login",

? ? ? ? method: "POST",

? ? ? ? // body 為 json 格式

? ? ? ? header: {

? ? ? ? ? ? "Content-Type": "application/json",

? ? ? ? ? ? "tenant": "lfc",

? ? ? ? ? ? // 注意:header 需要加上 Content-Type

? ? ? ? },

? ? ? ? body: {

? ? ? ? ? ? mode: 'raw',// 此處為 raw

? ? ? ? ? ? raw: JSON.stringify({ username: username, password: password }), // 序列化后的 json 字符串

? ? ? ? }

? ? };

? ? // 發(fā)送請(qǐng)求。

? ? // pm.sendrequest 參考文檔: https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-sendrequest

? ? pm.sendRequest(loginRequest, function (err, res) {

? ? ? ? if (err) {

? ? ? ? ? ? console.log(res);

? ? ? ? ? ? console.log(err);

? ? ? ? } else {

? ? ? ? ? ? // 讀取接口返回的 json 數(shù)據(jù)。

? ? ? ? ? ? // 如果你的 token 信息是存放在 cookie 的,可以使用 res.cookies.get('token') 方式獲取。

? ? ? ? ? ? // cookies 參考文檔:https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-cookies

? ? ? ? ? ? const jsonData = res.json();

? ? ? ? ? ? console.log(jsonData);

? ? ? ? ? ? // 將 accessToken 寫入環(huán)境變量 ACCESS_TOKEN

? ? ? ? ? ? pm.environment.set("YG_ACCESS_TOKEN", jsonData.data.accessToken);

? ? ? ? ? ? // // 將 accessTokenExpires 過期時(shí)間寫入環(huán)境變量 ACCESS_TOKEN_EXPIRES

? ? ? ? ? ? // pm.environment.set(

? ? ? ? ? ? // ? ? "ACCESS_TOKEN_EXPIRES",

? ? ? ? ? ? // ? ? jsonData.data.updateTime

? ? ? ? ? ? // );

? ? ? ? }

? ? });

}

// 獲取環(huán)境變量里的 ACCESS_TOKEN

const accessToken = pm.environment.get("YG_ACCESS_TOKEN");

// // 獲取環(huán)境變量里的 ACCESS_TOKEN_EXPIRES

// const accessTokenExpires = pm.environment.get("ACCESS_TOKEN_EXPIRES");

// 如 ACCESS_TOKEN 沒有值,或 ACCESS_TOKEN_EXPIRES 已過期,則執(zhí)行發(fā)送登錄接口請(qǐng)求

// if (

// ? ? !accessToken ||

// ? ? (new Date(accessTokenExpires) <= new Date())

// )

{sendLoginRequest();}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容