首頁 > 軟體

Postman全域性註冊方法及對返回資料視覺化處理

2023-02-12 06:01:04

1.全域性方法註冊及使用

1.1 註冊

在collection最外層中Pre-request Script中編寫全域性方法

// 開發者本機ip
const globalDevIp = 'http://172.16.65.46:9191'
// 全域性變數
pm.globals.set("variable_key", "variable_value");
var moment = require('moment');
var date = new Date();
date = moment(date).format("YYYY-MM-DD HH:mm:ss");
var transNo = moment(date).format("YYYYMMDDHHmmss");
pm.environment.set("req_time", date);
pm.environment.set("transNo", transNo);
pm.environment.set('globalDevIp', globalDevIp)
// 註冊全域性方法
pm.globals.set('loadUtils', function loadUtils() {
    let utils = {
        // 獲取個人編號-依賴於HT000-獲取個人/企業資料(先執行HT000)
        getPerson: (name) => {
            try {
                let globalPerson = pm.environment.get('globalPerson');
                if (globalPerson && globalPerson.length == 32) {
                    return globalPerson
                }
                let tempObj = pm.environment.get('psersonAccountMap');
                if (typeof tempObj == 'object') {
                    return tempObj[name || globalPerson].id
                } else {
                    throw(new Error('在全域性設定的HT000中,設定全域性個人編號'))
                }
            } catch(e) {
                const errorMsg = '獲取全域性個人編號失敗,' + (e.message || e)
                console.error(errorMsg)
                throw(new Error(errorMsg))
            }
        },
        // 設定bizContent和sign簽名
        setBizContent: (biz_content) => {
            ...
        },
        // 視覺化結果
        devRedirectUrl(url) {
            if (!url && !url.includes('?')) return
            const ip = pm.environment.get('globalDevIp')|| pm.environment.get('api_url_prefix')
            const temp = url.split('?')[1].replace('&timestamp', '&timestamp')
            const redirectUrlWebs = ip + '/#/webs?'+ temp
            const redirectUrlApp = ip + '/#/app?'+ temp
            /* ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓【開發專用--重定向】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ */
            pm.visualizer.set(`
            <div style="width: 100vw; height: 100vh; font-family: monospace; color:blue; word-bread: pre-wrap; ">
                <textarea style="width: 100vw; height: 30%; " readonly>${redirectUrlWebs}</textarea>
                <textarea style="width: 100vw; height: 30%; " readonly>${redirectUrlApp}</textarea>
            </div>
            `)
            /* ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑【開發專用--重定向】↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ */
        }
    };
    return utils;
} + '; loadUtils();');
console.log('全域性方法已經註冊')

1.2全域性方法使用

在業務請求中的Pre-request Script引入方法, 如:

const utils = eval(globals.loadUtils); // 全域性方法引入
// 獲取預設個人ID;不傳參,取預設值,可傳參:utils.getPerson('賬號') 
let personSignerId = utils.getPerson()

2. 視覺化

以下內容是工作中碰到的一個繁瑣操作,存取介面後,返回結果的帶域名地址替換本機ip,然後瀏覽器開啟替換後的地址→進行偵錯。

PS: 手動修改雖然步驟不多,但每次都要去修改,作為一名合格的懶人,想著對結果進行二次修改後進行展示。對返回結果進行二次處理後,並視覺化,方便複製。

另:其實還有更進一步的想法,就是呼叫介面後,對資料二次處理後,通過postman軟體直接開啟chrome瀏覽器存取目標地址。但目前沒有找到該實現方法,有大佬知道的可以指導一下。

視覺化操作如下:

在業務請求的Tests中,編寫方法或者全域性方法註冊

const redirectUrlApp = JSON.parse(responseBody)
pm.visualizer.set(`
<div style="width: 100vw; height: 100vh; font-family: monospace; color:blue; word-bread: pre-wrap; ">
    <textarea style="width: 100vw; height: 30%; " readonly>${redirectUrlApp}</textarea>
</div>
`)
或者
let template = `
  <div>
    <h3>name:{{response.name}}</h3>
    <h3>partition:{{response.partition}}</h3>
  </div>
`;
pm.visualizer.set(template, {
    response: JSON.parse(responseBody)
});

頁面展示在Body下的Visualize,在視覺化視窗中,很方便就能全選複製地址

以上就是Postman全域性註冊方法及對返回資料視覺化處理的詳細內容,更多關於Postman全域性註冊資料視覺化的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com