Testing-Playground
Testing-Playground

บทความนี้คงเป็นความสั้นๆเกี่ยวกับความรู้สึกว่า เราจะเล่นกับ software ใหม่ๆยังไงบ้างแหละ สมัยก่อนเราก็คงต้องเอาโปแกรมมาติดตั้งเองในเครื่อง แล้วก็สั่งทํางานไรแบบนั้นล่ะมั้ง เช่นลง Appserver แล้วก็เอา php ไปนั่งปลั๊กเข้าเครื่องแบบนั้น แต่คงไม่พูดซํ้าหรอกเพราะพูดเรื่อง Docker ไปเยอะล่ะ….

แต่จะเอาของมาโชว์ซะมากกว่า โดยมาดูกันว่าเราเอาพวก Docker และ ทุกอย่างที่เขียนบทความมา มาใช้กันจริงๆแล้วรูปร่างหน้าตาจริงๆจะเป็นยังไง ซึ่งจะมี 2 Projects ที่จะโชว์คือ

Best Practise for using Robot Framework

โดยโปรเจคแรกเป็น best pracise ที่ดีมากในการเขียน Robot Framework น่ะ โดยการทําตามหลักการณ์ที่ควรทําเลย

  1. แบ่ง project ออกเป็น PageObject เพื่อให้เกิดการ resuable
  2. ใช้ selector ให้ถูกโดยใช้หลัก selenium best practise 
  3. ใช้ shell scripts ในการรับ arguments ให้มันรองรับกับ CI (jenkins,teamcity) ส่ง value มาตอนสั่งรัน เพื่อให้ยืดหยุ่น
  4. ใน docker branch ใช้ selenium hub เพื่อกระจายโหลดให้ parallel ให้รันเร็วขึ้น
  5. แล้วก็มีตัวที่ test กับ android native app ด้วย (ต้องมี appium น่ะ)

หลักๆโครงสร้างเลยก็มีแค่ใน github ตัวนี้เลย ที่เหลือยังไม่ได้ใส่ลงไปก็น่าจะเป็นเรื่องของ custom library ด้วย Python แต่ไว้ใส่ทีหลัง ไม่ยากอะไร 🙂

Get your hand dirty with performance testing

มาถึงตัวสนุกๆแล้ว 🙂 เจ้า github ตัวนี้ ทํามาเพื่อให้เรามีที่ใช้ทดลองเล่น performance testing script ของเราได้ และ ดูผลแบบ real time ซึ่งกว่าจะ setup แต่ละ configuration ครบกินเวลาหลายวันเลยล่ะ เพราะว่ามันต้องเข้าใจ configuration แต่ละตัว แถมเจ้า grafana ดันออก version 5.0-beta ณ เวลานี้อีก ทําให้โครงสร้ายหลายอย่างเปลี่ยนไป ต้องเอามาแก้หน่อยด้วย

ในโปรเจคนี้ประกอบไปด้วย 5 components หลักๆด้วยกันที่ทําให้ระบบออกมาสวยงามมากๆ คือ

  1. wiremock
    • เอาไว้สร้าง Mock request กลับมาให้กับ gatling script เรา เช่น request ไป /home ต้องได้ json reponse contain ids กลับมา
  2. grafana
    • เอาไว้แสดงผล load test ที่ยิงไปแบบ realtime
  3. influxdb
    • timeseries database เอาไว้ผลจาก gatling เรา (ใช้ graphite protocol)
  4. chronograf
    • หน้า admin ของ Influxdb เนื่องจากตัว admin influxdb deprecated ไปแล้ววแหละ
  5. gatling
    • load test script ~ ด้วย scala DSL สุดยวดเลยเจ้านี้ หยืดยุ่นกว่า jmeter เยอะ

ก็ไม่มีไรมากใช้ท่าปกติคือเขียน docker-compose file แล้วก็ไล่ใส่แต่ละตัวลงไปเลย แต่ที่ชอบที่สุดในโปรเจคนี้น่าจะเป็นเรื่องของการสร้าง dockerfile ที่ extend base image มาจากตัวอื่นๆเช่น grafana หรือ Influxdb เพื่อให้มันเก็บข้อมูลในรูปแบบที่เราชอบมากกว่า เช่น

docker-compose-best-practise-performance
docker-compose-best-practise-performance

เป็นท่าที่สวยงามมาก ชอบเลยล่ะ 🙂

dockerfile-best-practise-performance
dockerfile-best-practise-performance

ทั้งหมดดูจาก github ของ howtoautomateinth ได้เลย มี readme ไว้ประมาณนึงแล้วว แต่ไม่ได้ละเอียดมาก ลอง pull ไปเล่นน่าจะเข้าใจมากกว่าน่ะ 🙂

จงลงมือทํา

ลองเล่นกับมือเองจริงๆๆ จะได้เข้าใจแบบลงรายละเอียดลึกๆๆๆๆๆๆมากกว่าอ่านอย่างเดียวน้า

 

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.