2023/09/23

Postman Interrupt Request By Environment-detecting

ไฝฟ็”จ postman ่ฃฝไฝœ API ๆธฌ่ฉฆๆ™‚,ๆœ‰ไบ›ๆกˆไพ‹ๅฏ่ƒฝไธๆ‡‰่ฉฒๅœจ production ็š„ๆƒ…ๆณๅŸท่กŒ,ไพ‹ๅฆ‚ๆ–ฐๅขžๆˆ–ไฟฎๆ”นไธ€ไบ›ๆœƒๅฝฑ้ŸฟๆญฃๅผไธปๆฉŸไฝฟ็”จ่€…็š„่ณ‡ๆ–™,ไฝ† postman ๆœฌ่บซไธฆๆฒ’ๆœ‰ๅฏไปฅ่จญๅฎš้‚ฃไบ› API ๅœจๆŒ‡ๅฎš็š„็’ฐๅขƒๆ™‚ไธๅฏๅŸท่กŒๆˆ–่€…ๆ˜ฏ่ญฆๅ‘ŠๅŸท่กŒ,ๆˆ‘ๅ€‘ๅฏไปฅ้€้Ž Pre-request Script ๆ’ฐๅฏซ function ๅœจ Collection ็š„ๅฑค็ดš,ๅœจๅ„ๅ€‹ request ๅ…งๆ”พๅ…ฅ้™ๅˆถ。

Collection Pre-request Script

avoidExecuteFrom = (environment) => {
    const checkEnvironment = (value) => {
        if (pm.environment.name.includes(value)) {
            throw new Error(`forbidden in ${value}`)
        }
    };

    if (typeof environment === 'string') {
        checkEnvironment(environment);
    }

    if (Array.isArray(environment)) {
        environment.forEach(checkEnvironment);
    }
};

Request Pre-request Script

avoidExecuteFrom('staging');
avoidExecuteFrom(['production', 'staging'])

ๆˆ‘็š„ๅฐˆๆกˆ environment ๆœ‰ไธ‰ๅ€‹้…็ฝฎ,case-dev、case-staging、case-production,pm.environment.name ๅฏไปฅๆ‹ฟๅˆฐ environment name,้€ๅ‡บๅ‰ๅตๆธฌๆ˜ฏๅฆๆˆ‘ๅ€‘่ฆ้ฟๅ…ๅŸท่กŒ็š„็’ฐๅขƒๆ–‡ๅญ—ๆœ‰ๅŒ…ๅซๅœจๅ…ง,ๆœ‰็š„่ฉฑไพฟ็ฆๆญข้€ๅ‡บ。