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移动端自动化中的,动态等待,动态获取坐标在页面中滑动,循环语句for的使用,Run Keyword And Ignore Error关键字的使用...
  • zengting927
  • zengting927
  • 2017年08月28日 15:43
  • 347

RFS的web自动化验收测试——第14讲 万能的evaluate

引言:什么是RFS——RobotFramework+Selenium2library   这一讲我们重点来介绍一下一个常用的关键字evaluate。   我觉得这个关键字在RF里几乎是无所不能,只要你...
  • tulituqi
  • tulituqi
  • 2013年09月10日 22:43
  • 29711

RobotFrameWork(四)变量运算与Evaluate

本文旨在介绍robotframework中特殊变量运算和Evaluate简单使用
  • liuheng123456
  • liuheng123456
  • 2013年08月28日 16:08
  • 10645

Evaluate用法

原文地址:http://blog.csdn.net/tulituqi/article/details/10124559 引言:什么是RFS——RobotFramework+Selen...
  • u011546806
  • u011546806
  • 2015年03月23日 18:40
  • 1705

RobotFrameWork(四)变量运算与Evaluate

一、特殊变量运算:执行结果:Starting test: Robot Demo.Demo.test 20161115 10:14:49.949 : INFO : 数字变量运算=8201611151...
  • satiling
  • satiling
  • 2016年11月16日 16:54
  • 3696

Robot Framework开发系统关键字

一、 应用场景: 在我们使用RF+Appium进行移动端应用UI自动化测试过程中,经常会出现无法正常启动应用的现象。经过查找折腾,才发现原来Appium Server还没有启动。相信这个现象是对...
  • wangdongxuan0209
  • wangdongxuan0209
  • 2018年01月12日 08:32
  • 36

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

喜欢使用RF的原因之一就是能自己定义关键字,超赞!!! 这篇就简单说下如何创建系统关键字,先来个最简单的,求两个数的和(真的超级简单)。首先在安装目录\Python27\Lib\site-packa...
  • cz9025
  • cz9025
  • 2017年04月28日 15:05
  • 736

robotframework关键字

下面关键字全部由 Builtin 库提供,Builtin 为 Robot Framework 标准类库。Builtin库提供常用的关键字 1、log log 关键字就是编程语言里的“pri...
  • guangyinglanshan
  • guangyinglanshan
  • 2017年09月21日 14:52
  • 10620

Robot Framework使用For循环

1.普通的For循环 在一个普通的For循环中,循环开始的关键字是 :FOR ,其中的:用于与一般关键字做区分,对于循环结构体内的每一行,使用 \ 作为改行的行首关键字。对于循环中的变量,可以在 IN...
  • hapasm
  • hapasm
  • 2017年07月04日 17:38
  • 659
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Robot Framework自动化测试(五)--- 开发系统关键字
举报原因:
原因补充:

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