Robot Framework自動化測試(五)--- 開發系統關鍵字

  最近一直在用robot framework 作自動化測試項目,老實說對於習慣直接使用python的狀況下,被框在這個工具裏各類不爽,固然,使用工具的好處也不少,下降了使用成本與難度;固然,在享受工具帶來便利的同時也會受制於工具。對於特定的需求,工具沒提供相關的Library和關鍵字的時候,就只能放棄了。python

  還好robot framework提供了 Evaluate 關鍵字,對於Evaluate 關鍵字的使用等有時間再講。當robot framework 不能解決需求,我是直接寫個.py 程序,經過Evaluate 關鍵字調用。而後,就受到了批評,不能這麼玩,動不動就這麼幹的話其實robot framework 就成了雞肋,因此,規範的作法是去封裝系統關鍵字。sql

  這也是本文的目的,學會了這一招以後,robot framework 就算是玩轉了,固然,前提是你要懂點Python才行。express

 

  其實個人需求也很是簡單,接收一個目錄路徑,自動遍歷目錄下以及子目錄下的全部批處理(.bat)文件並執行。apache

  首先在..\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 的幫助中能看到這些信息,便於使用者理解這個關鍵字的使用。api

  對於建立普通的模塊來講這樣已經ok了。但要想在robot framework啓動後加載這個關鍵字,還須要在CustomLibrary目錄下建立__init__.py文件,而且它不是空的。app

 

# 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())。less

 

下面,啓動robot framework RIDE,按F5:工具

 

找到了咱們建立的關鍵字,下面就是在具體的項目或測試套件中引用CustomLibrary測試

而後,在具體的測試用例中使用「run all bat」 關鍵字。

其實核心仍是會點Python ,利用工具,但又不受制於工具。

 

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

   前幾天有個同窗跑來給我發了個連接,是一個新的自動化測試工具, 而後告訴我:「你看,這工具多牛B ,能自動錄製,不用寫一行代碼。那你說學pyhon 還有毛用」。測試工具早前面對的就是一羣不會編程的人好吧。錄製也早不是什麼新鮮的技術了好吧。都能錄製了,想一想咱們是否是早該下崗了。不少時候錄製並非萬能,因此纔有高級測試人才的生存與發展空間。若是有一天你只會錄製,想一想離下崗也不遠了。由於新招來的不辭辛苦還不嫌工資低。

-------新年快樂,明年再見。

相關文章
相關標籤/搜索