ใน postman จะมีการรองรับตัวแปรในขอบเขตที่แตกต่างกัน โดยขอบแต่ของตัวแปรแต่ละจะมีผลต่อการประมวลผลทั้งสิ้น การเลือกใช้ขอบเขตของตัวแปรจะช่วยให้เราปรับแต่งการประมวลผลให้เหมาะกับงานการพัฒนา การทดสอบ และการทำงานที่หลากหลาย

ขอบเขตใน postman นั้น จะขึ้นอยู่กับบริบทต่างๆ ที่ request ของเราที่เรียกใช้ โดยขอบเขตตัวแปรแต่ละแบบจะเหมาะกับงานที่แตกต่างกัน

ขอบเขตของตัวแปร (Variable scopes)

เราจะเรียงลำดับขอบเขตของตัวแปร จาก กว้างที่สุดไปแคบที่สุด ได้แก่: global, collection, environment, data, and local.

Global variables 

ตัวแปรประเภท Global เป็นตัวแปรที่ช่วยให้เราสามารถเข้าถึงข้อมูลระหว่าง collections, request, test scripts, และ environments แบบ global variables ได้ ซึ่งตัวแปรประเภทนี้จะสามารถถูกเรียกใช้งานได้ทั้ง workspace

เนื่องจากมันเป็นประเภทตัวแปรที่มีขอบเขตกว้างที่สุดใน postman จึงเหมาะการใช้งานสำหรับการทดสอบ และการเขียน test script ในตอนแรก แต่เมื่อเราสร้าง test script เสร็จแล้ว ค่อยเปลี่ยนไปใช้ตัวแปรประเภทอื่นที่เฉพาะเจาะจงมากขึ้น

Collection variables

ตัวแปรประเภท collection จะใช้งานได้เฉพาะใน collection เท่านั้น และไม่ขึ้นกับ environments ตัวแปรใน collection จะไม่เปลี่ยนแปลงตาม environment ที่เลือก

จริงๆ แล้ว ตัวแปร collection เหมาะกับการใช้งานใน environment เดียว เช่น auth หรือ URL

Environment variables

ตัวแปรแบบ environment ถูกสร้างมาเพื่อช่วยให้เราสามารถกำหนดขอบเขตงานของเราให้สามารถใช้งานบน environment ที่แตกต่างกันได้ เช่น dev, test, production เป็นต้น

แต่หากเรามี environment เดียว ให้ใช้ตัวแปรแบบ collection จะดีกว่า แต่ environment จะช่วยให้เราระบุระดับการเข้าถึงตามบทบาทได้  (role-based access levels.)

Data variables

ตัวแปรแบบ data จะเป็นตัวแปรที่มาจากข้างนอก โดยใน postman เราสามารถสร้างไฟล์ CSV หรือ JSON จากข้างนอกเพื่อกำหนดชุดข้อมูลที่คุณสามารถใช้งานได้

เมื่อเรียกใช้ collections ผ่าน Newman หรือ Collection Runner ตัวแปรแบบ data จะเป็นข้อมูลปัจจุบันเสมอ ซึ่งมีขอบเขตของตัวแปรจะเข้าถึงได้ แค่ในระดับของ request หรือตอน run collection เท่านั้น

Local variables

ตัวแปรแบบ Local คือ ตัวแปรชั่วคราวที่เข้าถึงได้ใน script ที่อยู่ใน request ของเราเท่านั้น ค่าของตัวแปรนี้ จะถูกกำหนดขอบเขตไว้ที่ request เดียว (single request) หรือตอนที่เราสั่ง run collection และไม่สามารถใช้ตัวแปรนั้นได้อีกต่อไป เมื่อการเรียกใช้เสร็จสมบูรณ์

เราสามารถใช้งานตัวแปร local ในกรณีที่ เราต้องการนำค่าจาก scope อื่นๆ ใช้งานบางอย่าง แต่ไม่ต้องการให้เก็บค่านั้นไว้ หลังจากที่ script ใน request นั้น ทำงานเสร็จแล้ว

Variable scope
https://learning.postman.com/docs/sending-requests/variables/#variable-scopes

หากมีการประกาศตัวแปรที่มีชื่อเดียวกันในขอบเขตที่ต่างกันสองขอบเขต ค่าที่จัดเก็บไว้ในตัวแปรที่มีขอบเขตเล็กที่สุดจะถูกนำมาใช้ ตัวอย่างเช่น หากมีตัวแปรร่วมชื่อ username และตัวแปรใน local ชื่อ username ระบบจะใช้ค่าใน local มาใช้ เมื่อเรา run request

ตัวแปรของ postmant ที่เก็บค่าเป็นสตริง หากเราจัดเก็บ objects หรือ array อย่าลืมใช้คำสั่ง JSON.stringify() ก่อนจัดเก็บ และ JSON.parse() เมื่อต้องการดึงข้อมูลไปใช้


References

Store and reuse values using variables | Postman Learning Center
Store and reuse values using variables: documentation for Postman, the collaboration platform for API development. Create better APIs—faster.