Poolsawat Apin
Senior Developer @Telecom, Full Stack Developer [Subscribe Me @poolsawat.com]

ใช้งาน Postman ไปสักระยะนึง มีความต้องการอยากที่จะเปลี่ยน URL ระหว่าง Dev หรือ Staging (E2E) จะต้องมาแก้ Request URL รู้ไหมว่า Postman สร้าง Variables แยกแต่ละ Environments ได้นะ บทความนี้จะมาบอกวิธีการตั้งค่ากัน

Postman เป็นแพลตฟอร์มเพื่อใช้ทดสอบ API (REST ,SOAP ,GraphQL) ช่วยให้นักพัฒนาทำงานได้สะดวกมากยิ่งขึ้น โดยมีความสามารถหลายอย่าง เช่น
- API Client: สร้าง Http Request เพื่อทดสอบ Service ได้อย่างง่ายดาย
- Automated Testing: ทำการทดสอบด้วยตัวเอง แบบอัตโนมัติ มีการทำงานร่วมกับ CI/CD เพื่อให้แน่ใจว่าการเปลี่ยนแปลงโค๊ดจะไม่ทำให้เกิด effect กับระบบเดิม
- Design & Mock: จำลองตัวเองเป็นเหมือน backend เพื่อ simulating endpoint และ response data ได้ โดยไม่จำเป็นต้องไปตั้ง server และพัฒนาโค๊ดในการ backend
- Documentation: มีเอกสารแนะนำการใช้งานที่สวยงาม ใช้งานง่าย
-Monitors: ตรวจสอบสังเกตุการณ์รายละเอียดของ Response หรือแม้แต่ เวลาการตอบสนองของ API
- Workspaces: จัดเตรียม context เพื่อใช้งานจัดสร้างและใช้งาน API (ยังไม่เคยใช้งาน feature นี้)

ตั้งค่า Postman เพื่อสร้าง Manage Environments Variables

  1. เริ่มต้นที่จะใช้งาน Postman ก็ต้องติดตั้ง https://www.postman.com/ (ติดตั้งให้เรียบร้อย ) จากนั้นเปิดใช้งาน Postman
  2. สร้าง http simple ง่าย ๆ ด้วย python

3. สร้าง Postman Manage Environment

Image for post
Image for post
Image for post
Image for post

4. ทดสอบ call API

Image for post
Image for post

สรุปท้ายบทความ

การสร้าง Variables Environments บน Postman สร้างได้หลายค่าสามารถนำไปประยุคได้กับการใช้เป็น parameters ส่งไปหา API วิธีการเรียกใช้งาน variables เพียงแค่ {{“Variable Name”}} ตัวอย่าง {{ENV_URL}} เพื่อเข้าถึง http://localhost:8000 หรือ http://localhost:9000 เพียงแค่ switch environment ทางขวาบนของ Postman ตามภาพข้างบน

บทความนี้ขอจบไว้เพียงเท่านี้นะครับ


บทความนี้จะมาแบ่งปันการทำ transaction บน browser ด้วย web3 library สำหรับผู้เริ่มต้นที่อยากจะเขียน smart contract แบบเข้าใจง่าย ๆ (ผมก็มือใหม่) เลยอยากจะแชร์ในวิธีที่ผมลองผิดลองถูก จะมาสรุปให้ในบทความนี้

แนะนำเครื่องมือ เตรียมตัวก่อนเริ่มเขียน smart contract ทำ transaction บน browser (web3js)

  • web3.js Ethereum JavaScript API library ของ javascript ที่ใช้สำหรับเขียน smart contract มี API document ที่ละเอียดใช้งานไม่ได้ยากมาก
  • Metamark wallet browser extension(chrome , firefox) wallet extension ส่วนเสริมของ browser ที่ทำหน้าที่เป็น wallet เก็บ coin/token ของเรา
Image for post
  • Ganache ใช้สำหรับสร้าง Ethereum Node บน local environment เหมาะสำหรับใช้ env DEV เพราะสะดวกแล้วค่อนข้างใช้งานง่ายไม่ได้อยาก
Image for post
  • Bulma css framework เพื่อความสวยงามของหน้าจอ
  • Vue2 javascript framework
  • Live Server vscode extension สำหรับ run server (static file .html)

