Robot Framework自动化测试(五)--- 开发系统关键字

转载 2015年07月10日 05:56:14

本文转自虫师

Robot Framework自动化测试(五)--- 开发系统关键字

  最近一直在用robot framework 做自动化测试项目,老实说对于习惯直接使用python的情况下,被框在这个工具里各种不爽,当然,使用工具的好处也很多,降低了使用成本与难度;当然,在享受工具带来便利的同时也会受制于工具。对于特定的需求,工具没提供相关的Library和关键字的时候,就只能放弃了。

  还好robot framework提供了 Evaluate 关键字,对于Evaluate 关键字的使用等有时间再讲。当robot framework 不能解决需求,我是直接写个.py 程序,通过Evaluate 关键字调用。然后,就受到了批评,不能这么玩,动不动就这么干的话其实robot framework 就成了鸡肋,所以,规范的做法是去封装系统关键字。

  这也是本文的目的,学会了这一招之后,robot framework 就算是玩转了,当然,前提是你要懂点Python才行。

 

  其实我的需求也非常简单,接收一个目录路径,自动遍历目录下以及子目录下的所有批处理(.bat)文件并执行。

  首先在..\Python27\Lib\site-packages目录下创建CustomLibrary目录,用于放自定义的library库。在其下面创建runbat.py 文件:

复制代码
#-*- coding:utf-8 -*-
'''
    created by bugmaster 2015-01-29
'''

__version__ = '0.1'

from robot.api import logger
import os

class Runbat(object):

    def run_all_bat(self,path):
        u'''接收一个目录的路径,并执行目录下的所有bat文件.例
         | run all bat                   | filepath                 | 
        '''
        for root,dirs,files in os.walk(path):
            for f in files:
                if os.path.splitext(f)[1] == '.bat':
                    os.chdir(root)
                    #print root,f
                    os.system(f)

    def __execute_sql(self, path):
        logger.debug("Executing : %s" % path)
        print path

    def decode(self,customerstr):
        return customerstr.decode('utf-8')

if __name__ == "__main__":
    path = u'D:\\test_boject'
    run = Runbat()
    run.run_all_bat(path)
复制代码

 

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

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

 

复制代码
#  Copyright (c) 2010 Franz Allan Valencia See
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

from runbat import Runbat


__version__ = '0.1'

class CustomLibrary(Runbat):
"""
    这里也可以装x的写上我们创建的CustomLibrary如何如何。
 
    """
    
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'
复制代码

 

  这个文件中其实有用的信息就三行,但必不可少。robot framwork 在启动时会加载这个文件,因为在这个文件里指明了有个runbat文件下面有个Runbat类。从而加载类里的方法(run_all_bat())。

 

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

 

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

然后,在具体的测试用例中使用“run all bat” 关键字。

其实核心还是会点Python ,利用工具,但又不受制于工具。

 

====================================

   前几天有个同学跑来给我发了个链接,是一个新的自动化测试工具, 然后告诉我:“你看,这工具多牛B ,能自动录制,不用写一行代码。那你说学pyhon 还有毛用”。测试工具早前面对的就是一群不会编程的人好吧。录制也早不是什么新鲜的技术了好吧。都能录制了,想想我们是不是早该下岗了。很多时候录制并不是万能,所以才有高级测试人才的生存与发展空间。如果有一天你只会录制,想想离下岗也不远了。因为新招来的任劳任怨还不嫌工资低。

-------新年快乐,明年再见。


相关文章推荐

学习使用Robot Framework自动化测试框架(二)——简单测试例子

上篇文章介绍了Robot framework的环境配置与安装,这一篇介绍如何使用RIDE创建并执行一个简单Web测试用例。 1. 新建一个project,Type选择Directory,Format...

RFS的web自动化验收测试——第11讲 变量的声明、赋值及其使用

引言:什么是RFS——RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面。 ( @齐涛-道长 新浪微博)   本来这讲是准备介绍List变量及其用法...

Robot Framework自动化测试(四)--- 分层思想

谈到Robot  Framework 分层的思想,就不得不提“关键字驱动”。   关键字驱动: 通过调用的关键字不同,从而引起测试结果的不同。 在上一节的selenium API 中...

Robot Framework自动化测试框架(三):Android自动化

摘要: Robot Framework自动化框架之基于Appium进行的Android自动化测试,让测试变得更简单。正文: 1.环境搭建: 建议搭建Android开发环境,因为需要调用emulat...
  • Temanm
  • Temanm
  • 2016-05-17 17:26
  • 3376

学习使用Robot Framework自动化测试框架(三)——简单组合测试例子

上一篇介绍了如何使用RIDE来创建和执行一个简单的测试用例,这一章节开始将会系统一些地介绍测试用例的组成以及如何更好地设计用例。之前曾经说过,Robot Framwork框架的核心是关键词,所有用例都...

Robot Framework(3)-RIDE使用技巧

下午刚好有时间跟大家交流下RIDE使用过程的一些技巧 1、Scalar(case使用变量) 右键Test Suite->New Scalar 应用场景:比如接口中多个场景使用相同的username...

Robot Framework-用户关键字的使用方法

在进行软件自动化测试时,我们设计并编写好一个测试脚本的业务逻辑之后,需要将其中的“业务数据”提取为变量,并对业务逻辑进行封装,以便在后续的测试过程中,只需设置每次测试的测试数据,而不必更改业务逻辑。 ...

Robot Framework自动化测试框架(二):WEB自动化

摘要: 正文: 1.元素定位: 1.1 id或name定位 1.2 xpath定位 1、Xpath的绝对路径: Xpath = /html/body/div[1]/div[4]/div[2...
  • Temanm
  • Temanm
  • 2016-05-10 22:29
  • 3169

Robot Framework作者建议如何选择自动化测试框架

本文摘自:InfoQ中文站http://www.infoq.com/cn/news/2012/06/robot-author-suggest-autotest Robot Framework作者建议...
  • xc5683
  • xc5683
  • 2013-08-29 16:33
  • 3153

Robot Framework 教程 - 一个完整的例子

前言用 Robot Framework 时有太多的选择: 使用 Python, Jython 还是 Java? 测试用例使用哪种输入格式(HTML, Text, BDD)? 要使用 Robot IDE...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)