Skip to content

How to Test and How to Use

Vorapod edited this page Nov 26, 2020 · 9 revisions

Step ของการ Test & Deploy

**การทดสอบนี้ รองรับการทดสอบแค่ Linux กับ macOS เท่านั้น

สิ่งที่ต้องเตรียมให้พร้อมก่อนทดสอบ

Tools Version Description
nodejs 10.13.0 ขึ้นไป ใช้สำหรับรัน npm และ newman ใน Command Line Interface
npm 6.2.0 ขึ้นไป ใช้สำหรับติดตั้ง newman ในเครื่องผ่าน Command Line Interface
docker 18.03.0 Community Edition ขึ้นไป ใช้สำหรับสร้างและรัน Container ของ Insurance Gateway
newman 4.0.0 ขึ้นไป ใช้สำหรับรัน Acceptance Test เป็น Postman ในเวอร์ชันของ Command Line Interface
go 1.12 ขึ้นไป ใช้สำหรับรัน Unit Test, Build เป็น Binary File
python 2.7 ขึ้นไป ใช้สำหรับรัน Acceptance Test คู่กับ Robotframework และ selenium2library

ขั้นตอนและวิธีการทดสอบ

ขั้นตอนการวิเคราะห์ Source Code และทดสอบระดับ Unit Test

  1. เข้าไปยังที่อยู่ของ store-service
cd store-service
  1. ทำการเรียกใช้คำสั่ง go vet เพื่อทำการวิเคราะห์ระดับ Source Code เพื่อหาข้อผิดพลาด
go vet ./...
  1. (เมื่อไม่พบข้อผิดพลาด) ทำการเรียกใช้คำสั่ง go test เพื่อทดสอบ Unit Test ทั้งหมด
go test ./...

ขั้นตอนการทดสอบระดับ Integration Test

  1. ใช้คำสั่งเพื่อทำการ Start Service/Dependency รอบข้าง
docker-compose up -d store-database bank-gateway shipping-gateway
  1. ทำการใช้คำสั่ง seeding data เมื่อสถานะของ Service/Dependency รอบข้างพร้อมใช้งานแล้ว
cat tearup/init.sql | docker exec -i store-database /usr/bin/mysql -u sealteam --password=sckshuhari --default-character-set=utf8  toy
  1. เข้าไปยังที่อยู่ของ store-service
cd store-service
  1. ทำการเรียกใช้คำสั่ง go test เพื่อทดสอบ Integration Test ทั้งหมด
cd store-service && go test -tags=integration ./...

ขั้นตอนการทดสอบระดับ Acceptance Test (UI & API)

  1. ใช้คำสั่งเพื่อทำการ Start System
docker-compose up -d
  1. ทำการใช้คำสั่ง seeding data เมื่อสถานะของ Service/Dependency รอบข้างพร้อมใช้งานแล้ว
cat tearup/init.sql | docker exec -i store-database /usr/bin/mysql -u sealteam --password=sckshuhari --default-character-set=utf8  toy
  1. ใช้ newman เมื่อทดสอบในระดับ API โดยใช้คำสั่ง
newman run atdd/api/shopping_cart_success.json -e atdd/api/environment/local_environment.json -d atdd/api/data/shopping_cart_success.json
  1. ทำการใช้คำสั่ง seeding data อีกครั้งเพื่อเตรียมข้อมูลสำหรับใช้ในการทดสอบระดับ UI
cat tearup/init.sql | docker exec -i store-database /usr/bin/mysql -u sealteam --password=sckshuhari --default-character-set=utf8  toy
  1. ใช้ Robotframework เมื่อทดสอบในระดับ UI โดยใช้คำสั่ง
robot atdd/ui/shopping_cart_success.robot

วิธีการใช้ Script make files

  1. make frontend เป็นคำสั่งที่รวมคำสั่งทั้งหมดของ Front-end ที่ประกอบไปด้วยคำสั่งดังนี้
    • install_dependency_frontend
    • code_analys_frontend
    • run_unittest_frontend
    • build_frontend
  2. make backend เป็นคำสั่งที่ีรวมคำสั่งทั้งหมดของ Back-end ที่ประกอบไปด้วยคำสั่งดังนี้
    • code_analys_backend
    • run_unittest_backend
    • run_integratetest_backend
    • build_backend
  3. make run_robot เป็นคำสั่ง run test ของ Acceptance Test(UI)
  4. make run_newman เป็นคำสั่ง run test ของ Acceptance Test(API)
  5. make start_service เป็นคำสั่ง start service ของ docker
  6. make seed เป็นคำสั่งการ insert data ลงใน database
  7. make stop_service เป็นคำสั่ง down service ของ docker

Front-end

  1. make install_dependency_frontend เป็นคำสั่งติดตั้ง dependency
  2. make code_analys_frontend เป็นคำสั่งในการตรวจสอบ code
  3. make run_unittest_frontend เป็นคำสั่งการ run unit test
  4. make build_frontend เป็นคำสั่งการ build image docker

Back-end

  1. make code_analys_backend เป็นคำสั่งในการตรวจสอบ code
  2. make run_unittest_backend เป็นคำสั่งการ run unit test
  3. make run_integratetest_backend เป็นคำสั่งการ run integrate test (ในชั้นของ repository)
  4. make build_backend เป็นคำสั่งการ build image docker