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

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

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

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

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

*** Settings ***
Library           AppiumLibrary
Library           Process

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

StartEmulator
    Run Process    emulator    @xxx
    Sleep    180s

EndEmulator
    Run Process    tskill    emulator-arm
    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中有如下脚本:

*** Settings ***
Suite Setup       StartEmulator
Suite Teardown    EndEmulator

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-23 22:51:07

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

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

Appium是个好东东,Android,iOS都支持,并且居然RobotFramework也支持Appium了,这就是本文要介绍的AppiumLibrary. 通过前面的文章Appium+Robotframework实现手机应用的自动化测试-1:Appium简介,大家知道可以使用多种语言来写Appium的测试脚本,但如果从编写效率和学习曲线上来说,当然是用如RobotFramework的关键字的方式最为简单,所以AppiumLibrary就出现了,从Appium官网可知最新的版本是1.2.5,在

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

一.启动Appium 安装好了之后,在桌面或者菜单中找到Appium,分别双击或点击打开Appium.exe,如果一切正常,接着会出现一个Appium启动后的界面窗口,如下图所示. 1.1 Android Settings 点击左上角的第一个机器人图标,弹出Android Settings窗口,如下图所示. 在该窗口可以对将要进行测试的Android应用进行设置,因为接下来我们写脚本来跑测试,所以可以统统不进行设置,保持其默认值即可.如果不在脚本中设置,则需要在这里设置下,不过大部分保持默认值即

Appium+Robotframework实现Android应用的自动化测试-1:Appium在Windows中的具体安装步骤

由于前两篇文章主要是翻译自Appium官网,由于本人英文不是很好,所以还请读者见谅,也感谢大家的厚爱和支持. 好了,让我们开始在Windows中开始安装Appium吧,Appium在OS X中的具体安装后面的文章会介绍. 另外,官网上说先要装Node.js,还要装Apache Ant和Apache Maven,Git以及cURL,不过我的经验是这些不是必须的,可以不装,当以后需要时再装也不迟,这样一开始安装比较容易和上手. 废话少说,直接开始安装步骤: 1.安装android的sdk包,(htt

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

可能很多朋友已经迫不及待的想要用RobotFramework+AppiumLibrary来写Android App的测试脚本了,那我们也废话少说,直接开始. 首先打开RIDE,这是编写RobotFramework测试脚本的集成环境,如果没有则先安装好,当然RobotFramework也要安装好,这些大家可以在网上查找相关的资料来解决如何安装的问题. 其次,新建一个resource.txt文件,这个文件是用来放置共用的脚本的,之后点击Edit选项卡,再点击右侧的Library按钮用于添加Appiu

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

万事具备,只欠编码! 下面看一个简单的示例,这个示例验证Android手机自带的通讯录的添加联系人的操作是否成功.这个例子是Appium官网自带的示例,有兴趣的同学也可以自己下载来研究和学习,下载地址:示例代码下载 首先请看resource.txt文件的代码: *** Settings *** Library           AppiumLibrary *** Variables *** ${REMOTE_URL}     http://localhost:4723/wd/hub ${PLA

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

万事具备,接下来我们就要开始编写测试脚本了. 不过,有个重要的问题还没有解决.我们知道RobotFramework在web 网页中主要依靠元素的id,name或者xpath来定位页面上的元素,我们依赖浏览器的插件firepath来做到这一点,但在Android应用中,怎么定位页面上的元素呢?现在,这个关键的工具就该出场了,它就是uiautomatorviewer.bat,这个工具位于%ANDROID_HOME%\tools目录下,双击运行它. 如果模拟器还没有启动,也把它启动起来,等模拟器启动完

Appium+Robotframework实现iOS应用的自动化测试-6:手势密码的解决方案

手势密码在很多应用都会运到,手势密码都要求至少连接4个点,但AppiumLibrary并没有提供对应的关键字,本人尝试连续使用Swipe关键字两次解决该问题,为什么要用两次呢?因为Swipe的参数只是起点和终点,如果直接给出手势密码的起点和重点,则会忽略中间的点,连续使用两次Swipe关键字在Android中偶尔可以成功,但在iOS中则没有一次成功过,为了彻底解决该问题,本人仔细看了Appium的文档,终于所有发现,请看来自于Appium的官方网站的如下截图: 从中我得知手势密码的问题一定可以解

Appium+Robotframework实现iOS应用的自动化测试-4:OS X中安装和启动RIDE

有两种方式进行Appium测试: 1. 远程方式进行Appium测试:在Windows系统中启动RIDE并运行测试,这种方式的好处是方便,简单,但在一开始可能因为配置的问题测试跑不起来: 2.本地方式进行Appium测试:就是直接在OS X中启动RIDE并运行测试,这种方式的好处是直接,能够很直接的得到测试结果,但不是很方便,毕竟大家平时还是主要使用Windows操作系统. 不管哪种方式,都可以参考之前的文章Appium+Robotframework实现Android应用的自动化测试-4:App

Appium+Robotframework实现iOS应用的自动化测试-5:一个简单的例子

万事具备,只欠编码! 下面看一个简单的示例,这个示例验证常见的登录功能.这个例子的应用是我所在的公司正在研发的,还没有正式上线,就不提供下载路径了.登录功能是很多应用都用的,这个大家都知道是怎样的功能. 首先请看resource.txt文件的代码: *** Settings *** Library AppiumLibrary *** Variables *** ${REMOTE_URL} http://192.168.1.6:4723/wd/hub ${PLATFORM_NAME} iOS ${