解决Robot Framework运行时没有Log的方案

Robot Framework自动化测试过程中,运行多次后会出现RIDE没有log的情况。

造成这种现象的原因是:

执行失败的测试用例,chrome.exe和chromedriver.exe进程没有关闭。

解决方法:手动关闭chromedriver进程,ride就可以正常运行。

但是每次手动去关闭chromedriver进程比较麻烦,

---------------------------------------------------------------------------------------------------------

下面给大家介绍一种自动化关闭进程的方法:

在执行测试用例时,先调用关闭进程的批处理文件,关闭进程后再接着去执行下一步测试用例。

1.       创建关闭进程的批处理文件

将下面的代码保存为批处理文件killChrome.bat(存放路径:D:\RobotTest\测试项目)。

创建批处理比较简单,难的是如何封装系统关键字

关键字需求:接收一个目录路径,自动遍历目录下以及子目录下的所有批处理(.bat)文件并执行。

2.       封装系统关键字

在..\Python2.7\Lib\site-packages目录下创建CustomLibrary目录,用于放自定义的library库。在其下面创建runbat.py文件(其中的path路径为killChrome.bat的存放路径):

 1 # -*- coding: UTF-8 -*-
 2 #   作用:执行批处理文件
 3 #
 4 #   创建者:大道OA团队 大东哥
 5 #
 6 #   创建时间:2017-09-21
 7 #
 8
 9 __version__ = "1.0"
10
11 from robot.api import logger
12 import os
13
14 class Runbat(object):
15
16     def run_all_bat(self,path):
17         """
18         接收一个目录的路径,并执行目录下的所有bat文件.
19
20         Usage is:
21         | run all bat | filepath |
22         """
23         for root,dirs,files in os.walk(path):
24             for f in files:
25                 if os.path.splitext(f)[1] == ‘.bat‘:
26                     os.chdir(root)
27                     os.system(f)
28
29     def __execute_sql(self, path):
30         logger.debug("Executing : %s" % path)
31         print path
32
33     def decode(self,customerstr):
34         return customerstr.decode(‘utf-8‘)
35
36 if __name__ == ‘__main__‘:
37     path = u‘D:\\RobotTest\\测试项目‘
38     run = Runbat()
39     run.run_all_bat(path)

注意在run_all_bat()方法下面加上清晰的注释,最好给个实例。这样在robot framework 的帮助中能看到这些信息,便于使用者理解这个关键字的使用。

对于创建普通的模块来说这样已经ok了。但要想在robot framework启动后加载这个关键字,还需要在CustomLibrary目录下创建__init__.py文件,并且它不是空的。

 1 # Copyright 2009-2015 MongoDB, Inc.
 2 #
 3 # Licensed under the Apache License, Version 2.0 (the "License");
 4 # you may not use this file except in compliance with the License.
 5 # You may obtain a copy of the License at
 6 #
 7 # http://www.apache.org/licenses/LICENSE-2.0
 8 #
 9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 from CustomLibrary.runbat import Runbat
16
17 __version__ = "1.0"
18
19
20 class CustomLibrary(Runbat):
21
22     ROBOT_LIBRARY_SCOPE = ‘GLOBAL‘

这个文件中其实有用的信息就四行,但必不可少。robot framwork 在启动时会加载这个文件,因为在这个文件里指明了有个runbat文件下面有个Runbat类。从而加载类里的方法(run_all_bat())。注意.py文件的编码(utf-8编码)和缩进格式,不然无法导入库。

下面,启动robot framework RIDE,按F5:

找到了我们创建的关键字,下面就是在具体的项目或测试套件中引用CustomLibrary

然后,在具体的测试用例中使用“run all bat” 关键字。(关键字后面需填入killChrome.bat的存放路径,注意斜杠)

这样在每次执行用例时,ride会先去关闭Chrome和ChromeDriver进程,然后再去执行测试用例。

时间: 2024-10-19 17:05:23

解决Robot Framework运行时没有Log的方案的相关文章

如何解决android studio 运行时中文乱码的问题

