Summary for Robot Framework
這片文章主要講Robot framework這個框架,因為最近做培訓,所以也想借此將這段時間的東西記錄沉澱下來.
首先是安裝:
- 安裝Python: HTTPs://www.python.org/downloads/ 新增環境變數
- 安裝Pip: https://github.com/pypa/pip/releases
- 安裝 Robotframework: Run pip install robotframework
- 安裝 Selenium2Library: Run pip install robotframework-selenium2library
- 安裝wxPython: https://sourceforge.net/projects/wxpython/files/wxPython/
- 安裝 Ride: Run pip install robotframework-ride
1.安裝好框架後,我們介紹下用這個工具做UI、B/S測試。做web auto testing 需要了解一些定位知識,常見的定位有Xpaht,CSS。 具體用法可以參考下表:
2. 再之後我們需要引用Selenium2Library這個庫,和這些庫關鍵字的基本用法.
具體有關Selenium2Lirary基本關鍵字的相關的應用可以看demo:Selenium2Library-demo
3. 這節我們可以學習下RFS邏輯關鍵字的用法:
- 一般變數申明和使用
- List變數申明和使用
- 分支的使用
- 迴圈的使用
- Evaluate的使用
有關邏輯關鍵字的用法請參見demo:
4.關於用例的編寫,建議用分層測思想,分三層或者四層:
分三層:測試用例層,業務流程層,封裝的關鍵字層
分四層:測試用例層,業務流程層,頁面層,封裝的關鍵字層
關於分層的demo請參見DistributeLayer-Demo:
5.用RobotFrameWork也可以做介面API的測試,常見的request 有Get, Post.Get,Put.並且對於介面的Assertion會涉及有XML和Json的處理。
具體有關介面測試demo請參看:InterfaceTest-Demo
6.這一節主要介紹用RF來自定義第三方庫:
自己定義的MyLibrary程式碼如下:
from openpyxl import load_workbook from PIL import Image import os, sys import pytesseract class data_center: def __init__(self): self.data_dir=os.getenv('G_DataCenter','C:\\RF Demo\\test\\data') # return data from Excel def Read_Data_From_Excel(self,filename,path=None): if path == None: file = os.path.join(self.data_dir, filename) else: file = os.path.join(path, filename) try: wb=load_workbook(file) ws=wb.worksheets[0] listAll=[] for row in ws.iter_rows(min_row=2,min_col=1,max_row=ws.max_row,max_col=ws.max_column): line = [col.value for col in row] if line[1] is not None: listAll.append(line) return listAll except Exception,e: print str(e)
7.由於RIDE這個在載入比較複雜層級多的指令碼情況下會出現卡頓的情況,因此推薦另外一種環境的指令碼開發方式. 用pychram來開發編寫案例:
PyCharm環境搭建: 安裝PyCharm
RFS環境搭建: 開啟PyCharm>點選File>點選setting>開啟Plugins>點選Browse repositories: IntelliBot
用例除錯和編寫:配置單個和多個Testcase執行
單個用例執行配置:
多個用例執行配置: