Upload
jz-chang
View
1.008
Download
7
Embed Size (px)
Citation preview
Mark Chang -‐ 測試開發部 �
應用 Sikuli 在 Android 設備上執行自動化測試
• What is GUI Testing?
• Sikuli
• Apply Sikuli to Android automation testing
• Demo: Android pattern unlock
• Conclusion
• Q & A
Outline
• GUI testing is a test of the application’s user interface and verification if the application functions work correctly.
What is GUI Testing?
• UI 自動化測試會抓取元件的 text、content-‐desc 等資料來抓取某個元件後,再對此元件做操作
How to do GUI Testing
• 但有時候某些元件可能沒有這些明確的資料,在實作上確實不好處理
Problem
• 我們只能抓取到整個元件,但不能調整一點聆的年代範圍
Problem
只能抓到整個 slider 但我們希望
How do we solve this problem?
• 一種以「影像辨識」為基礎的測試工具,它可以用來自動化的在一個 GUI 圖形界面上進行操作和測試
• Sikuli 不用知道元件的屬性值
• 透過截圖方式幫助我們自動操作電腦的一種方式
• Sikuli 腳本就是實現這一過程的一種腳本語言
Sikuli
• 作者: 張琮翔 Tsung-‐Hsiang Chang • 教育背景
– 博士: 麻省理工學院,電腦科學與人工智慧實驗室 – 碩士與學士: 台灣大學資訊工程研究所
• Sikuli 論文發表在「User Interface Software and Technology」會議上(人機互動領域)
• Sikuli: Using GUI Screenshots for Search and Automation
Sikuli
• 可執行於 Windows、Mac OS 和 Linux 作業系統
• Script language: Jython
• Applications – It can interact with many types of UI elements – More complex scripts can respond to screen events
Sikuli
• Click on
• Which row? • Which column? • Which component ID? • Which name? • Which label?
Think Programmingly
Think Sikuli
• What you see is what you script
開啟應用程式
等待圖示出現
點擊圖示後,鍵盤輸入 www.google.com
鍵盤控制
檢查圖示是否出現
What’s wrong?
?
Turn on the bluetooth
Solution
1. 直接透過使用者介面操作
Execute Sikuli Script
Execute Sikuli Script
2. 透過 command line 來執行 – 撰寫好的 script 儲存檔案的附檔名為 sikuli
– Example:
Execute Sikuli Script
Execute Sikuli Script
• Sikuli 預設辨識圖片時間為 3 秒鐘,如果沒找到會拋出 FindFailed 的 exception
Execute Sikuli Script
• 捕抓 FindFailed 的 exception
How to apply Sikuli to Android automation testing
How to operate android smartphone through the computer
• 免 root 即可透過輸出到電腦螢幕的模擬器來控制手機 • 能透過電腦的鍵盤或滑鼠操作手機 • 可透過 USB、Wi-‐Fi、3G/LTE 等連接方式至電腦端
Why Mobizen?
• 透過 Sikuli 來做圖形解鎖操作
Demo: Android pattern unlock
無法抓取到 9 個解鎖點元件的屬性
1
2
• Sikuli 系統預設選取的位置為圖片中心點 • 我們須調整點選目標元件的目標位置偏移
Demo: Android pattern unlock
• 可調整圖片辨識相似度
Demo: Android pattern unlock
Demo: Android pattern unlock
Pattern
Demo: Android pattern unlock
Demo
• 透過「抓取元件的屬性值」與「影像辨識」執行自動化測試,兩種各有所限制
1. 「抓取元件的屬性值」缺點 – 自己刻的 UI 元件比較不好操作
2. 「影像辨識」缺點
– 不同解析度螢幕的問題、執行速度較慢
Comparison
抓取元件屬性值
影像辨識
• Sikuli 顛覆原本我們使用的方式,而變成直接透過影像辨識定位某個元件後再對它操作
• 只需要簡單的擷圖工具,把要控制的物件擷圖下來,直接放在語法編輯區中,就可以設計你要進行的動作
• 「抓取元件的屬性值」與「影像辨識」兩種方式混合使用才是王道!
Conclusion
Q & A
Thank You