Appium+Robotframework实现Android应用的自动化测试-7:模拟器频繁挂掉的解决方案
2015-09-02 13:46
393 查看
如果测试用例比较多,则当持续运行多个测试用例后,经常会出现模拟器崩溃或者Appium无法连接到该模拟器的情况出现。
经过分析,本人认为这应该是模拟器或者Appium的缺陷造成的,目前并没有直接的解决方案。
不过可以曲线救国,我的解决方案是:在开始测试时启动模拟器,在测试结束后关闭模拟器,这样虽然需要更多的时间,但这个问题确实不再出现了,时间有的是,可以让其在夜间自动启动执行就可以了。
在Settings中加入Process库,这个库是Robotframework自带的,写明即可。
[plain]
view plaincopyprint?
*** Settings ***
Library AppiumLibrary
Library Process
启动和关闭模拟器的脚本如下:
[plain]
view plaincopyprint?
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中有如下脚本:
[plain]
view plaincopyprint?
*** Settings ***
Suite Setup StartEmulator
Suite Teardown EndEmulator
经过分析,本人认为这应该是模拟器或者Appium的缺陷造成的,目前并没有直接的解决方案。
不过可以曲线救国,我的解决方案是:在开始测试时启动模拟器,在测试结束后关闭模拟器,这样虽然需要更多的时间,但这个问题确实不再出现了,时间有的是,可以让其在夜间自动启动执行就可以了。
在Settings中加入Process库,这个库是Robotframework自带的,写明即可。
[plain]
view plaincopyprint?
*** Settings ***
Library AppiumLibrary
Library Process
启动和关闭模拟器的脚本如下:
[plain]
view plaincopyprint?
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中有如下脚本:
[plain]
view plaincopyprint?
*** Settings ***
Suite Setup StartEmulator
Suite Teardown EndEmulator
相关文章推荐
- Android中使用SVG矢量图(一)
- android中实现在工作线程中向主线程发消息
- Android Design TextInputLayout 解析,带你深入TextInputLayout
- Appium+Robotframework实现iOS应用的自动化测试-6:手势密码的解决方案
- Appium+Robotframework实现iOS应用的自动化测试-5:一个简单的例子
- Cocos2d-x----------------------------------ProgressTimer进度条
- iOS TableView实现上拉加载更多数据
- Appium+Robotframework实现iOS应用的自动化测试-4:OS X中安装和启动RIDE
- enumerateKeysAndObjectsUsingBlock 的用法
- MobileCrackme4
- Android关于Fragment长期置于后台返回重叠的问题
- php微信开发接入指南
- Appium+Robotframework实现iOS应用的自动化测试-3:一个必不可少的工具介绍
- Appium+Robotframework实现iOS应用的自动化测试-2:OS X中启动Appium
- Appium+Robotframework实现iOS应用的自动化测试-1:Appium在OS X中的安装
- android集成极光消息推送
- Android 混淆代码总结
- 微信关键词自动回复代码
- appium源码分析(九)-getText,setText
- js判断 pc端 移动端