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

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. Spring MVC整合DWR

    http://blog.csdn.net/geloin/article/details/7537148 基本上与上文描述的情况一致: 在Controller中可以进行Service层的调用: 如果需要 ...

  2. HTML5行业现状与未来 - 2016年终大盘点

    * { margin: 0; padding: 0 } .con { width: 802px; margin: 0 auto; text-align: center; position: inher ...

  3. 利用享元模式来解决DOM元素过多导致的网页解析慢、卡死的问题

    我也不知道应该为本文的思路取一个什么比较恰当的标题,但是感觉符合享元模式的思路. 在一些网页应用中,有时会碰到一个超级巨大的列表,成千上万行,这时大部份浏览器解析起来就非常痛苦了(有可能直接卡死). ...

  4. CF 752C. Santa Claus and Robot

    C. Santa Claus and Robot time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  5. Hadoop权威指南:HDFS-数据流

    Hadoop权威指南:HDFS-数据流 [TOC] 剖析文件读取 客户端通过调用FileSystem对象的open()方法来打开希望读取的文件,对于HDFS来说, 这个对象是分布式文件系统的一个实例 ...

  6. Ubuntu 16.04安装配置Samba服务

    Samba是开源软件,用来让Linux系统与Windows系统的SMB/CIFS网络协定做连结,实现Windows主机与Linux服务器之间的资源共享.Samba服务为两种不同的操作系统架起了一座桥梁 ...

  7. C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)

    前言:上篇C#进阶系列——使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)介绍了下使用Advanced Installer配置IIS和Web.confi ...

  8. MongoDB学习总结(三) —— 常用聚合函数

    上一篇介绍了MongoDB增删改查命令的基本用法,这一篇来学习一下MongoDB的一些基本聚合函数. 下面我们直奔主题,用简单的实例依次介绍一下. > count() 函数 集合的count函数 ...

  9. sql递归查询语句

    sql Bom 递归查询: with t as(select * from Department where id=6union allselect a.* from Department a,t w ...

  10. Sublime Text 3 修改插件安装位置【sublime text、插件路径、Data】

    直接切入正题,在享受Sublime 插件给我们带来开发效率的同时,有些插件的文件也是很大的,但是插件默认安装的位置是AppData的目录[C:\Users\用户名\AppData\Roaming\Su ...