บทช่วยสอนเครื่องมือทดสอบ Calabash สำหรับ Android
น้ำเต้าคืออะไร?
Calabash คือการยอมรับแบบโอเพ่นซอร์ส การทดสอบ เฟรมเวิร์กที่ให้คุณเขียนและดำเนินการทดสอบสำหรับ iOS และ Android ปพลิเคชัน
เป็น Framework ส่วนต่อประสานผู้ใช้อัตโนมัติที่อนุญาตให้เขียนการทดสอบด้วย Ruby โดยใช้ Cucumber.
Calabash ทำงานโดยเปิดใช้งานการโต้ตอบ UI อัตโนมัติภายในแอปพลิเคชันมือถือ เช่น การกดปุ่ม การป้อนข้อความ การตรวจสอบการตอบสนอง ฯลฯ สามารถกำหนดค่าให้ทำงานบนแอปพลิเคชันที่แตกต่างกันได้ Android และอุปกรณ์ iOS ซึ่งให้ข้อเสนอแนะและการตรวจสอบแบบเรียลไทม์
ทำไมต้อง Calabash Automation?
| ข้อดี | ข้อเสีย |
|---|---|
| ช่วยเพิ่มปริมาณงาน/ผลผลิต | จำเป็นต้องมีความเชี่ยวชาญในการเขียนสคริปต์ทดสอบระบบอัตโนมัติ |
| ปรับปรุงคุณภาพหรือเพิ่มความสามารถในการคาดการณ์คุณภาพ | การดีบักสคริปต์ทดสอบถือเป็นปัญหาสำคัญ |
| ปรับปรุงความทนทาน (ความสม่ำเสมอ) ของกระบวนการหรือผลิตภัณฑ์ | การทดสอบการบำรุงรักษามีค่าใช้จ่ายสูงในกรณีของวิธีการเล่น |
| เพิ่มความสม่ำเสมอของผลผลิตและลดต้นทุนและค่าใช้จ่ายด้านแรงงาน | การบำรุงรักษาไฟล์ข้อมูลทดสอบทำได้ยากหากสคริปต์ทดสอบทดสอบหน้าจอจำนวนมากขึ้น |
น้ำเต้าและ BDD
- น้ำเต้าก็คือ การพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม (BDD)- มันเหมือนกับ Test Driven Development (TDD) แต่แทนที่จะสร้างการทดสอบเพื่ออธิบายรูปร่างของ API กลับมีการระบุพฤติกรรมของแอปพลิเคชันแทน
- BDD เป็นกระบวนการที่ผู้มีส่วนได้ส่วนเสียหลายรายชั่งน้ำหนักเพื่อสร้างความเข้าใจร่วมกันเกี่ยวกับสิ่งที่จะต้องสร้างขึ้น
- BDD มีประโยชน์ในการสร้างซอฟต์แวร์ที่เหมาะสมและการออกแบบจากมุมมองของเจ้าของธุรกิจ
วิธีการติดตั้ง Calabash.mq4
ส่วนที่ 1) การติดตั้ง Java JDK – อ้างอิงถึงคู่มือนี้ – /install-java.html
ตอนที่ II) ดาวน์โหลดและติดตั้ง Ruby
ขั้นตอน 1) ดาวน์โหลด Ruby จาก URL http://rubyinstaller.org/downloads
ขั้นตอน 2) เปิดไฟล์ exe ทำตามคำแนะนำบนหน้าจอ เมื่อติดตั้งเสร็จเรียบร้อยแล้ว คุณจะเห็นหน้าจอต่อไปนี้ คลิกเสร็จสิ้น
เริ่มพร้อมท์คำสั่งโดยเปิด Ruby Windows 10 & พิมพ์ด้านล่าง Command
ruby –v
ส่วนที่ III) ดาวน์โหลดและติดตั้ง Android
ขั้นตอน 1) ดาวน์โหลด Android สตูดิโอที่ https://developer.android.com/studio
ขั้นตอน 2) เปิด exe ทำตามคำแนะนำบนหน้าจอและติดตั้งให้เสร็จสิ้น คลิกปุ่มเสร็จสิ้นเมื่อเสร็จแล้ว
ส่วนที่ IV) ติดตั้ง Calabash Android
ขั้นตอน 1) ในประเภทคอนโซล ติดตั้ง calabash-android การติดตั้งจะเริ่มขึ้นและจะใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์
ขั้นตอน 2) เมื่อติดตั้งเสร็จแล้วให้พิมพ์ เวอร์ชัน Calabash-Android
ทำงานกับน้ำเต้า
เปิดโฟลเดอร์ “calabash-android-0.9.0” ซึ่งอยู่ในเส้นทาง C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0 ชื่อโฟลเดอร์จะเปลี่ยนแปลงตามเวอร์ชัน ruby/calabash ที่คุณติดตั้งบนเครื่องของคุณ
เปิดโฟลเดอร์โครงกระดูกคุณลักษณะ มองหากรอบพื้นฐานนี้
- ไฟล์ *.feature มีสถานการณ์ที่เราจะทำให้เป็นอัตโนมัติ
- วิธีการที่ใช้โดยไฟล์ฟีเจอร์นั้นเขียนเป็นไฟล์ *.rb ภายในโฟลเดอร์ “step_definitions”
- วิธีการทั่วไป การตั้งค่าสภาพแวดล้อม การติดตั้งแอป และ hooks ควรอยู่ในโฟลเดอร์ “support”
ลาออกและสร้างแอป
- Calabash-android ลาออก *.apk
- Calabash-android สร้าง *.apk
เชื่อมต่ออุปกรณ์เข้ากับระบบ /เปิดตัวจำลอง
ตรวจสอบอุปกรณ์ที่แนบมา พิมพ์คำสั่ง
adb devices
ควรจะแสดงรายการอุปกรณ์ที่แนบมา
วิธีค้นหาตัวระบุตำแหน่งองค์ประกอบ
- เปิดคอนโซล พิมพ์คำสั่ง
calabash android console "APK Path" start_test_server_in_background
- คำสั่งด้านบนให้เปิดแอปบนอุปกรณ์ หากต้องการค้นหาตัวระบุองค์ประกอบ ให้ใช้คำสั่งต่อไปนี้
query "*"
นี่จะแสดงตัวระบุตำแหน่งองค์ประกอบทั้งหมดบนหน้าจอปัจจุบัน
การสร้างสคริปต์ใหม่
เปิดไฟล์ฟีเจอร์และบรรทัดต่อไปนี้
Feature: Login feature
Scenario: As a valid user I can log into my app
When I press "Login"
And I enter my username
And I enter my password
Then I see "Welcome to coolest app ever"
เปิดไฟล์ Step Definition และกำหนดวิธีการลงในไฟล์ *.rb
Given /^I am on the login windows$/ do
wait_for(:timeout =>100) { element_exists("* id:'loginInput;")}
check_element_exists("* id:'loginInput;")
end
ดำเนินโครงการทดสอบ
หากต้องการดำเนินโครงการทดสอบให้ใช้คำสั่งด้านล่าง
calabash-android run "APK Path" "feature file Path" – tags "tag name"
สรุป
- Calabash เป็นเฟรมเวิร์กโอเพ่นซอร์สใหม่ ซึ่งช่วยให้ทำงานอัตโนมัติและทดสอบ iOS หรือ Android app
- หากต้องการทำงานกับ Calabash การทดสอบควรเขียนด้วยภาษา Ruby โดยใช้ Cucumber.
- ใช้แนวคิดการพัฒนาพฤติกรรมขับเคลื่อน (BDD)
- มันทำให้โค้ดเป็นอัตโนมัติโดยแบ่งงานออกเป็น 4 ชั้น ดังต่อไปนี้
- ชั้นแรก
- ชั้นธุรกิจ
- ชั้นเทคโนโลยี
- ชั้นสุดท้าย
