เริ่มขั้นตอนเขียน smart contract ด้วย web3.js

  1. download Ganache และทำการติดตั้งให้เรียบร้อย (ขั้นตอนนี้ขอข้าม)
  2. เปิดหน้าโปรแกรม Ganache ที่ได้หลังจากติดตั้งแล้ว กด “NEW WORKSPACE”

Workspace Name : Poolsawat.com
Server Port Number : 6545

Image for post

2.1 Genache จะจำลอง Ethereum Node พร้อมกับ Generate 10 Accounts (มี 100 ETH , public address , private…


RDBMS มีให้เลือกใช้งานมากมาย ทั้งแบบ ฟรี (free) , มีค่า (license fee) Oracle ,MSSQL ,PostgreSQL ,MySQL จึงไม่ใช่เรื่องง่ายเลย ที่จะเลือกมาศึกษาสำหรับผู้เริ่มต้น

RDBMS มาพร้อมกับความสามารถการทำ Stored Procedure และ Function มันก็คือการเพิ่มความสามารถของงาน SELECT ,INSERT ,UPDATE ,DELETE ให้อยู่ในรูปแบบการเขียนโปรแกรม ซึ่งในแต่ละ Database Business เองก็มีการเขียนที่แจกต่างกัน แต่โดยรวมมี concept การทำงานที่ไม่ต่างกันเลย เมื่อเรียนรู้ Oracle Database จนเชียวชาญ ก็จะไปเรียนรู้ MySQL Stored Procedure ,Function ได้ไม่ยากเลย

อยากจะเขียนโปรแกรมกับ RDBMS ละ ทำไง

มีบางสถานะการอยากที่จะ reuse (column/field) ที่ผ่านการใส่ condition แล้ว กับ sql statement อื่น ๆ เหมือนการที่เราเขียน method (JAVA) หรือ function (Javascript) มีการส่ง parameter (IN parameter) เหล่านี้ จะมาหาคำตอบและทำความรู้จัก Stored Procedure & Function กัน

Stored Procedure & Function คืออะไร

Procedure
- เป็น schema object ชนิดนึงที่ถูกเก็บอยู่ใน database
- เป็นโปรแกรมย่อยชนิดหนึ่งที่สร้างเพื่อใช้งานเฉพาะงาน
- สามารถเรียกใช้งานซ้ำ ๆ ได้ , แก้ไขได้ตลอด
- มีความสามารถที่มากกว่า Function
- มีการ return ค่า (OUT parameter)
- มีการ รับค่า ( IN ) , ส่งค่าออก (OUT) ได้
- ส่งค่าออก ในรูปแบบ Cursor (ข้อมูลในรูปแบบ ResultSet) ได้ ซึ่งข้อนี้ Function…


ปัญหา pgAdmin (client tool) ไม่สามารถ connect กับ PostgresSQL Database server ได้

เพิ่ม Client IP ที่ไฟล์ */PostgreSQL/12/data/pg_hba.conf (IP v4)

จากเดิม

# TYPE DATABASE USER ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5

แก้ไขเป็น

# TYPE DATABASE USER ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all {client ip}/24 md5 #เพิ่ม client ip ใหม่

แก้ไขไฟล์ PostgreSQL/12/data/postgresql.conf

จากเดิม

#listen_addresses = ‘localhost’

แก้ไขเป็น

listen_addresses = ‘*’

จากนั้น restart postgresql service แล้วลอง pgAdmin ต่อมาอีกครั้ง ก็จะ connected remote host ได้เรียบร้อย


พอดีช่วงนี้มีงานทำ CI/CD ด้วย Jenkins + Gitlab และอยากที่จะทำ flow ให้เต็มระบบ

Push code to Gitlab => Gitlab Webhook =>triggered Jenkins build => run build

สิ่งที่ต้องทำเพิ่มที่ jenkins

  1. สร้าง user token เพิ่ม (Generate API Token)
    1.1 เลือก User เมนู (ฝั่งขวามือบน)
    1.2 เลือก Configure
    1.3 API Token กำหนดชื่อ “WEBHOOK_TOKEN” กด Genarate เก็บ token นี้ไว้เพราะจะไม่สามารถแก้ไขได้ ต้อง revoke แล้ว สร้างใหม่เท่านั้น
Image for post
Image for post
Image for post
11ac4a1d0c0ff6956c38f2a22e39375325

2. เพิ่ม Authenticate Token ของ Project (Add Authenticity Token)
2.1 แก้ไข Configure ของ Project

Image for post

2.2 แก้ไขเลือก “Trigger builds remotely (e.g., from scripts)” จากนั้น random string มา 1 ชุด ใส่ค่าไปในช่อง (random string online) จากนั้น Save จบงานที่ต้องทำเพิ่มที่ jenkins

Image for post
Vegj66W5m9BqRuYds5vbboznSL9czV43

สิ่งที่ต้องทำเพิ่มที่ Gitlab

  1. เชื่อม gitlab webhook เข้ากับ jenkins
    1.1 เข้าไปที่ repo ของ Project เลือก Setting => Webhook
    1.2 URL ใส่
    format: https://<JENKINS_USER_ID>:<JENKINS_USER_TOKEN>@mydomainname.com/job/<JOB_NAME>/build?token=<AUTHENTICITY_TOKEN>
    ตัวอย่าง: https://admin:11ac4a1d0c0ff6956c38f2a22e39375325@mydomainname.com/job/ecc-pipeline-test/build?token=Vegj66W5m9BqRuYds5vbboznSL9czV43
    1.3 Push events ให้เลือก branch ที่ต้องการ push trigger ตัวอย่างเลือก “master” กดปุ่ม “Add webhook”
Image for post

2. ทดสอบ hook

Image for post
Image for post

3. กลับไปที่ jenkins จะมีการ run build pipeline เกิดขึ้น

Image for post

กรณี web hook สั่ง jenkins build แบบส่ง parameters

ต้องแก้ไข url ของ jenkins ตามข้างล่างนี้

format: format: https://<JENKINS_USER_ID>:<JENKINS_USER_TOKEN>@mydomainname.com/job/<JOB_NAME>/buildWithParameters?token=<AUTHENTICITY_TOKEN>&param1=value1&param2=value2

นอกนั้นอื่น ๆ ให้ทำเหมือนเดิมครับ


เมื่อถึงระยะเวลาหมดอายุของบัตร ใบอนุญาตขับรถส่วนบุคคล โดยปกติการต่ออายุใบอนุญาตขับขี่จะมีกันหลายรูปแบบ และขอเล่าถึงการเตรียมเอกสารเพื่อเข้าไปต่ออายุตามประเภทของใบอนุญาตกันเลย
อายุใบอนุญาตชั่วคราวจาก 2 ปี เป็น 5 ปี
1. ใบอนุญาตชั่วคราวอายุไม่ต่ำกว่า 1 ปี
2. บัตรประชาชนฉบับจริง
3. ใบรับรองแพทย์ที่ได้รับผลการตรวจว่า สุขภาพสมบูรณ์ ที่ผ่านเกณฑ์ทำใบขับขี่
อายุใบอนุญาต 5 ปี เป็น 5 ปี
1. ใบขับขี่เดิมที่หมดอายุ
2. บัตรประชาชนฉบับจริง

ขอเล่าถึงการเตรียมตัวก่อนการไปเข้ารับการบริการต่อใบขับขี่ ณ ปัจจุบันล่าสุด ขณะนี้

ขอยกเคสการเข้ารับบริการที่สถานีขนส่ง จตุจักร ณ อาคาร 4 ชั้น 2 ให้บริการทำใบขับขี่
การเตรียมตัวทำดังนี้
1. ทำแบบทดสอบจาก
ระบบการอบรมต่ออายุใบอนุญาตขับรถ ของกรมการขนส่ง (กดเข้าลิ้งนี้)

Image for post
https://www.dlt-elearning.com/

เมื่อเข้าไปแล้วกด “ลงทะเบียนเข้าการอบรม” ระบบแสดงหน้าจอ ขั้นตอนการอบรมต่ออายุใบอนุญาตขับรถ หลัก ๆ มี 4 ขั้นตอน ดังนี้
1. คลิกปุ่ม “ลงทะเบียนเข้ารับการอบรม” กรอกข้อมูล เลขบัตรประจำตัวประชาชน, เลขที่ใบอนุญาตขับรถ, วันอนุญาตและวันสิ้นอายุใบอนุญาตขับรถเลือกการอบรมตามใบอนุญาตขับรถที่ประสงค์จะต่ออายุ จากนั้นคลิกที่ปุ่ม “ขั้นตอนต่อไป”
2. ชมวิดีโอการอบรมตามที่เลือก เมื่อรับชมวิดีโอจนจบ ให้คลิกที่ปุ่ม “ขั้นตอนสุดท้าย”
3. ยืนยันตัวตนโดยกรอกข้อมูลเลขบัตรประจำตัวประชาชน และเลขที่ใบอนุญาตขับรถเพื่อรับผลการอบรม จากนั้นคลิกที่ปุ่ม “เสร็จสิ้น”
4. …


สวัสดีครับ บทความนี้จัดทำเพื่อเป็นแหล่งรวบรวมบทความเกี่ยวกับการทำ Automated Testing ด้วย Cypress ที่จะเอาบทความเนื้อหาของผมเองและจากแหล่งต่าง ๆ มารวบรวมไว้ที่นี่ เพื่อให้ง่ายในการเข้าถึง และช่วยส่งเสริมการพัฒนาซอพแวร์ให้มีคุณภาพดีที่ยิ่ง ๆ ขึ้นไป

บทความจาก poolsawat.com

เป็นบทความที่มาจากการเขียนของผมเอง (poolsawat.com) ขอฝากไว้ด้วยครับ

Image for post
poolsawat.com

EP0: Cypress Automate Testing (E2E) 101

EP1: Cypress แนะนำโครงสร้างของ Project EP1

EP2: Cypress แนะนำอธิบาย 20 API Commands ที่ใช้งานบ่อย EP2

EP3: Cypress แนะนำโครงสร้างของไฟล์ testscript (*.spec.js) EP3

EP4: Cypress Assertions ต่าง ๆ ที่ควรต้องรู้ EP4

EP5: Cypress ทำความรู้จัก และตัวอย่างการใช้งาน Spy,Stub EP5

EP ถัดไปจะเขียนเพิ่มเรื่อย ๆ ครับคอยติดตาม

Cypress.io Thialand

กลุ่ม Cypress.io Thailand จะรวบรวมบทความที่เกี่ยวกับการใช้งาน Cypress กับ Case scenario ต่าง

Cypress Github

เป็น official repository ของ source code open source ของ Cypress ทั้งหมดสามารถแจ้ง Issue การใช้งาน หรือตามหา Answer ของ issue ต่าง ๆ ได้จากแหล่งนี้

Image for post

Cypress.io

Cypress.io คงไม่ต้องแนะนำเพิ่มแต่ก็ขอเอามาเก็บรวบรวมไว้ เป็น website official ของ Cypress ให้เข้าไปติดตาม มี document ,example ที่ดีแนะนำให้เข้าไปดูเลย

Image for post

ถ้าผมเจอแหล่งบทความดี ๆ จะเอามาเก็บไว้ที่นี้ ขอบคุณครับ


เมื่อ Developer ใช้งาน Program หรือ Tools ที่ต้องมีการ access Internet มักจะประสบปัญหาเรื่องการถูกปิดกันด้วย Proxy ของบริษัท เพราะเป็นในเครื่องความปลอดภัย ซึ่งจะไม่ใช้งาน Internet ของภายในบริษัทก็เห็นว่าจะเพิ่มความลำบากขึ้นมาอีก บทความนี้จึงขอรวบรวมเป็นที่เก็บข้อมูลการ Set Internet Proxy ไว้ที่นี่เอาซะเลย

Git

NPM

Yarn

Maven

Gradle

Docker (Docker-Machine)

Password Special Character

!   #   $    &   '   (   )   *   +   ,   /   :   ;   =   ?   @   [   ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
Image for post
thank : https://fabianlee.org/2016/09/07/git-calling-git-clone-using-password-with-special-character/

ถ้าเพื่อน ๆ มี Program หรือ Tools อื่น ๆ ที่มีการ Set Proxy เม้นไว้ได้เลย ผมจะรวบรวมไว้ที่นี่ ขอบคุณที่ติดตามครับ


CI/CD คำอธิบาย อ่านจากบทความนี้ โดยบทความจะนำเสนอในนี้ จะเน้นไปทางการปฏิบัติ มาเริ่มกันเลยดีกว่า

เริ่มเขียน pipeline script

  1. sign in เข้า gitlab signin ให้เรียบร้อย
  2. create new project
Image for post

3. create .gitlab-ci.yml file

Image for post

4. coding code script

อธิบาย

stages : กำหนด stage flow การทำงานของ jobsโดยจะมีการ run การทำงาน up — down
jobs : ชุดการทำงานของ stage แต่ละ stage โดยตัวอย่างจะสร้างด้วยชื่อ “prepare the car” , “build the car” , …
— stage : กำหนดการทำงานของ job นี้ว่่อยู่ใน stage อะไร
— script : กำหนดคำสั่ง command line การทำงานของ job นี้
— artifacts : กำหนดชื่อ file หรือ folder เพื่ออยากที่จะส่ง file หรือ folder ต่อให้ job ถัดไปใช้ทำงานต่อ โดยจะ store เก็บไว้ที่ gitlab storage server

5. add , commit push ให้เรียบร้อย

6. gitlab runner จะคอยตรวจสอบสถานะไฟล์ที่ถูกแก้ไข จะมีการสั่งให้ทำงานเมื่อมีการ push file เข้ามาที่ repo ของเรา

Image for post

6.1 รายละเอียดการทำงานของ jobs

Image for post
Image for post
prepare the car

บทความนี้ไม่ได้อธิบายรายละเอียดอะไรมาก แต่หากทำตาม step ในภาพตัวอย่าง น่าจะไม่ยากจนเกินไป หากผู้อ่านท่านใดติดปัญหา ฝากคำถามไว้ใต้บทความนี้ได้เลยครับ สำหรับบทความนี้ฝากไว้เท่านี้ครับ


ณ วันที่เริ่มเขียนบทความนี้อายุของผมก็เข้าเลข 30 แล้ว คิดถึงคำพูดที่ว่าอายุ 30 แล้วมีของอะไรเป็นของตัวเองบ้างแล้ว สำหรับผมไม่ค่อยจะสนคำพูดเหล่านั้นสักเท่าไหร่ แต่สนใจย้อนมองว่าเริ่มทำอะไรที่อยากที่จะทำไปแล้วมากกว่า บทความนี้จะไม่ขอพูดถึงเรื่องเงินหรือทรัพย์สินที่ ณ ตอนนี้มีอยู่เท่าไหร่ แต่จะมาพูดถึงเมื่อครั้งอดีตที่ผ่านมาผมได้ทำอะไรบ้าง ทั้งที่ประสบการ์ความสำเร็จในระดับนึง และล้มเหลว จะถือว่าเป็นประสบการณ์ในชีวิต ที่ทำให้ได้เรียนรู็สิ่งใหม่ ๆ

เริ่มเล่าประสบการณ์

โดยผมจะมีเกณฑ์ให้คะแนนสำหรับสิ่งที่ได้ทำต่าง ๆ เป็นระดับ 0–5 ความหมายคือ 0 คือ เริ่มทำแล้วไม่สำเร็จ และ 5 คือทำสำเร็จแล้วยังทำอยู่ในปัจจุบัน และจะสรุปปัญหา สาเหตุ ที่ทำสำเร็จ และเกิดความล้มเหลวในสิ่งนั้น ๆ ที่ทำ

ทำระบบ ให้คำปรึกษา สำหรับนักศึกษา (ความสำเร็จ 3/5)

Image for post

เป็นช่วงเวลาเกือบ 2 ปีที่มีงานแบบนี้เข้ามาให้ทำ หลังจากเรียนจบมหาลัยจะยังพอมีเพื่อน ๆ พี่ ๆ ที่ยังไม่จบการศึกษา (เพื่อน ๆ พี่ ๆ ยังทำ Project จบการศึกษา (graduation project) ไม่เรียบร้อย) ก็ต้องการคนช่วย เพราะเป็น Project เกี่ยวกับการเขียนโปรแกรม จึงได้เลือกรับงานนี้มาทำเป็นอาชีพเสริม
ลักษณะงาน ให้คำปรึกษา ,เขียนโปรแกรม, อธิบายการทำงาน ,ช่วยออกแบบเอกสารเล่ม
ปัญหา/อุปสรรค เนื่องจากการติดตามงานของลูกค้าค่อนข้างยาก เพราะอยู่คนละสถานที่ (ผมอยู่ กทม ลูกค้าอยู่ ตจว) ทำให้ติดต่อพบเจอกันยาก ช่วงปีหลัง ๆ ก่อนเลิกรับงาน ลูกค้าน้อยลง เพราะคนที่รู้จักเรียบจบ…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store