android 自动重启测试,检测Android系统重启并生成测试用例的方法与流程
本发明涉及软件技术领域,特别是一种检测Android系统重启并生成测试用例的方法。
背景技术:
目前安卓智能设备的功能越来越多,例如安卓智能电视或安卓智能盒子等,而在不同功能间交叉操作有概率触发Android重启等系统问题。如果出现Android系统重启则会导致很多不可预料的问题。然而现在对该问题没有很好的测试方法,现在常用的是通过monkey来进行系统压测,但这样即便出现Android系统重启也不容易定位及复现问题。若通过人工操作来测试此类问题则会浪费许多人力并且不容易操作出来。
技术实现要素:
为解决现有技术中存在的问题,本发明的目的是提供一种检测Android系统重启并生成测试用例的方法,该方法通过获取Android系统重启时的测试用例,可以有效的提高测试效率,从而提高软件稳定性和缩短开发周期。
为实现上述目的,本发明采用的技术方案是:一种检测Android系统重启并生成测试用例的方法,在对系统进行monkey压力测试的时候,通过shell脚本判断Android系统是否重启并记录重启时间,然后根据monkey日志文件获取重启前的场景启动的进程,根据该进程生成测试用例,具体步骤如下:
步骤一、获取初始的system_sever的进程号作为参数1;
步骤二、输入monkey指令,让整机运行monkey指令;
步骤三、运行shell脚本,该脚本用于定时获取当前system_sever的进程号,将该进程号作为参数2,获取该进程号的时间作为参数3;
步骤四、比较参数1和参数2,如果参数1与参数2相等则不做任何处理,如果参数1与参数2不相等,则停止monkey压力测试并记录下参数3;
步骤五、根据参数3的时间,在monkey日志里,找到与该时间对应的位置,然后向上获取按键操作的键值和场景启动的进程生成测试用例并存储。
作为一种优选的实施方式,还包括以下步骤:
步骤六、运行另一shell脚本,该shell脚本用于按行读取测试用例的数据,并检查是否出现Android系统重启。
作为另一种优选的实施方式,所述步骤六还可以是人工按测试用例进行操作确认Android系统是否重启。
作为另一种优选的实施方式,所述步骤三中,定时获取当前system_sever的进程号的时间间隔为20秒-40秒。
本发明的有益效果是:本发明在monkey压力测试同时,通过shell脚本自动对比system_sever进程,并自动判断Android系统是否重启并记录Android系统重启的时间,然后根据monkey日志记录的操作步骤,来生成自动测试用例脚本来压测此问题,有效地测试当前安卓智能设备在不同功能间交叉操作而触发Android系统重启问题,提高测试效率,提高电视系统软件的稳定性,缩短新产品开发周期,保证软件质量的可靠性。本发明可广泛用于当前安卓系统的智能电视或智能盒子等产品。
附图说明
图1为本发明实施例的流程框图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例
本实施例以长虹Q5T智能电视为例,进行monkey压力测试,出现Android系统重启,导致电视黑屏有声。
如图1所示,一种检测Android系统重启并生成测试用例的方法,在对系统进行monkey压力测试的时候,通过shell脚本判断Android系统是否重启并记录重启时间,然后根据monkey日志文件获取重启前的场景启动的进程,根据该进程生成测试用例,具体步骤如下:
S1、通过串口获取初始的system_sever的进程号是2215,将2215作为参数1;
S2、输入monkey指令,让整机运行monkey指令;
S3、运行first.sh脚本,每30秒钟获取当前system_sever的进程号,first.sh脚本获取到当前system_sever的进程号为15789,出现Android系统重启,将15789作为参数2,记录时间作为参数3,并停止monkey压力测试;其中,first.sh的脚本代码如下:
S4、获取monkey的运行日志monkey.txt,具体内容如下所示:
Sleeping for 1000milliseconds
:Switch:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=Ox10200000;component=cam.te//Allowing start of Intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER)cmp=com.tencent.qqmusictv/.a
Sleeping for 1000milliseconds
:Sending Key(ACTION_DOWN):23//KEYCODE_DPAD_CENTER
:Sending Key(ACTION_UP):23//KEYCODE_DPAD_CENTER
Sleeping for 1000millieeconds
:Sending Key(ACrION_DOWN):23//KEYCoDE_DPAD_CENTER
:Sending Key(ACTION_UP):23//KEYCODE_DPAD_CENTER
Sleeping for 1000milliseconds
:Sending Key(ACTION_DOWN):19//KEYCODE_DPAD_UP
:Sending Key(ACTION_UP):19//KEYCODE_DPAD_UP
Sleeping for1OOO milliseconds
:Sending Key(ACTION_DOWN):22//KEYCoDE_DPAD_RIGHT
:Sending Key(ACTION_UP):22//KEYCODE_DPAD_RIGHT
Sleeping for 1000 milliseconds
:Sending Key(ACTION_DOWN):20//KEYCoDE_DPAD_DWN
:Sending Key(ACTION_UP):20//KEYCODE_DPAD_DOWN
Sleeping for 1000 milliseconds
:Sending Key(ACTION_DOWN):22//KEYCODE_OPAD_RIGHT
:Sending Key(ACTION_UP):22//KEYCODE_DPAD_RIGHT
Sleeping for 1000 milliseconds
:Sending Key(ACTION_DOWN):21//KEYCODE_OPAD_LEFT
:Sending Key(ACTION_UP):21//KEYCODE_DPAD_LEFT
Sleeping for 1000 milliseconds
:Sending Key(ACTION_DOWN):20//KEYCODE_DPAD_DOWN
:Sending Key(ACTION_UP):20//KEYCODE_DPAD_DOWN
Sleeping for 1000 milliseconds
:Sending Key(ACTION_DOWN):82//KEYCODE_MENU
:Sending Key(ACTION_UP):82//KEYCODE_MENU
Sleeping for 1000 milliseconds
:Sending Key(ACTION_DOWN):82//KEYCODE_MENU
:Sending Key(ACTION_UP):82//KEYCODE_MENU
Sleeping for 1000 milliseconds
:Sending Key(ACTION_DOWN):21//KEYCODE_DPAD_LEFT
:Sending Key(ACTION_UP):21//KEYCODE_DPAD_LEFT
S5、根据参数3的时间,在monkey日志里,找到与该时间对应的位置,然后向上获取按键操作的键值和场景启动的进程生成测试用例并存储在operation-scene.txt文件中,内容如下所示:
从该测试用例可以看出,Android系统如果先进入了QQ音乐,进行一系列按键操作后,再进入DTV进入一系列按键操作后,整机出现了Android重启;
S6、运行另一shell脚本second.sh从测试用例operation-scene.txt文件获取参数自动运行测试用例,复现该问题,发现进行这样的组合操作高概率出现Android系统重启,其中,second.sh的脚本代码如下:
该实施例的上述步骤S6还可以是人工按照测试用例进行操作确认Android系统是否重启。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
android 自动重启测试,检测Android系统重启并生成测试用例的方法与流程相关推荐
- linux系统重启方式,查看linux系统重启的命令和方式
在测试中发现,系统总是会莫名其妙的被重启,为定位是人为重启还是程序导致系统重启,查找了一些命令: 1.last reboot命令 [root@over ~]# last reboot reboot ...
- android服务器压力测试工具,Android自动化压力测试图解教程——Monkey工具
有时候我们需要对一个软件进行压力测试,检查该软件的性能.如果是人工进行测试的话,效率会低很多,而且会比较枯燥.这时,中的一个命令行工具Monkey就可以为我们减轻很多重复而又繁琐的工作. 一.Monk ...
- android自动显示金额UI,Android UI中英文自动显示问题
最近作了一个项目,其中有个视频和图片须要添加各类水印(日期,地点,经纬度,用户ID,产品ID等)问题,并且水印还要支持中英文自动切换显示.功能设计和实现算是比较顺利.昨天测试部给了一个小Bug,那就是 ...
- android 自动挂断,[转]android 来电自动接听和自动挂断
注意:android2.3版本不支持下面的自动接听方法.(会抛异常:java.lang.SecurityException: Neither user xxxxx nor current proces ...
- android定制机测试,在 Android Studio 中利用 “产品定制” 进行封闭测试
最近,我们借助 Android 开发者峰会的机会与开发者进行了交流,期间,我们以一个简单的 Notes 应用为例,探讨了它在 Android 上的测试情况.此示例应用是我们在测试 codelab 的过 ...
- dos系统重启计算机名,dos系统重启的命令是是
用DOS命令可以实现很多功能,而且有时候这相对于其他方法比较简单易行,下面就让学习啦小编教大家用dos系统重启的命令,还有自动关机和注销等功能. dos系统重启的命令 按快捷键"win+R& ...
- android 自动读取短息,Android实现短信验证码自动拦截读取功能
本文实例为大家分享了Android短信验证码自动拦截读取 的具体代码,供大家参考,具体内容如下 知识准备: 1.观察者模式的理解[文章稍后来到~~] 2.Android的Cursor使用[Androi ...
- android 自动下一首,Android播播放完SD卡指定文件夹音乐之后,自动播放下一首
最近做一个项目,需要连续播放音乐,播放完一首歌之后,自动播放完下一首歌.不要重复播放. 代码如下: package com.example.asyncplayer_ex; import java.io ...
- android自动登录简书,Android开发之简单登录界面
用户界面基础 Android系统的四大组件分别是活动(Activity).服务(Service).广播接收器(Broadcast Receiver).内容提供器(Content Provider). ...
最新文章
- Travis CI : 最小的分布式系统(二)
- 在dw怎么关联css文件,重新设置Adobe Dreamweaver的文件关联解决办法
- python编码解码的过程_使用Python过程中的编码和解码
- Gym - 100952H--H. Special Palindrome--dp整数划分(模板)
- asp.net如何取得纯客户端控件的值
- Mysql外键约束foreign key
- 工控软件图形界面-控件实现(圆形仪表控件三)(zz)
- 硅谷35岁以后的程序员都在做什么?
- WatchStor观察:冰岛身陷困境也不会停止数据中心项目
- python实现批量转换文件编码(批转换编码示例)
- Layui 表单验证汇总
- 批处理(bat)遍历文件夹下所有文件
- background-position切图
- 前端性能优化方案(图片)
- 【菜鸟进阶之路】P6367 [COCI2006-2007#6] PRASE - 洛谷
- 集成开发环境-大数据开发平台的门户
- Android读书笔记(一)
- 互联网创业如何起步(一)
- 考虑题4所示的日志记录_福建省厦门双十中学2016届高三上学期中考试地理【解析】...
- 2019 掘安杯 JACTF MISC WP
热门文章
- 互联网热门词汇:媒体以及大牛们口中常说的各种X2X指的是什么
- VPS8504B\C微功率隔离电源专用芯片 2.8-6VIN/24V/1A 功率管
- Ubuntu 常用软件安装
- kubernetes:[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz‘ failed
- Codecombat创始人:编程教学平台需要解决的三个问题
- matlab 双目 视差,双目-视差-点云
- 构造哈夫曼树(C语言)
- TabLayout图标显示在文字左边
- 商城项目解析(如果通过输入商品分类显示商品规格参数,在用户输入完商品信息后,又如何把对应的数据Spu,Sku,库存Stock,创建时间,最后一次更新时间等输入到数据库当中)
- 后盾人最新layUI前端框架使用详解_layUI前端框架视频教程