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 还有毛用”。测试工具早前面对的就是一群不会编程的人好吧。录制也早不是什么新鲜的技术了好吧。都能录制了,想想我们是不是早该下岗了。很多时候录制并不是万能,所以才有高级测试人才的生存与发展空间。如果有一天你只会录制,想想离下岗也不远了。因为新招来的任劳任怨还不嫌工资低。

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

时间: 2024-12-21 08:51:21

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

Robot Framework分层、开发系统关键字

开发系统关键字:http://www.cnblogs.com/fnng/p/4261293.html http://www.cnblogs.com/fnng/p/3969978.html 一.环境搭建 网上有很多的教程,这里就不多讲了 二.RIDE的界面认识 这里只介绍几个重要常用的功能,其他相信自己都能理解 1.Search Keywords(F5): 搜索关键字 2.Content Assistance:内容助手 3.View RIDE Log:查看RIDE日志,使用过程中报错,可以来这里查

Robot Framework自动化测试 ---文档分享

当我第一次使用Robot Framework时,我是拒绝的.我跟老大说,我拒绝其实对于习惯了代码的自由,所以讨厌这种“填表格”式的脚本.老大说,Robot Framework使用简单,类库丰富,还可以自由开发系统关键字.那我说,你不能让我用我就用,我要先用用看.自从我用了半年多以来,duang~! 真的挺好用的.duang~! ,我相信我用完是这个样子,你们用完也是这个样子.duang~! duang~! ----今年流行“duang”,我也来一段.哈哈~! Robot Framework特点:

Robot Framework自动化测试框架之我见

一些自动化测试现状: 盲目的去做自动化,最终以失败告终: 认为是能提高效率的事情,却推广不下去: 其实上述问题产生的原因是: 自动化测试案例稳定性不高,可维护性比较差: 自动化测试工具学习成本高,自动化测试人员的成本高: 而RF(Robot Framework,后面都简称RF)具备良好的分层思想,它将测试人员分为懂开发和不懂开发的,懂开发来负责底层关键字开发和维护,供不懂开发的测试人员调用,通过填写表格的形式用自言语言来写自动化测试用例.这样写出来的用例测试用例,大大增强了易读性和可维护性. R

Robot Framework自动化测试 ---视频与教程免费分享

当我第一次使用Robot Framework时,我是拒绝的.我跟老大说,我拒绝其实对于习惯了代码的自由,所以讨厌这种"填表格"式的脚本.老大说,Robot Framework使用简单,类库丰富,还可以自由开发系统关键字.那我说,你不能让我用我就用,我要先用用看.自从我用了半年多以来,duang~! 真的挺好用的.duang~! ,我相信我用完是这个样子,你们用完也是这个样子.duang~! duang~! ----今年流行"duang",我也来一段.哈哈~! Rob

Robot Framework自动化测试(一)---第一个脚本

最近工具中用Robot Framework框架来做自动化,所以,花时间学习了一下. =======所需环境=================== Python: https://www.python.org/ RF框架是基于python 的,所以一定要有python环境. Robot framework : https://pypi.python.org/pypi/robotframework/2.8.5 这个不是解释了,RF框架.虽然在做基于UI的自动化时,它展现出来的很像QTP,我之前也以为

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

摘要: WEB自动化离不开selenium,当然robot framework也是一样,结合了selenium,需要安装:pip install selenium2library,习惯了编码写WEB自动化,robot framework基于关键字自动化的工具也还算可以,让测试变得更简单就好. 正文: 1.元素定位: 1.1 id或name定位 1.2 xpath定位 1.Xpath的绝对路径: Xpath = /html/body/div[1]/div[4]/div[2]/div/form/sp

robot framework 使用五:CentOS上运行robot framework 并自动发送测试结果

操作系统版本:centos 6.0  x86_64 想要在linux上运行robot framework的测试用例,需要安装以下工具和软件: 1.安装python 2.7.6 ,首先python --version 查看系统是否装有python,并且python的版本是不是我们要用的 Python 2.6.5 说明已经装有python 2.6.5,下载python2.7.6,下载地址:https://www.python.org/download#pubkeys  选择:Python 2.7.6

Robot Framework自动化测试(二)---元素定位

说明: 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的API.比如笔者所处工作中,更多的是拿Robot framework来做数据库的接口测试,当然,需要先将相关的数据库包导入. 那么测试框架的本质是什么?个人觉得有以下几个方面. 1.比较 测试实质就是“比较”,在测试之前需要先写用例,假设经过各种操作之后会得到一个预期的结果,然后,在测试的过

Robot Framework自动化测试框架(一)

摘要: Robot Framework是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行.主要用于轮次很多的验收测试和验收测试驱动开发(ATDD). 正文: 1.环境搭建 1.1 robotframework安装:pip install robotframework 1.2 RIDE就是一个图形界面的用于创建.组织.运行测试的软件,robotframework-ride安装:pip install robo

三年磨一剑,robot framework 自动化测试框架核心指南,真正讲透robot framework自动化测试框架(笔者新书上架)。

序 关于自动化测试的工具和框架其实有很多.自动化测试在测试IT行业中扮演着越来越重要的角色,不管是在传统的IT行业还是高速发展的互联网行业或是如今的大数据和大热的人工智能领域,都离不开测试,也更加离不开自动化测试.自动化测试已经发展了很多年,在很多大的互联网公司里他们不但有自己的自动化测试框架,甚至基本都建立了自己的自动化测试平台或者已经对外开放使用的自动化测试云平台,也就是说自动化测试几乎已经成为一名测试工程师必须掌握的一个技能,并且随着很多自动化测试工具和框架的不断发展和完善,自动化测试也变