Using variables (Environment) ระหว่าง API ใน Postman

KakyKad
Nov 17, 2020

--

เกร็ดเล็กๆน้อยๆของการรับ-ส่งค่าระหว่าง API ใน Postman ที่หลายๆคนอาจจะหลงลืมว่า เจ้าตัว Postman มีสิ่งนี้อยู่กับตัว

โดย Postman ก็มีการกำหนด scope ของการใช้ variables ได้แก่

  • Global
  • Collection
  • Environment
  • Data
  • Local

โดยวันนี้กาดเลือกใช้ Environment variables ในการรับส่งค่าระหว่างภายใน Collection ด้วยกันเอง มาเริ่มกันเลยยย ~

จงเปิด Application Postman ขึ้นมาาา ~

หลังจากเปิดตัวโปรแกรมของ Postman แล้วในแต่ละ Request ที่เราสร้างขึ้นมาจะมีหน้าตาแบบนี้ ให้ไปคลิกเลือกคำว่า “Tests”

เมื่อคลิกเข้าที่ Tests แล้วทางด้านขวามือของ Tests จะมี SNIPPETS ต่างๆขึ้นมาให้ ให้เลือก “Set an environment variable”

หลังที่คลิกแล้วจะขึ้น source code ขึ้นมา ดังนี้

pm.environment.set("variable_key", "variable_value");
  • variable_key => ตั้งชื่อตัวแปรที่เราจะเอาไว้เรียกใช้
  • variable_value => ค่าที่เราจะ assign ใส่ใน “variable_key”

Example

กาดมี API ที่จะใช้ต่อกันคือ submit order กับ confirm payment

pm.environment.set("order_id", jsonData.order_id);

กาดจะให้ value ของ order_id ที่ json response กลับมาเอาเก็บใส่ในตัวแปรที่กาดตั้งชื่อว่า order_id เพื่อเอาไว้ใช้สำหรับ API ตัวถัดไปของกาด

//Example set order_id
pm.test("OrderId is existed", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.order_id).to.exist;
pm.environment.set("order_id", jsonData.order_id);
});

จากนั้นกาดจะมาเปลี่ยนใน Request ของ API confirm payment ของกาด จากที่เป็นการ fix value ของเลข order_id

ให้เปลี่ยนจากตัวเลข 8004359104 ให้เป็นตัวแปรที่เรากำหนดใน set environment จากแรก คือ {{order_id}}

จากนั้นลอง run test script

จะเห็นว่าสามารถ run test ผ่านเหมือนเดิม ให้มาลองเลือกใน “submit order” เพื่อดูว่า response ที่ได้กลับมาเป็นเลข แ หรือไม่

จากนั้นให้มาดูที่ request ของ “confirm payment” ต่อว่าเราได้เอาค่า order_id = 8004359104 มาใช้จริงหรือไม่

ลองอ่านและศึกษา variables อื่นๆ ต่อได้ที่ Reference เลย

Reference : https://learning.postman.com/docs/sending-requests/variables/

--

--

KakyKad
KakyKad

Written by KakyKad

เขียนไปเรื่อย

No responses yet