相信很多朋友都会遇到android studio 在MAC OS中运行的时候中文乱码.而在代码编辑的时候正常.经过几天的不断寻找解决办法,终于解决了 比如: Toast.makeText(MainActivity.this,"我爱你", Toast.LENGTH_LONG).show(); 运行的时候在模拟器里就是乱码. 解决办法网上很多,但是都不能解决运行时乱码的问题.所以这个问题苦恼了几天. 我们在工程里的build.grandle 文件中添加一段代码即可 tasks.withTy

解决vs F5运行时提示out of date的问题

我们都知道,vs开始调试运行时,如果检测到源文件比生成时的标记来的新,就会提示out of date 常见的原因一般是改动了代码(增量编译可解决)或者迁移了整个工程的位置(重新编译可解决) 比较特殊的情况是,测试时间相关的功能时,改动了系统时间到一个比较靠后的时间之后并保存了代码,使得源文件的时间戳比较靠后,会有这样的问题.这时候rebuild也不能解决问题,需要找到那个时间不正常的源文件,然后把时间改成正常的(重新以正常时间保存一下),或者可以考虑删除掉代码重新取一份. 但最近换过一次电脑以后

Pycharm安装robot framework运行插件

1. 打开pycharm>点击File>点击setting>打开Plugins>点击Browse reponsitories: 2. 打开后,输入IntelliBot并安装,安装后需要重启才能生效. 3.此时打开脚本,会发现不支持.txt的文件,此时需要对pycharm进一步设置 点击File>点击setting>点击editor>点击file types,点击右侧的+号配置一下文件类型即可 4. 至此已经可以在pycharm中编辑脚本了,但是还不能进行脚本的执行

解决 eclipse cdt 运行时控制台乱码解决

1 点击黑色 倒三角 按钮 选择 run configurations 2 2.1 点击new 添加 LANG = en_US 2.2 选择 replace native environment with specied environment

解决libevent程序运行时找不到 .so的问题

先用ldconfig,无果,可以按照安装说明设置相关路径,或者在 usr/lib/中建立连接,我用的是这种方法. sudo ln -s /usr/local/lib/libevent-2.2.so.1 /usr/lib/libevent-2.2.so.1 原文地址:https://www.cnblogs.com/hanxinle/p/12159079.html

(三)Robot Framework 创建测试、运行与生成报告

(三)Robot Framework 创建测试.运行与生成报告 发布时间 2017年9月28日 虫师 上一节我们已经介绍 Robot Framework-RIDE 只支持 Python2 ,但 Python2 到 2020 年将不再维护,所以接下来的关于 Robot Framework 的学习将不再基于 Robot Framework-RIDE,你可以参考上一节中介绍的 Sublime Text3 + sublime-robot-framework-assistant 插件来编写 Robot F

Robot Framework 安装部署详解(原创)

Robot Framework安装时出现了一点小问题,网上没有找到直接的介绍,现将安装过程及解决方法记录如下: -------------------------------------------------------------------------------------------------------------- 下载下列安装文件并安装 -----------------------------------------------------------------------

Robot Framework 自动化测试--部署篇

一.产品介绍 Robot Framework是一个基于Python的,可扩展的关键字驱动的测试自动化框架.它是为了端 到端的验收测试(End-To-End Acceptance Test)以及验收测试驱动开发(Acceptance-Test- Driven Development, ATDD)而设计的. 因此它可以应用于测试,当验证需要涉及多个不同技 术和接口的分布式.异构的应用程序. 二.功能优点 提供了一种统一的,易于使用的表格化语法来创建测试用例; 提供了一种可以从已存在的关键字中创建可重

Android Studio使用时源码到处报红色警告,运行时又没错

转载地址:http://www.07net01.com/program/2016/04/1452749.html [摘要:正在AS上开辟时,碰到那个题目,翻开全部的Java源文件,右边一起标赤色,找没有到类,到没有到方式,由于不克不及面击跳转,开辟时纠结了很久,试了clean.rebuild等种种方式皆没有起感化,又] 在AS上开发时,遇到这个问题,打开所有的java源文件,右侧一路标红色,找不到类,到不到方法,因为不能点击跳转,开发时纠结了好久,试了clean.rebuild等各种方法都不起作