導航:首頁 > 操作系統 > android手機測試用例

android手機測試用例

發布時間:2024-02-27 01:32:45

A. 怎麼寫android手機游戲測試用例

第一項:游戲安裝

  1. 游戲安裝後是否與安卓軟體版本(手機環境)兼容

  2. 游戲安裝後是否會影響到其他軟體的使用

  3. 游戲安裝後是否有優化功能

  4. 游戲安裝包是否過大

  5. 游戲安裝包是否安全,無病毒、木馬等惡意破壞性程序

  6. 游戲安裝後顯示的游戲圖標(App Icon)是否顯示正常

    ......

第二項:游戲畫面與文字

  1. 游戲界面是否能依照手機的屏幕擺放位置來進行有效的橫/豎屏切換

  2. 游戲畫面是否在游戲開啟後運行流暢

  3. 游戲畫面是否符合游戲風格

  4. 游戲畫面是否符合大眾的審美觀,並無敏感性因素

  5. 游戲畫面是否符合屏幕解析度的標准,無顯示不完整等異常現象

  6. 游戲文字是否顯示清晰

  7. 游戲文字是否美觀,並與游戲畫面相匹配

  8. 游戲文字是否符合大眾人的審美觀,並沒有敏感性詞彙

  9. 游戲文字是否漢化完整

  10. 游戲文字是否能根據語言的設置進行多國語言文字的切換

  11. 游戲文字是否出現錯別字、繁體字(某些狀況可以考慮使用繁體字)、火星文等文字

    ......


第三項:游戲聲音

  1. 游戲背景音樂是否能在游戲運行時播放

  2. 游戲背景音樂是否出現播放延遲、播放提前等播放不同步現象

  3. 游戲背景音樂是否與游戲風格相符合

  4. 游戲音效是否能在游戲運行時播放,並無不同步現象

  5. 游戲背景音樂和音效是否符合大眾的審美觀,並沒有敏感性因素

  6. 當進入通話狀態時,是否出現聲音混合現象

  7. 游戲聲音是否出現變形

    ......




第四項:游戲核心功能(可玩性)

  1. 游戲玩家基本動畫(站立、行走、奔跑、基本攻擊、技能攻擊等)播放是否正常

  2. 游戲在運行時是否出現死機、黑屏、崩潰等嚴重影響游戲體驗的現象

  3. 任務系統是否完善、是否出現描述錯誤、當前任務與進行中的任務不匹配等現象,達到任務要求後能否提交任務,提交任務後任務能否完成,任務完成的獎勵是否正確

  4. 游戲劇情(世界觀)是否符合大眾的審美觀,並沒有敏感性因素

  5. 游戲玩家能否正常的攻擊怪物、拾取物品、受到傷害,玩家生命值為0時能否正常死亡

  6. 游戲敵人(怪物或對手)能否正常的攻擊玩家、受到傷害,敵人(怪物或對手)生命值為0時能否正常死亡

  7. 玩家與敵人(怪物或對手)的生命值、法力值等是否顯示正常(包括數值和血條),受到攻擊後,生命值是否下降,釋放技能後,法力值是否下降(包括數值和血條)

  8. 殺死敵人(怪物或對手)後,物品的掉落和經驗值的獎勵是否正常

  9. 玩家的攻擊力、防禦力等數值計算是否正確,當玩家強化裝備後,攻擊力、防禦力等數值能否上升

  10. 玩家的背包系統是否完善,能否實現拾取物品後物品出現在背包內,當背包超出負重上限或物品欄滿欄的時候是否還能撿取物品,能否在背包內實現物品出售、物品修理等功能,背包內的物品信息是否顯示正確,使用後能否出現效果。

  11. 游戲是否具備自動尋路等導航功能,若有,該功能是否完善,玩家、寵物、坐騎和怪物的跟蹤是否正常

  12. 當玩家的裝備的持久度不足時,攻擊力、防禦力能否受到影響

  13. 進入游戲後,游戲場景的渲染、紋理是否顯示正常

  14. NPC的功能是否能實現

  15. 游戲每個功能按鍵是否可以點擊,點擊後是否出現點擊後的效果

  16. 游戲虛擬桿是否可以正常的控制玩家的移動,游戲的虛擬按鈕是否可以正常的控制玩家的攻擊

  17. 行會系統、好友系統以及結婚系統是否完善,玩家列表是否是當前狀態的玩家列表

  18. 游戲是否有PK系統(PVE、PVP),若有,該功能是否完善

  19. 游戲是否具備組隊功能,若有,該功能是否完善

  20. 物品出售時金幣計算是否正確

  21. 游戲關卡的小地圖顯示是否正常,地圖圖標是否和玩家、敵人(怪物或對手)同步

  22. 游戲的記時是否連續、一致(指來電後時間繼續,從來電時刻開始計時)

  23. 玩家的游戲體驗是否方便

  24. 游戲說明是否與游戲操作功能保持一致

  25. 游戲界面的跳轉是否正常

  26. 新手玩家的前期體驗是否快速方便,玩家等級的提升是否快速,是否能給玩家帶來一定的緊張刺激感

  27. 退出遊戲後,游戲信息能否正確存檔

    ......



