nitip.at

nitip.at

ใช้ Postman ให้หล่อไปอีกขั้นด้วย Environment variable

ใช้ Postman ให้หล่อไปอีกขั้นด้วย Environment variable

Nitipat Lowichakornthikun's photo
Nitipat Lowichakornthikun
·Sep 27, 2018·

3 min read

สำหรับในการทดสอบ API ที่กำลังพัฒนาอยู่ บ่อยครั้งที่เราต้องมีการมานั่งปรับ Url ของตัว endpoint เนื่องจากในเครื่องเราอาจจะมี endpoint คือ localhost แต่บน Dev environment เลยนั้นจะมี endpoint อีกทั้งปัจจุบันการที่เราจะทำ API แบบเปล่าเปลี่ยวไร้การ Authen ก็ไม่น่ามีแล้ว มันก็จะต้องมีการวุ่นวายเรื่อง Header, Token อีกหลายเรื่องที่จะทำให้เราต้องมาเสียเวลาในการแก้ไขค่าพวกนี้ก่อนจะได้ทดสอบ (ในกรณีที่เราทำงานเป็นทีม เราก็ส่ง Collection postman นี้ให้ทีมเข้ามาลองทดสอบและแก้ไขกัน)

มันก็เลยมีเจ้าสิ่งนี้ขึ้นมาครับที่จะช่วยเราจัดการว่า Environment variable ถ้าสังเกตจะเห็น {{variable}} แทนค่าจริงที่เราส่ง ซึ่งมันจะช่วยให้เราแก้ได้ทีเดียว ไม่ต้องไล่แก้ไปที่ละ Request ครับ นึกภาพตัวแปร Configuration ที่เราสามารถแก้ไขทีเดียว แล้วทำให้โปรแกรมเราทำงานได้ตามค่านั้น ๆ

ซึ่งตัวแปรของ Postman นั้นความจริงแล้วมี Scope หลายชั้นครับ การทำงานก็ตามรูปนี้คือจะยึดตามค่าของชั้นข้างในสุดก่อน เช่น ถ้าเรามีการตั้งค่าตัวแปรแบบ data ไว้ และ global ไว้ ด้วยชื่อตัวแปรเดียวกัน สิ่งที่เกิดคือมันจะสนใจตัวแปรแบบ data ที่เราตั้งค่าไว้เท่านั้นครับ

แต่วันนี้ผมจะให้ทุกคนมารู้จักกับตัวแปรในระดับ Collection กันครับ สำหรับผู้ที่สนใจอ่านรายละเอียดเพิ่มเติมสามารถศึกษาแบบลงลึกได้ที่นี่

ทดลองใช้งาน Environment variable แบบรวดเร็ว

  1. สร้าง Collection ใหม่ขึ้นมาให้อ่านการสร้างจากลิงค์ด้านล่างครับ

สร้าง API Document ด้วย Postman
สำหรับคนที่ทำงานฝั่ง Back-end มาก่อนสิ่งที่จะขาดไม่ได้เลยนั่นก็คือการทำ API Document บ้างก็เรียกว่า API Spec…
medium.com

2. สร้าง Request ขึ้นมาใหม่ครับ โดยเราจะใช้ https://resttesttest.com/ ในการทดสอบการใช้งานในครั้งนี้

จะเห็นว่าเราทดสอบส่ง Parameter ที่ชื่อว่า “keyword” ค่าของมันคือ “test” จะเห็นว่า API ก็จะแสดงข้อมูลตามที่เราได้ส่งไป

3. ทดลองเปลี่ยนเป็น Environment variable ครับ ตามรูป

จะเห็นว่ามันขึ้นเตือนสีแดง แสดงว่าเรายังไม่ได้มีการประกาศตัวแปรนี้ไว้ครับ

4. ให้กดที่รูปลูกตาบนด้านขวาครับ

จากนั้นกด Add เพื่อเพิ่มค่าใหม่ขึ้นมา

5. ให้ทำการตั้งชื่อ Environment และ ค่าที่เราต้องการแทนที่ใน Request นั้น

6. หลังจากนั้นก็ทำการเลือก Environment ตามชื่อที่เราสร้างไว้ตอนแรก (ข้าง ๆ รูปลูกตาด้านขวาบนครับ)

เมื่อกดทดสอบ ก็จะพบว่ามันก็สามารถดึงค่าที่เราตั้งไว้มาแสดงได้ ตัวแปรนี้ก็สามารถใช้กับทุกส่วนของ Request ได้เลยครับ แค่เราเอาไปแทนที่และตั้งค่าไว้ใน Environment นั้น ๆ ก็จะสามารถใช้งานได้

