Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Android :: ทำการ capture หน้าจอการทำงานด้วย Fastlane Screengrab กัน

$
0
0

3566f858-7732-11e5-95aa-a606d4e71aab

3566f858-7732-11e5-95aa-a606d4e71aab Fastlane คือ ชุดเครื่องมือ automation สำหรับ iOS app ที่เริ่มได้รับความนิยมอย่างมาก ซึ่งปัจจุบันเป็นหนึ่งใน project ของ Twiiter Fabric แล้วด้วย พัฒนาด้วยภาษา ruby เป็น project ที่มีอายุได้เพียง 1 ปีเท่านั้น
สำหรับ Mobile developer ทั้ง iOS และ Android ถ้าใครไม่รู้จัก ถือว่า พลาดมาก ๆ ดังนั้น มาเรียนรู้ และ นำไปใช้งานกัน
โดยในบทความนี้ จะแนะนำการใช้งาน Screengrab เพื่อทำการ capture หน้าจอการทำงานของ Android app มาดูกันเลย

ความสามารถหลักนั้นสร้างมาเพื่อ iOS app

ประกอบไปด้วย
  • Deliver
  • Snapshot
  • Frameit
  • Pem
  • Sigh
  • Produce
  • Cert
  • Scan
  • Gym
  • Match
  • Pilot
  • Boarding
ซึ่งมันครบถ้วนและสมบูรณ์อย่างมาก

แต่สำหรับ Android app นั้น เพิ่งจะมีเพียง 2 ตัวเท่านั้น

ประกอบไปด้วย
  • Supply สำหรับการ update app บน Google Play Store
  • Screengrab สำหรับการ snapshot หน้าจอของ app

โดยความสามารถที่น่าสนใจคือ Screengrab

เมื่อลงไปดูในรายละเอียดพบว่า มันสามารถทำงานร่วมกับ Espresso test หรือ UI Test ของ Android ได้เลย นั่นคือ ในแต่ละขั้นตอนของการทดสอบ เราสามารถทำการ snapshot รูปในแต่ละขั้นตอนการทดสอบ app เลย ดังนั้น มาดูการใช้งานดีกว่า

1. เริ่มด้วยการติดตั้ง Fastlane และ Screengrab

[code] $sudo gem install fastlane $sudo gem install screengrab [/code]

2. เริ่มใช้งานกับ Android app ด้วยการสร้างไฟล์ต่าง ๆ ของ fastlane

[code] $fastlane init [/code] ผลการทำงานเป็นดังนี้ ทำการสร้าง folder fastlane และ ไฟล์ต่าง ๆ ที่จำเป็น คือ
  • Appfile ใช้กำหนดข้อมูลต่าง ๆ ของ app เรา เช่น package name และ key file สำหรับการ upload app
  • Fastfile  ใช้กำหนด action ต่าง ๆ สำหรับการ run fastlane

3. มาเริ่มใช้งานกับ Screengrab กันบ้าง

ก่อนอื่นต้องเขียน UI Test สำหรับ Android app ด้วย Espresso ก่อนนะ !! ถ้าไม่เขียน ก็ถือว่า จบกัน ไม่ต้องไปต่อนะ !! แต่ถ้าเขียน Espresso สำหรับทดสอบเรียบร้อยแล้ว และต้องทำงานได้ด้วยนะ ก็เริ่มมาใช้งานร่วมกับ Screengrab กันได้เลย มีขั้นตอนดังนี้ 3.1 เพิ่ม dependency ไปยังไฟล์ build.gradle [gist id="e4de0191fa4de153a511" file="build.gradle"] 3.2 สร้างไฟล์ src/debug/AndroidManifest.xml ขึ้นมา เน้นย้ำว่าอยู่ใน folder debug นะ ต้องสร้างเอง [gist id="e4de0191fa4de153a511" file="AndroidManifest.xml"] 3.3 ทำการแก้ไข code ของการทดสอบที่เขียนด้วย Espresso ดังนี้ ทำการเพิ่ม code
  • เพิ่ม ClassRule สำหรับจัดการกับ Locale
  • ทำการเพิ่ม code ของการ capture หน้าจอของ app ด้วยคำสั่ง Screengrab.screenshot();
ตัวอย่าง [gist id="e4de0191fa4de153a511" file="E2EMessageTest.java"]

4. เมื่อทุกอย่างเสร็จเรียบร้อย ให้ทำการ run ดังนี้

เริ่มด้วยการสร้างไฟล์ apk ก่อน ด้วยคำสั่ง [code] $./gradlew assembleDebug assembleAndroidTest [/code] จากนั้นทำการ run Screengrab ด้วยคำสั่ง [code] $screengrab [/code] ผลการทำงานเป็นดังนี้ [gist id="e4de0191fa4de153a511" file="result.txt"]

แต่ก่อนที่จะ run ทั้งสองคำสั่งได้นั้น

ต้องทำการกำหนดค่าของ ANDROID_HOME และ PATH ก่อนนะ เพื่อกำหนด Android SDK และ Platform tool สำหรับการใช้งาน adb นั่นเอง ตัวอย่างการกำหนดค่าใน Mac OS [code] export ANDROID_HOME=YOUR ANDROID SDK PATH export PATH=.:$ANDROID_HOME/platform-tools:$PATH [/code] และรูปที่ได้จาก Screengrab นั้นจะอยู่ใน folder fastlane/metadata ตัวอย่างดังรูป Screen Shot 2559-02-12 at 7.30.18 PM เพียงเท่านี้ก็สามารถทำการ capture รูปการทำงานของ Android app ได้แล้ว ซึ่งมันง่ายและสะดวกกว่า Spoon เยอะเลย แต่สิ่งที่ยังขาดไปก็คือ ถ้ารวมรูปเหล่านี้ไปไว้ในรายงานของ Espresso เลยจะแจ่มมาก ๆ หรือมีการสร้างรายงานแบบสวย ๆ และแยกตามแต่ละ test case ไปเลย มันจะแจ่มกว่านี้มากมาย และดูรายละเอียดเพิ่มเติมของ Screengrab ด้วยคำสั่ง [code] $screengrab --help [/code] สามารถดู code และตัวอย่าง project ได้จาก Github::Basic Android Testing
ส่วน Fastlane สำหรับ iOS มันแจ่มมาก ๆ เดี๋ยวจะเอามาเล่าให้ฟังต่อไป

Viewing all articles
Browse latest Browse all 1997

Trending Articles