SlideShare a Scribd company logo
1 of 34
Download to read offline
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	
  

More Related Content

Similar to 應用 Sikuli 在 Android 設備上執行自動化測試

豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验
drewz lin
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
netdbncku
 
Mobile app的測試v2
Mobile app的測試v2Mobile app的測試v2
Mobile app的測試v2
Mr PM
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
My own sweet home!
 
Athrun instrument driver
Athrun instrument driverAthrun instrument driver
Athrun instrument driver
drewz lin
 
開放原始碼 Ch3.2 mobile - oss - oss行動領域-2 (ver1.0)
開放原始碼 Ch3.2  mobile - oss - oss行動領域-2 (ver1.0)開放原始碼 Ch3.2  mobile - oss - oss行動領域-2 (ver1.0)
開放原始碼 Ch3.2 mobile - oss - oss行動領域-2 (ver1.0)
My own sweet home!
 

Similar to 應用 Sikuli 在 Android 設備上執行自動化測試 (19)

豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验
 
Tcon分享 芈峮
Tcon分享 芈峮Tcon分享 芈峮
Tcon分享 芈峮
 
CICD Workshop 20180922
CICD Workshop 20180922CICD Workshop 20180922
CICD Workshop 20180922
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Angular Testing for Book Club Online of Angular Taiwan
Angular Testing for Book Club Online of Angular TaiwanAngular Testing for Book Club Online of Angular Taiwan
Angular Testing for Book Club Online of Angular Taiwan
 
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
 
Mobile app的測試v2
Mobile app的測試v2Mobile app的測試v2
Mobile app的測試v2
 
DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學
 
Appium手机自动化测试 tester home公开课
Appium手机自动化测试 tester home公开课Appium手机自动化测试 tester home公开课
Appium手机自动化测试 tester home公开课
 
Static Code Analysis 靜態程式碼分析
Static Code Analysis 靜態程式碼分析Static Code Analysis 靜態程式碼分析
Static Code Analysis 靜態程式碼分析
 
Html5移动网站开发实践
Html5移动网站开发实践Html5移动网站开发实践
Html5移动网站开发实践
 
Google Glass - Unit01: Design
Google Glass - Unit01: DesignGoogle Glass - Unit01: Design
Google Glass - Unit01: Design
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
 
Athrun instrument driver
Athrun instrument driverAthrun instrument driver
Athrun instrument driver
 
Core Animation vs. SpriteKit
Core Animation vs. SpriteKitCore Animation vs. SpriteKit
Core Animation vs. SpriteKit
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路
 
I os 07
I os 07I os 07
I os 07
 
開放原始碼 Ch3.2 mobile - oss - oss行動領域-2 (ver1.0)
開放原始碼 Ch3.2  mobile - oss - oss行動領域-2 (ver1.0)開放原始碼 Ch3.2  mobile - oss - oss行動領域-2 (ver1.0)
開放原始碼 Ch3.2 mobile - oss - oss行動領域-2 (ver1.0)
 
向jquery学习
向jquery学习向jquery学习
向jquery学习
 

應用 Sikuli 在 Android 設備上執行自動化測試