移動開發工具箱 | 音游銀彈,測試的假腿

音樂遊戲在21世紀風靡於日本、韓國、中國、中國台灣等地區,覆蓋了各個終端平台,從專用遊戲機、 PC 到手機、平板。近年來來《Cytus》《Deemo》《節奏大師》等音樂遊戲借著手機平台的東風吸引了大量玩家。

筆者在早年玩 PC 上的音樂遊戲《O2JAM》(國內久游公司代理並翻譯為《勁樂團》)的時候,使用 PC 版按鍵精靈寫過一些複雜歌曲的腳本,動輒上千個音符讓腳本的時間校準工作異常耗時。

後來 PC 版按鍵精靈推出了腳本錄製功能,錄製狀態下自動將滑鼠和鍵盤的操作記錄並生成腳本,從外部攻克 《O2JAM》的時候,可以每次保留失誤前的錄製腳本,重新開始遊戲運行腳本直到上次失誤的地方接著玩,通過「數次從頭開始」就完成了原來幾個小時校準出來的腳本,生產力得到解放。

隨著移動時代的來臨,手游腳本解決方案與 PC 遊戲並無太大變化,通過「腳本點擊」實現輸入,「截屏比色」獲取輸出判斷遊戲狀態,往複循環實現掛機、輔助。

但是,與 PC 遊戲的鍵盤滑鼠相比,手機遊戲的輸入最本質的差別在於『觸摸屏幕』所產生的巨大信息量 [1] 。

鍵盤在腳本中的數據包括:

  1. 時間點

  2. 按鍵編號
  3. 按下 / 抬起

滑鼠在腳本中的數據包括:

  1. 時間點
  2. 事件(按鍵 / 移動)
  3. 數據(按下 / 抬起 / X坐標 / Y坐標)

『觸摸屏幕』所產生的數據有:

  1. 時間點
  2. 事件(按鍵 / 第x根手指觸屏按下 / 第x根手指觸屏抬起 / 第x根手指移動)
  3. 數據(按鍵按下 / 按鍵抬起 / 觸點中心X坐標 / Y坐標 / 擬合成圓的觸點最小半徑 / 最大半徑 / 壓力大小)

直觀來看, PC 遊戲最複雜的輸入設備只是一個滑鼠,而手機觸屏相當於同時輸入若干個比滑鼠更複雜的外設信息,複雜度不可同日而語。對於略微需要複雜手勢操作的遊戲(例如《Cytus》),腳本編寫的工作量相比於同類的 PC 遊戲指數級增長。

手機的腳本錄製功能的需求產生了,本文的主角 Appetizer [2] 提供了『無需 Root、開箱即用、毫秒級』的 Android 系統錄製重放功能。

視頻 [3] 是使用 Appetizer 錄製重放音樂遊戲《蘭空VOEZ》的過程,一次錄製成功在三台手機上重放了包括多手指滑動在內的 Perfect Combo 效果。

除了用於音游腳本的錄製,對於移動 App 以及手游的開發者和測試人員來說,使用腳本重放的功能可以減免一些人工重複勞動,可以自動完成手工測試的前序狀態步驟,也可以對多設備進行回歸測試、大規模兼容性測試等,作為工具,能夠提高測試工作的生產力。

視頻 [4] 是使用 Appetizer 在瀏覽器、原生應用、遊戲等多種環境下的同步操作,簡單來說就是一邊錄製一邊在多台設備上重放,達到操作一台設備就能控制多台設備的效果。

視頻 [5] 是對於遊戲的一個組合測試流程,Appetizer 也提供了簡單的腳本組合重放的功能,將多個短腳本和若干常規操作組合起來重放,實現一個較長的自動化測試流程。

Appetizer 也提供了命令行工具和 Python 開發者工具包,用於將 Appetizer 功能擴充到原有的的功能添加到現有的開發流程、測試流程中。

如果對 Appetizer 的功能想要有更深的了解,歡迎加入

Appetizer.io 交流QQ群 467889502

參考鏈接:

[1] Android跨進程模擬觸屏事件(sendevent)

[2] Appetizer.io - Mobile DevOps Platform

[3] Appetizer《蘭空VOEZ》錄製與重複

[4] Appetizer 多設備鏡像操作

[5] Appetizer《諾諾來自異世界》重放測試


推薦閱讀:

非UI自動化測試和UI自動化測試
看書三部曲:持續學習,從看書開始 。
過去,現在和未來

TAG:移动开发 | 软件测试 | Android开发 |