博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈python 手机crash和app crash循环执行问题
阅读量:5285 次
发布时间:2019-06-14

本文共 2158 字,大约阅读时间需要 7 分钟。

----------------引子----------------

app自动化测试人员经常遇见的问题,第一:手机抛的异常导致脚本循环停止!!!!!!!!第二:app抛的异常导致脚本循环停止!!!!!,那么问题来了,如何做脚本控制才能解决以上问题呢?

在执行脚本的时候,手机抛的异常我们脚本是无法控制的,意思也就是我们catch不了的,针对手机本身throw的crash我们可以在正常的脚本执行下每次循环结束后执行下手机本身的操作,如 操作home键,操作back键,点击手机本身某个坐标等等

具体思路就是在正常脚本执行中插入操作手机操作:具体脚本如下

for i in  range(1000):	try:		restartAppTotalTime = os.popen("adb shell am start -W -S PackName/ackName/.ActivityName| findstr TotalTime >> TotalTime.log")		time.sleep(5)		#print restartAppTotalTime.read();		for x in range(5):			StartAppTOTALPss = os.popen("adb shell dumpsys meminfo -a PackName| findstr TOTAL >> StartAppTOTALPss.log")  			#print StartAppTOTALPss.read();			StartAppTOTALPss = os.popen("adb shell dumpsys meminfo -a PackName | findstr Native  | findstr Heap >> StartAppNativePss.log")  			#print StartAppTOTALPss.read();			StartAppTOTALPss = os.popen("adb shell dumpsys meminfo -a PackName| findstr Dalvik  | findstr Heap >> StartAppDalvikPss.log")  			#print StartAppTOTALPss.read();			restartAppCpuThr = os.popen("adb shell top  -d 1 -n 2 -m 1 -s cpu | findstr PackName >> AppCpuThr.log")			#print restartAppCpuThr.read();		time.sleep(3)		#出现异常按home键--防止手机系统本身抛的异常弹框		HomeKeyStart = os.popen("adb shell input keyevent 3")		#出现异常点击返回键退出APP程序--防止手机系统本身抛的异常弹框		BackKeyStart = os.popen("adb shell input keyevent 4")		time.sleep(1)		BackKeyEnd = os.popen("adb shell input keyevent 4")

 如果系统throw的crash是一个系统的弹框,也可以确认弹框在手机的坐标位置,然后关闭这个弹框 可以用adb shell input tap X Y

具体如何确定X和Y值可以问度娘,度娘会告诉你用那些工具譬如ps等等~~~

好了,以上就是解决手机本身throw的crash。

那么如果是app本身trhow的crash那么久容易简单多了!!!!

最简单直接粗暴的办法就是force-stop!!!~~~~

或者操作手机本身!!!具体代码如下

except Exception,e:		print Exception,":",e		print u"在没有出现异常的情况下执行的循环次数为:"+i		#出现异常点击返回键退出APP程序		BackKeyStart = os.popen("adb shell input keyevent 4")		time.sleep(1)		BackKeyEnd = os.popen("adb shell input keyevent 4")		#出现异常按home键		HomeKeyStart = os.popen("adb shell input keyevent 3")		#强制杀死进程		StopApp = os.popen("adb shell am force-stop PackName")		continue

 那么又一个问题来了!!!

如何记录app本身再循环执行时出现的异常次数呢?

用的是print方法向文件中写入内容

import osos.chdir("/usr/tem")char="my name is test"f = open("test.txt","w")print >>f,char

 

转载于:https://www.cnblogs.com/nzg-noway/p/6547339.html

你可能感兴趣的文章
Django——如何在Django模板中注入全局变量?——part1
查看>>
esriControlsMousePointer常量
查看>>
前端面试记录NO.1
查看>>
【java】String类和StringBuffer类常用操作
查看>>
MariaDB MariaDB、MySQL存储过程、游标基础应用举例说明
查看>>
测试思想-测试设计 测试用例设计需要注意的几个点
查看>>
MySQL半同步复制
查看>>
DIY一个基于树莓派和Python的无人机视觉跟踪系统
查看>>
jprofiler9.1.1 安装与配置
查看>>
ArcGIS API中FindTask中文搜索无效,服务器编码问题URIEncoding="utf-8"
查看>>
Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
查看>>
JAVA字符串格式化-String.format()的使用
查看>>
docker-registry 搭建私有仓库服务器
查看>>
C#窗口矩形区域着色
查看>>
关于 Mutex 与 Lock 无聊的测试
查看>>
openstack 升级设计要求的指导原则
查看>>
(转载)iOS 一个开发者账号 多台Mac 共用
查看>>
洛谷 P1135 奇怪的电梯 【基础BFS】
查看>>
hdu 3635 Dragon Balls (带权并查集)
查看>>
Hdu 1686 Oulipo (KMP)
查看>>