第五項:充值與商城系統

  1. 商城內物品價格是否合理

  2. 能否通過花費的現金來兌換一定量的虛擬游戲幣(基本充值功能的實現)

  3. 購買商品後,商品信息能否正確顯示,使用後能否出現效果

  4. 能否通過游戲官方、支付寶、微信等支付現金來實現充值交易

  5. 點擊充值按鈕後能否進入官方充值網站

  6. 商城內物品的上架/下架是否及時,是否有折扣等福利性活動

    ......

第六項:游戲中斷測試

  1. 被測游若與時間相關(游戲中有記時功能),來電後時間是否與來電前一致

  2. 游戲待機後,游戲能否暫停並關閉屏幕,並且來電或其他優先操作後,游戲能否暫停,並無其他異常現象(死機、黑屏、崩潰等)。

  3. 游戲中不同的界面來電時,來電提示正常,接聽,掛斷電話等操作後,返回遊戲是否出現異常。

  4. 游戲中不同的界面手機來簡訊時,簡訊提示正常,回復簡訊後返回遊戲是否出現異常

  5. 游戲中不同的界面來電時,來電提示正常,接聽,掛斷電話等操作後,返回遊戲後游戲音效是否出現異常

  6. 游戲中不同的界面手機來簡訊時,簡訊提示正常,回復簡訊後返回遊戲後游戲音效是否出現異常

    ......

第七項:游戲其他功能

  1. 游戲注冊是否有實名制

  2. 游戲是否有未成年人防沉迷系統

  3. 游戲的安全防護措施是否到位(倉庫鎖、登錄鎖、游戲物品鎖等)

  4. 游戲獲得的成就能否通過QQ、微信、支付寶等與聯系人分享

    ......

B. 如何使用python做android的自動化測試

