不少游戲測(cè)試同學(xué)在初學(xué)Python爽哎,掌握基礎(chǔ)的語法蜓席,具備一定的編程能力后,不知道如何應(yīng)用到工作當(dāng)中课锌,所以建立了 python-practice-for-game-tester 這個(gè)項(xiàng)目厨内,整理了一些和游戲測(cè)試有關(guān)的Python入門練習(xí)題。
題目清單
- GM指令模版解析
- 命令行工具
- 安卓APK安裝器
- 安卓截圖工具
- 安卓CPU渺贤,內(nèi)存監(jiān)控工具
- PC游戲客戶端Monkey測(cè)試工具
- 快速生成獎(jiǎng)勵(lì)配置
- Excel配置表檢查工具
- 配置表關(guān)鍵字搜索
- 內(nèi)網(wǎng)APK包下載網(wǎng)頁
建議使用Py3.6以上版本雏胃,IDE推薦Pycharm
001-GM指令模版解析
add_item item_id, num
是增加指定道具的GM指令,如果我們想增加1001~1003這幾個(gè)道具各10個(gè)志鞍,需要這么執(zhí)行3次瞭亮,如果要加大量的道具,那執(zhí)行的次數(shù)就更多了
add_item 1001,10
add_item 1002,10
add_item 1003,10
為了提升效率固棚,設(shè)計(jì)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-命令行工具
制作一個(gè)命令行工具仙蚜,將常見的工作輔助腳本整合起來,需要包括的功能有
- SVN更新指定目錄
- SVN還原指定目錄
- 啟動(dòng)游戲客戶端
- 打開指定文件夾
這幾個(gè)功能都可以通過Python調(diào)用CMD來實(shí)現(xiàn)厂汗,如os.system, os.popen, subprocess.Popen等
參考界面效果委粉,使用prettytable
庫
003-安卓APK安裝器
遍歷文件夾,獲取全部的APK文件娶桦,依次調(diào)用adb install
命令安裝到測(cè)試機(jī)中
遍歷可以使用 os.walk 函數(shù)
004-安卓截圖工具
通過adb艳丛,對(duì)當(dāng)前安卓界面進(jìn)行截圖,支持 adb screencap
和 minicap 兩個(gè)方式趟紊,截圖后導(dǎo)出截圖文件到指定文件夾氮双,支持使用pillow
庫對(duì)截圖文件的尺寸進(jìn)行壓縮
minicap是STF的一個(gè)工具,截圖速度是screencap方式的幾十倍霎匈,官方定義是:Stream real-time screen capture data out of Android devices戴差。
005-安卓CPU,內(nèi)存監(jiān)控工具
通過adb命令铛嘱,獲取APP的CPU和內(nèi)存占用暖释,使用pyecharts庫,生成測(cè)試結(jié)果圖表
獲取內(nèi)存占用:
adb shell dumpsys meminfo package_name
獲取CPU占用:
adb shell cat /proc/pid/stat
006-PC游戲客戶端Monkey測(cè)試工具
制作一個(gè)PC游戲游戲客戶端可用的Monkey測(cè)試工具墨吓,功能上模擬adb monkey球匕,支持單擊,雙擊帖烘,長(zhǎng)按亮曹,拖動(dòng)等操作,可配置各操作的百分比
可以試試 PyAutoGUI 這個(gè)庫
007-快速生成獎(jiǎng)勵(lì)配置
解析為下邊的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數(shù)值表,檢查是否有配置錯(cuò)誤乡摹,支持以下檢查方式
- id列是否存在重復(fù)的id役耕,如兩個(gè)2001的id
- id列是否連續(xù),不存在如 1聪廉,2瞬痘,3,4板熊,4框全,6這樣的錯(cuò)誤
- Lua數(shù)據(jù)列是否存在中文標(biāo)底符號(hào),如"邻邮,"
- Lua數(shù)據(jù)列是否存在不成對(duì)的 {} 竣况,如
{{reward_type = REWARD_TYPE_ITEM, item_type = 2001, item_count = 80}
009-配置表關(guān)鍵字搜索
根據(jù)輸入的關(guān)鍵字克婶,在配置表目錄下進(jìn)行遍歷筒严,講包含該關(guān)鍵字的配置表路徑丹泉,關(guān)鍵字所在行數(shù),及附近幾行的內(nèi)容打印出來鸭蛙,支持xml,lua,json
等文本格式即可
應(yīng)用場(chǎng)景
策劃:我把配置表里邊的XXX道具全刪了摹恨,你看看有沒有漏的
測(cè)試:噢,我跑下腳本
010-內(nèi)網(wǎng)APK包下載網(wǎng)頁
制作一個(gè)網(wǎng)頁娶视,網(wǎng)頁會(huì)展示已經(jīng)上傳到網(wǎng)頁目錄下的APK文件晒哄,包括文件名字,文件大小肪获,修改日期寝凌,下載二維碼,使用手機(jī)掃描該二維碼孝赫,會(huì)觸發(fā)下載较木。
網(wǎng)頁可以基于Flask框架運(yùn)行,二維碼生成可以使用qrcode庫
完整的項(xiàng)目在Github上青柄,歡迎圍觀和提交練習(xí)代碼 python-practice-for-game-tester