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

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 os
os.chdir("/usr/tem")
char="my name is test"
f = open("test.txt","w")
print >>f,char

浅谈python 手机crash和app crash循环执行问题的更多相关文章

  1. 浅谈Python时间模块

    浅谈Python时间模块 今天简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用.希望这篇文章对于学习Python的朋友们有所帮助 ...

  2. 浅谈Python在信息学竞赛中的运用及Python的基本用法

    浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...

  3. 浅谈python字符串存储形式

    http://blog.csdn.net/zhonghuan1992 钟桓 2014年8月31日 浅谈python字符串存储形式 记录一下自己今的天发现疑问而且给出自己现有知识有的回答. 长话短说,用 ...

  4. 开发技术--浅谈Python函数

    开发|浅谈Python函数 函数在实际使用中有很多不一样的小九九,我将从最基础的函数内容,延伸出函数的高级用法.此文非科普片~~ 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点 ...

  5. 开发技术--浅谈python数据类型

    开发|浅谈python数据类型 在回顾Python基础的时候,遇到最大的问题就是内容很多,而我的目的是回顾自己之前学习的内容,进行相应的总结,所以我就不玩基础了,很多在我实际生活中使用的东西,我会在文 ...

  6. 开发技术--浅谈python基础知识

    开发|浅谈python基础知识 最近复习一些基础内容,故将Python的基础进行了总结.注意:这篇文章只列出来我觉得重点,并且需要记忆的知识. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对 ...

  7. 浅谈 js 正则字面量 与 new RegExp 执行效率

    原文:浅谈 js 正则字面量 与 new RegExp 执行效率 前几天谈了正则匹配 js 字符串的问题:<js 正则学习小记之匹配字符串> 和 <js 正则学习小记之匹配字符串优化 ...

  8. [转]浅谈Python web框架

    说到web framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework.framework不可胜数,不完全列表见:http://wi ...

  9. 浅谈Python Web的五大框架

    说到Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界.各种micro-framework.framework不可胜数. 尽管还有一大脚本语言PHP也有 ...

随机推荐

  1. Canvas get/putImageData

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. (二)Hololens Unity 开发之 语音识别

    学习源于官方文档 Voice input in Unity 笔记一部分是直接翻译官方文档,部分各人理解不一致的和一些比较浅显的保留英文原文 (二)Hololens Unity 开发之 语音识别 Hol ...

  3. 不要怂,就是GAN (生成式对抗网络) (四):训练和测试 GAN

    在 /home/your_name/TensorFlow/DCGAN/ 下新建文件 train.py,同时新建文件夹 logs 和文件夹 samples,前者用来保存训练过程中的日志和模型,后者用来保 ...

  4. iOS开发中@property的属性weak nonatomic strong readonly等介绍

    @property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法.在Xcode4.5以及以后的版本,@synthesize可以省略. 1.atomic与nonatomica ...

  5. HDU 3782 xxx定律

    xxx定律 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. JS Proptotyp以及__proto__

    一直以来都特别疑惑js原型链的只是,每次看到类似的文章也是迷迷糊糊,今天终于有点小的感悟,记录下来 在JS中一切都是对象,而通过其它的面向对象语言,对象又是类型的实例,所以类型和对象是不同的,那么在j ...

  7. linux 进程间通信 之fifo

    上一篇博客已经介绍了一种进程间通信的方式,但是那只是针对于有血缘关系的进程,即父子进程间的通信,那对于没有血缘关系的进程,那要怎么通信呢?  这就要创建一个有名管道,来解决无血缘关系的进程通信, fi ...

  8. 关于Test--Pattern Generator IP核的测试

    关于Test--Pattern Generator IP核的测试 1.Test--Pattern Generator 功能介绍 生成24-bit RGB视频流,此IP核可以用于系统测试,不需要先在片上 ...

  9. Lua与.net的CLR相互调用

    工程环境搭建: 下载luainterface-1.5.3.zip文件,使用到的dll为Built目录下的LuaInterface.dll.lua51.dll.luanet.dll LuaInterfa ...

  10. selenium框架与chrome浏览器的不兼容问题

    在一次偶然的情况下,在chrome上用selenium框架去抓取某个id为XX的页面元素,使用WebDriver的findElement().click()方法进行点击,原来在firefox浏览器运行 ...