如果测试用例比较多,则当持续运行多个测试用例后,经常会出现模拟器崩溃或者Appium无法连接到该模拟器的情况出现。

经过分析,本人认为这应该是模拟器或者Appium的缺陷造成的,目前并没有直接的解决方案。

不过可以曲线救国,我的解决方案是:在开始测试时启动模拟器,在测试结束后关闭模拟器,这样虽然需要更多的时间,但这个问题确实不再出现了,时间有的是,可以让其在夜间自动启动执行就可以了。

在Settings中加入Process库,这个库是Robotframework自带的,写明即可。

  1. *** Settings ***
  2. Library           AppiumLibrary
  3. Library           Process

复制代码

启动和关闭模拟器的脚本如下:

  1. StartEmulator
  2. Run Process    emulator    @xxx
  3. Sleep    180s
  4. EndEmulator
  5. Run Process    tskill    emulator-arm
  6. Run Process    tskill    adb

复制代码

通过调用Process库的Run Process关键字来做到调用相关的程序。调用emulator就会启动模拟器,xxx是模拟器的名字,如下图所示:

Sleep   180s的目的是等待模拟器完成启动过程,这个三分钟足够了。

调用tskill后杀死指定名称的进程,不多解释了。

这里再介绍下Suite Setup,Suite Teardown以及Test Setup和Test Teardown ,它们分别是两组关键字:Suite Setup表示在一组测试用例执行前执行,Suite Teardown表示在一组测试用例执行后再执行;Test Setup表示在每个测试用例执行前执行,Test Teardown表示在每个测试用例执行后再执行。一组测试用例写在同一个文件中。

在具体的测试脚本的文件的Settings中有如下脚本:

  1. *** Settings ***
  2. Suite Setup       StartEmulator
  3. Suite Teardown    EndEmulator

复制代码

Appium+Robotframework实现Android应用的自动化测试-7:模拟器频繁挂掉的解决方案的更多相关文章

  1. Appium+Robotframework实现Android应用的自动化测试-4:AppiumLibrary介绍和安装

    Appium是个好东东,Android,iOS都支持,并且居然RobotFramework也支持Appium了,这就是本文要介绍的AppiumLibrary. 通过前面的文章大家知道可以使用多种语言来 ...

  2. Appium+Robotframework实现Android应用的自动化测试-2:Windows中启动Appium和模拟器

    一.启动Appium 安装好了之后,在桌面或者菜单中找到Appium,分别双击或点击打开Appium.exe,如果一切正常,接着会出现一个Appium启动后的界面窗口,如下图所示. 1.1 Andro ...

  3. Appium+Robotframework实现Android应用的自动化测试-1:Appium在Windows中的安装

    让我们开始在Windows中开始安装Appium吧,Appium在OS X中的具体安装后面的文章会介绍. 另外,官网上说先要装Node.js,还要装Apache Ant和Apache Maven,Gi ...

  4. Appium+Robotframework实现Android应用的自动化测试-6:一个简单的例子

    万事具备,只欠编码! 下面看一个简单的示例,这个示例验证Android手机自带的通讯录的添加联系人的操作是否成功.这个例子是Appium官网自带的示例,有兴趣的同学也可以自己下载来研究和学习,下载地址 ...

  5. Appium+Robotframework实现Android应用的自动化测试-5:RIDE中AppiumLibrary的配置

    可能很多朋友已经迫不及待的想要用RobotFramework+AppiumLibrary来写Android App的测试脚本了,那我们也废话少说,直接开始. 首先打开RIDE,这是编写RobotFra ...

  6. Appium+Robotframework实现Android应用的自动化测试-3:一个必不可少的工具介绍

    万事具备,接下来我们就要开始编写测试脚本了. 不过,有个重要的问题还没有解决.我们知道RobotFramework在web 网页中主要依靠元素的id,name或者xpath来定位页面上的元素,我们依赖 ...

  7. Appium+Robotframework实现iOS应用的自动化测试

    Appium+Robotframework实现iOS应用的自动化测试 连接地址: 地址:https://blog.csdn.net/wd168/article/month/2016/06 1.http ...

  8. [转]RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第一篇【安装】

    前言:关于RobotFrameWork+APPIUM实现对安卓APK的自动化测试的文章都是取自于乐于分享知识于网络的好心人们,所以我也希望我的知识可以分享给大家. 首先我们先罗列一下我们要安装的软件 ...

  9. RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第一篇【安装】

    文章来源http://blog.csdn.net/deadgrape/article/details/50563119 前言:关于RobotFrameWork+APPIUM实现对安卓APK的自动化测试 ...

随机推荐

  1. Working with Transactions (EF6 Onwards)

    Data Developer Center > Learn > Entity Framework > Get Started > Working with Transactio ...

  2. JS原型链理解

    1. 每个对象都有原型属性(__proto__)2. 对象的原型(__proto__)指向其构造函数(Class)的prototype属性3. 构造函数(Class)的prototype属性本身也是一 ...

  3. Thinkphp 连接查询的使用

    方法一:使用table()方法 $tables = 'b_order ordert, b_busbid busbid'; $map['busbid.buscompanyid'] = 1; $map[' ...

  4. ASP.NET MVC 表单提交List到Controller

    1.实体结构: 2.View代码: 3.controller代码: 参考链接:http://shiyousan.com/post/635383025861004585

  5. zoj3811 Untrusted Patrol (dfs)

    2014牡丹江网络赛C题 (第三水的题 The 2014 ACM-ICPC Asia Mudanjiang Regional First Round http://acm.zju.edu.cn/onl ...

  6. oracle中substr与instr

    在oracle中,可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符.在一个字符串中查找指定的字符,返回被查找到的指定字符的位置. 语法: Instr(sourceString,de ...

  7. oracle中的nvl(), nvl2()函数

    nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with) 功能:如果string1 位null,那么nvl()函数返回replace_wi ...

  8. 【CISP笔记】安全攻击与防护

    公开信息收集-搜索引擎 快速定位Google 搜索“5sf67.jsp”可以找到存在此脚本的Web网站Google 搜索“teweb/default.htm”就可找到开放着远程Web连接的服务器信息挖 ...

  9. Java基础知识总结(绝对经典)

    写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技 ...

  10. 网络编程1-TCP编程(socket)

    1 如何实现网络中的主机相互通信 一定的规则,有两套参考模型 (1)osi参考模型,过于理想化,未能在互联网上推行 osi有七层 (2)tcp/ip参考模型,有四层,各层之间通过不同的网络协议传输数据 ...