開始第一個簡單的Android UI自動化測試
1.使用adb命令連接真機或模擬器
2.打開uiautomatorviewer工具
3.使用uiautomatorviewer工具獲取應用的元素進行定位
4.簡單介紹unittest框架的使用方法
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試
1.使用adb命令連接真機或模擬器:
手機USB連接電腦,進入開發者模式;
cmd命令:adb devices ,查看手機是否連接
這里寫圖片描述
顯示錯誤
這是因為adb的埠被佔用,我們需要查看是什麼應用佔用了這個埠(5037為adb默認埠)
cmd命令 : netstat -aon|findstr 「5037」
這里寫圖片描述
可以看到佔用5037埠對應的程序的PID號為8388;
cmd命令 : tasklist|findstr 「8388」
這里寫圖片描述
可以看出8388對應的程序為kadb.exe,說明該程序正在使用5037埠;
這時我們需要在任務管理器中結束kadb.exe進程,按快捷鍵「Ctrl+Shift+Esc」調出Windows任務管理器,找到「kadb.exe」,單擊下方的結束進程即可!
這里寫圖片描述
我們再次運行cmd命令:adb devices
這里寫圖片描述
這一步成功後我們才能運行sdk自帶的uiautomatorviewer;
我們需要用uiautomatorviewer工具來獲取元素,用於定位。
cmd命令:uiautomatorviewer,打開uiautomatorviewer界面
這里寫圖片描述
或者找到sdk目錄:sdk\tools中找到uiautomatorviewer.bat文件雙擊運行
這里寫圖片描述
2.打開uiautomatorviewer工具
這里寫圖片描述
我們可以根據text,resource-id,class等元素進行定位
3.使用uiautomatorviewer工具獲取應用的元素進行定位
這里我使用python自帶的IDLE進行編寫測試腳本,打開python文件找到IDLE(python GUI)雙擊打開,如圖:
這里寫圖片描述
4.簡單介紹unittest框架的使用方法
# -*- coding:utf-8 -*-
from uiautomator import device as d
import unittest
class Mytest(unittest.TestCase):
#初始化工作
def setUp(self):
print "--------------初始化工作"
#退出清理工作
def tearDown(self):
print "--------------退出清理工作"
#測試點擊貓寧考勤case
def test_login(self):
d(text="貓寧考勤").click()
print "--------------測試1"
#測試2
def test_z(self):
print "--------------測試2" #這里你可以寫你的第二個測試用例,
#測試3
def test_w(self):
print "--------------測試3" #這里你可以寫你的第三個測試用例。。。。。。。。。。。。。
if __name__ == '__main__':
unittest.main()
結果如下:
Testing started at 21:14 …
————–初始化工作
————–測試1
————–退出清理工作
————–初始化工作
————–測試3
————–退出清理工作
————–初始化工作
————–測試2
————–退出清理工作
Process finished with exit code 0
從結果中我們可以看出unittest框架的運行方式為:
setUp 測試1 tearDown
setUp 測試2 tearDown
setUp 測試3 tearDown
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試
# -*- coding:utf-8 -*-
from uiautomator import device as d
import time
import unittest
class MyTestSuite(unittest.TestCase):
# 初始化工作
def setUp(self):
print "--------------初始化工作"
# 退出清理工作
def tearDown(self):
print "--------------退出清理工作"
#***************************方法**************************************
# 判斷控制項是否存在 & text
def check_controls_exists(self, controls_text):
if d(text=controls_text).exists:
return 1
else:
return 0
# 判斷按鈕是否置灰 & text & clickable
def check_controls_click_text(self, controls_text):
if d(text=controls_text).info.get("clickable") is True:
return 1
else:
return 0
#assertIn(a, b) a in b
def check_ainb(self,resourceid,b):
if d(resourceId=resourceid).info.get("text") in b:
return 1
else:
return 0
#***********************************************************
# 注冊模塊
def test_Aregister(self):
try:
time.sleep(2)
#貓寧考勤開啟全新時代
self.assertEqual(self.check_controls_click_text("注冊"),1,u"貓寧考勤開啟全新時代")
# 貓寧考勤開啟全新時代--》點擊注冊按鈕進入注冊貓寧界面
d(text="注冊").click()
time.sleep(3)
#注冊貓寧界面
self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_phone","請輸入手機號碼"),
1,u"注冊頁面-》請輸入手機號碼")
self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_verifycode","請輸入驗證碼"),
1,u"注冊頁面-》請輸入驗證碼")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0,u"注冊頁面-》獲取驗證碼")
self.assertEqual(self.check_controls_click_text("《中科愛訊服務協議》"), 1,u"注冊頁面-》《中科愛訊服務協議》")
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"注冊頁面-》注冊")
time.sleep(2)
#《中科愛訊服務協議》
d(text="《中科愛訊服務協議》").click()
time.sleep(2)
self.assertEqual(self.check_ainb("com.isentech.attendancet:id/title","服務協議"), 1,u"注冊頁面-》服務協議")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/title_back").click()
time.sleep(1)
#手機號不輸入是否能注冊
d(text="注冊").click()
time.sleep(3)
# 手機號只輸入1個數字是否能注冊&只輸入1個數字是否能獲取驗證碼
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("1")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0)
time.sleep(1)
d(text="注冊").click()
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()
time.sleep(1)
#只輸入5個數字是否能獲取驗證碼
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("11111")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0)
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()
time.sleep(1)
#只輸入手機號是否能注冊
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text(phone_number)
self.assertEqual(self.check_controls_click_text("注冊"), 0)
time.sleep(1)
d(text="注冊").click()
time.sleep(1)
#輸入正確的驗證碼&獲取驗證碼是否高亮
d(resourceId="com.isentech.attendancet:id/regis_verifycode").set_text("5648")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 1)
time.sleep(2)
#密碼只輸入1個數字是否能注冊&注冊按鈕是否高亮
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("1")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("1")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"密碼只輸入1個數字是否能注冊")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()
d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()
time.sleep(1)
#輸入不相同的密碼是否能注冊
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("12345")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"輸入不相同的密碼是否能注冊")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()
d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()
time.sleep(1)
#輸入正確的密碼是否能注冊&我已同意是否打鉤
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("123456")
time.sleep(1)
self.assertEqual(self.check_controls_click_resourceId("com.isentech.attendancet:id/regis_agree"), 1)
self.assertEqual(self.check_controls_click_text("注冊"), 1)
time.sleep(2)
d(text="注冊").click()
time.sleep(8)
except Exception, e:
print u"Error: 注冊模塊有問題\n", e
def test_app():
test_unit = unittest.TestSuite()
test_unit.addTest(MyTestSuite("test_Aregister"))
if __name__ == "__main__":
# 測試app
unittest.main()

閱讀全文

與android手機測試用例相關的資料

熱點內容
加密方式的演變 瀏覽:360
java常用演算法pdf 瀏覽:732
伺服器數據遇到異常什麼原因 瀏覽:450
phpexif信息 瀏覽:542
單片機三位元組浮點數 瀏覽:756
命令與征服泰伯利亞戰爭下載 瀏覽:378
c窗口界面編程 瀏覽:23
hypermill編程能做模板嗎 瀏覽:782
計算機網路最經典的演算法 瀏覽:628
華為思科的配置命令 瀏覽:869
linux設置光碟啟動 瀏覽:361
程序員俱樂部注冊 瀏覽:19
洗潔精雞蛋盤解壓視頻 瀏覽:293
企業內網加密app 瀏覽:49
騰訊雲伺服器怎麼設置本地網路 瀏覽:623
日常程序員 瀏覽:515
哪個pe有bit加密功能 瀏覽:110
rust伺服器是用什麼ip 瀏覽:693
java隨機字元串生成 瀏覽:555
數碼寶貝編程人物 瀏覽:392