不少游戲測試同學在初學Python,掌握基礎的語法,具備一定的編程能力后,不知道如何應用到工作當中,所以建立了 python-practice-for-game-tester 這個項目,整理了一些和游戲測試有關的Python入門練習題。
題目清單
- GM指令模版解析
- 命令行工具
- 安卓APK安裝器
- 安卓截圖工具
- 安卓CPU,內存監控工具
- PC游戲客戶端Monkey測試工具
- 快速生成獎勵配置
- Excel配置表檢查工具
- 配置表關鍵字搜索
- 內網APK包下載網頁
建議使用Py3.6以上版本,IDE推薦Pycharm
001-GM指令模版解析
add_item item_id, num
是增加指定道具的GM指令,如果我們想增加1001~1003這幾個道具各10個,需要這么執行3次,如果要加大量的道具,那執行的次數就更多了
add_item 1001,10
add_item 1002,10
add_item 1003,10
為了提升效率,設計GM指令模版,需要滿足以下幾種形式
add_item {{1001 to 1003}},10
解析為:
add_item 1001,10
add_item 1002,10
add_item 1003,10
add_item {{1001,1003,1006}},10
解析為:
add_item 1001,10
add_item 1003,10
add_item 1006,10
add_item {{1001 to 1005 not 1002,1003}},10
解析為:
add_item 1001,10
add_item 1004,10
add_item 1005,10
002-命令行工具
制作一個命令行工具,將常見的工作輔助腳本整合起來,需要包括的功能有
- SVN更新指定目錄
- SVN還原指定目錄
- 啟動游戲客戶端
- 打開指定文件夾
這幾個功能都可以通過Python調用CMD來實現,如os.system, os.popen, subprocess.Popen等
參考界面效果,使用prettytable
庫
003-安卓APK安裝器
遍歷文件夾,獲取全部的APK文件,依次調用adb install
命令安裝到測試機中
遍歷可以使用 os.walk 函數
004-安卓截圖工具
通過adb,對當前安卓界面進行截圖,支持 adb screencap
和 minicap 兩個方式,截圖后導出截圖文件到指定文件夾,支持使用pillow
庫對截圖文件的尺寸進行壓縮
minicap是STF的一個工具,截圖速度是screencap方式的幾十倍,官方定義是:Stream real-time screen capture data out of Android devices。
005-安卓CPU,內存監控工具
通過adb命令,獲取APP的CPU和內存占用,使用pyecharts庫,生成測試結果圖表
獲取內存占用:
adb shell dumpsys meminfo package_name
獲取CPU占用:
adb shell cat /proc/pid/stat
006-PC游戲客戶端Monkey測試工具
制作一個PC游戲游戲客戶端可用的Monkey測試工具,功能上模擬adb monkey,支持單擊,雙擊,長按,拖動等操作,可配置各操作的百分比
可以試試 PyAutoGUI 這個庫
007-快速生成獎勵配置
讀取下圖的獎勵配置Excel文件
解析為下邊的Lua格式,reward_type
固定為REWARD_TYPE_ITEM
,并保存到reward.lua
文件中
{
[1] = {
[1] = {reward_type = REWARD_TYPE_ITEM, item_type = 2001, item_count = 80,},
[2] = {reward_type = REWARD_TYPE_ITEM, item_type = 2004, item_count = 80,},
[3] = {reward_type = REWARD_TYPE_ITEM, item_type = 3001, item_count = 25,},
[4] = {reward_type = REWARD_TYPE_ITEM, item_type = 6101, item_count = 11,},
},
[2] = {
[1] = {reward_type = REWARD_TYPE_ITEM, item_type = 2001, item_count = 70,},
[2] = {reward_type = REWARD_TYPE_ITEM, item_type = 2004, item_count = 70,},
[3] = {reward_type = REWARD_TYPE_ITEM, item_type = 3002, item_count = 20,},
},
[3] = {
[1] = {reward_type = REWARD_TYPE_ITEM, item_type = 2001, item_count = 60,},
[2] = {reward_type = REWARD_TYPE_ITEM, item_type = 2004, item_count = 60,},
[3] = {reward_type = REWARD_TYPE_ITEM, item_type = 3003, item_count = 15,},
[4] = {reward_type = REWARD_TYPE_ITEM, item_type = 6103, item_count = 13,},
},
}
008-Excel配置表檢查工具
讀取策劃配置的Excel數值表,檢查是否有配置錯誤,支持以下檢查方式
- id列是否存在重復的id,如兩個2001的id
- id列是否連續,不存在如 1,2,3,4,4,6這樣的錯誤
- Lua數據列是否存在中文標底符號,如","
- Lua數據列是否存在不成對的 {} ,如
{{reward_type = REWARD_TYPE_ITEM, item_type = 2001, item_count = 80}
009-配置表關鍵字搜索
根據輸入的關鍵字,在配置表目錄下進行遍歷,講包含該關鍵字的配置表路徑,關鍵字所在行數,及附近幾行的內容打印出來,支持xml,lua,json
等文本格式即可
應用場景
策劃:我把配置表里邊的XXX道具全刪了,你看看有沒有漏的
測試:噢,我跑下腳本
010-內網APK包下載網頁
制作一個網頁,網頁會展示已經上傳到網頁目錄下的APK文件,包括文件名字,文件大小,修改日期,下載二維碼,使用手機掃描該二維碼,會觸發下載。
網頁可以基于Flask框架運行,二維碼生成可以使用qrcode庫
完整的項目在Github上,歡迎圍觀和提交練習代碼 python-practice-for-game-tester