导航:首页 > 操作系统 > 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手机测试用例相关的资料

热点内容
海康录像机怎么关视频加密 浏览:786
编程以后有可能被机器人代替吗 浏览:515
windows创建文件命令 浏览:984
linuxcopy文件内容 浏览:381
程序员帅哥秃顶 浏览:839
阿里云服务器开通流程 浏览:105
如何开云服务器 浏览:979
网站小说源码 浏览:301
php用什么ide 浏览:867
网上预约课程app哪个好 浏览:152
android兼容测试工具 浏览:96
云服务器不支持虚拟化怎么办 浏览:189
加密方式的演变 浏览:364
java常用算法pdf 浏览:734
服务器数据遇到异常什么原因 浏览:450
phpexif信息 浏览:543
单片机三字节浮点数 浏览:756
命令与征服泰伯利亚战争下载 浏览:378
c窗口界面编程 浏览:23
hypermill编程能做模板吗 浏览:782