ลองขยับมาใช้งานแบบ Advance ยิ่งขึ้นกันครับ
เคยไหมที่เราต้องไปเรียก API บางตัวก่อนเพื่อที่จำเอาค่าของ Response นั้น มาใช้ต่อในการเรียก API ตัวนี้ ยกตัวอย่างเช่น ระบบการ Authen ที่เราต้องไปเรียก API ตัวนึงก่อน จากนั้นเราถึงจะได้ Token มา เพื่อนำเอาไปใช้ต่อในการเรียก API ที่เราต้องการใช้งาน
ก่อนหน้านี้พวกเราได้รู้จักกันกับ Environment variable กันไปแล้ว ผมจะเอาความรู้ตรงนี้มาต่อยอดทำให้เราไม่ต้องไปเสียเวลาคัดลอก token จาก API แล้วมาแปะต่อใน API ที่จะใช้

  1. เรียกการใช้งาน Login เพื่อทำให้ได้ token มาใช้งาน

2. ต้องคัดลอกเอา Token ที่ได้มาจากการ Login มาใส่ใน header ของ API นี้เพื่อให้สามารถเข้าถึงได้

ทีนี้เราจะลองเอาความรู้ก่อนหน้ามาประยุกต์กันครับ

ให้เปลี่ยนค่า Value เดิมของ Token เป็น Environment variable เสียเลย

จากนั้นเราก็มาเพิ่มค่า Default ของ token ไว้ซักหน่อย อันนี้อาจจะเว้นว่างไว้ก็ได้แต่แค่ให้มีชื่อตัวแปรไว้ครับ

เราจะมาทำความรู้จักกันกับ Tests กันครับ เพราะตัวนี้จะช่วยให้เราสามารถคัดลอก Token ที่ได้จาก Response นำไปใส่ไว้ใน Environment variable ที่เราต้องการได้ ซึ่งจุดประสงค์จริง ๆ ของเจ้าตัวนี้มันเอาไว้เอาเขียน Test script เพื่อทดสอบผลของ API ที่เราทำครับ แต่มันก็มีความสามารถในการเซ็ตตัวแปรจาก Response ได้ด้วย เราจะมาลองทำกันดูครับ

ใส่ Code ด้านล่างนี้ครับ ใน Tab tests ตัวนี้จะทำการดึงเอา response ออกมา จากนั้นนำเอา token จาก response มาใส่ในตัวแปร environment ครับ

ทีนี้ก็จะพบว่า token ถูกเซ็ตใหม่แล้วในทุกครั้งที่เราเรียกการใช้งาน Request นี้ ทำให้ไม่ต้องเสียเวลามาหาว่า Token เราคืออะไร และ ต้องไปแปะใน Header อีก ซึ่งโอกาสพลาดก็สูงครับ สำหรับใครอยากลองเขียน Script เล่นเอง ก็มีหลายเครื่องมือให้สามารถลองเขียนเองได้ครับ ลองกดดูจาก Document ด้านขวามือเลยครับมันจะมีตัวอย่างให้เราลองเล่นแบบง่าย ๆ

Tip

การ Debug ว่าค่ามันถูกต้องหรือโดนเซ็ตว่าอะไรก็ให้กดที่รูปลูกตาได้เลยครับ

การทดลอง Debug console.log ในกรณีที่เราไม่ชัวว่าข้อมูลหรือเงื่อนไขเราถูกต้องไหมก็ให้กดที่ Postman console มันก็จะเหมือน Javascript Console ใน Chrome เลยครับ

อ้างอิง

How to automatically set a Bearer Token for your Postman requests
I love using Postman but it is a pain having to remember to enter a valid Bearer Token. The following is a Javascript…
liftcodeplay.com

Variables
You can assign a current value when running your collection or a simple request and you also use variables in…
getpostman.com

Using Postman Environment Variables & Auth Tokens
An ever increasing part of our job as developers these days is creating back-end apis. There are a lot of great tools…
medium.com

Extracting data from responses and chaining requests
Postman lets you write scripts that run before/after you receive a response from the server. You can do practically…
blog.getpostman.com

มีคนไอเดียดีเอา Postman ไปทำ bot คอยดึงราคา bitcoin ด้วย ฮ่า ๆ

How to make money using Postman: chaining requests 💰
Most people already know how to send a lone request using Postman. Send it off, inspect the response you get from the…
blog.getpostman.com

 
Share this