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

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. Android 自定义通用的loadingview

    介绍 好久没有写博客啦,最近在接近新年了,年前的工作都要收尾,所以特别忙,周末抽空写了个通用的加载view,写篇博客分享出来. 功能 1.显示加载视图,加载失败的时候显示加载失败视图,数据为空时显示数 ...

  2. Android开发系列之屏幕密度和单位转换

    由于Android的开源性,所以目前市面上面Android手机的分辨率特别多,这样的话就给我适配带来了一定的难度.要想做好适配,我们首先应该明白什么是分辨率.PPI.屏幕大小等概念,还有在不同的屏幕密 ...

  3. Form开发:字段关系-消息-快速编码-参数和系统变量

     1.字段关系  清除依赖字段:在挂LOV的名称字段的WHEN-VALIDATE-ITEM调用:app_field.clear_dependent_fields    设置字段依赖:在主字段的WHEN ...

  4. [html5] 学习笔记-应用缓存与Web workers

    1.应用缓存 HTML5引入了应用缓存程序,这意味着Web应用可进行缓存,并可在没有因特网连接时访问. 应用缓存的优势: 1)离线浏览--用户可在应用离线时使用它们 2)速度--已缓存是从本地加载,加 ...

  5. 编程练习------C/C++分别实现字符串与整数的转换

    C/C++分别实现字符串与整数的转换 前提:不使用 itoa 和 atoi. 方法一.C和C++通用的一种转换手段是: 1.整数转化为字符串:采用加'0',再逆序的办法,整数加'0'就会隐性转化成ch ...

  6. css浮动(float,clear)

    1. 以div元素布局为例,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流,是指标准流中的div. 无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”,显然标准 ...

  7. hushset的实现原理

    实现源码 public HashSet() { map = new HashMap<>(); } 这里可以看见当我们new一个hashset时,实际上hashset类又创建了一个hashm ...

  8. MVC - 云服务器部署

    本章将和大家分享的是如果在云服务器上部署mvc,云服务器部署其实也不高大上,就和咋们在自己电脑上用iis发布部署站点一样,只是需要使用云解析把自己购买的域名解析到对应的自己的云服务器上,这些都是用的云 ...

  9. JavaScript 事件总结

    本文总结自<JavaScript高级程序设计>以及自己平时的经验,针对较新浏览器以及 DOM3 级事件标准(2016年8月),对少部分内容作了更正,增加了各种例子及解析. 如无特殊说明,本 ...

  10. 一口一口吃掉Volley(一)

    欢迎访问我的个人博客转发请注明出处:http://www.wensibo.top/2017/02/16/一口一口吃掉Volley(一)/ 本次编写的Volley教程现在看来其实已经跟不上时代了,但是技 ...