
บทความนี้คงเป็นความสั้นๆเกี่ยวกับความรู้สึกว่า เราจะเล่นกับ software ใหม่ๆยังไงบ้างแหละ สมัยก่อนเราก็คงต้องเอาโปแกรมมาติดตั้งเองในเครื่อง แล้วก็สั่งทํางานไรแบบนั้นล่ะมั้ง เช่นลง Appserver แล้วก็เอา php ไปนั่งปลั๊กเข้าเครื่องแบบนั้น แต่คงไม่พูดซํ้าหรอกเพราะพูดเรื่อง Docker ไปเยอะล่ะ….
แต่จะเอาของมาโชว์ซะมากกว่า โดยมาดูกันว่าเราเอาพวก Docker และ ทุกอย่างที่เขียนบทความมา มาใช้กันจริงๆแล้วรูปร่างหน้าตาจริงๆจะเป็นยังไง ซึ่งจะมี 2 Projects ที่จะโชว์คือ
Best Practise for using Robot Framework
โดยโปรเจคแรกเป็น best pracise ที่ดีมากในการเขียน Robot Framework น่ะ โดยการทําตามหลักการณ์ที่ควรทําเลย
- แบ่ง project ออกเป็น PageObject เพื่อให้เกิดการ resuable
- ใช้ selector ให้ถูกโดยใช้หลัก selenium best practise
- ใช้ shell scripts ในการรับ arguments ให้มันรองรับกับ CI (jenkins,teamcity) ส่ง value มาตอนสั่งรัน เพื่อให้ยืดหยุ่น
- ใน docker branch ใช้ selenium hub เพื่อกระจายโหลดให้ parallel ให้รันเร็วขึ้น
- แล้วก็มีตัวที่ 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 หลักๆด้วยกันที่ทําให้ระบบออกมาสวยงามมากๆ คือ
- wiremock
- เอาไว้สร้าง Mock request กลับมาให้กับ gatling script เรา เช่น request ไป /home ต้องได้ json reponse contain ids กลับมา
- grafana
- เอาไว้แสดงผล load test ที่ยิงไปแบบ realtime
- influxdb
- timeseries database เอาไว้ผลจาก gatling เรา (ใช้ graphite protocol)
- chronograf
- หน้า admin ของ Influxdb เนื่องจากตัว admin influxdb deprecated ไปแล้ววแหละ
- gatling
- load test script ~ ด้วย scala DSL สุดยวดเลยเจ้านี้ หยืดยุ่นกว่า jmeter เยอะ
ก็ไม่มีไรมากใช้ท่าปกติคือเขียน docker-compose file แล้วก็ไล่ใส่แต่ละตัวลงไปเลย แต่ที่ชอบที่สุดในโปรเจคนี้น่าจะเป็นเรื่องของการสร้าง dockerfile ที่ extend base image มาจากตัวอื่นๆเช่น grafana หรือ Influxdb เพื่อให้มันเก็บข้อมูลในรูปแบบที่เราชอบมากกว่า เช่น

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

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