自動化測試框架之robot framework的應用分析

  序言:不少人都對自動化測試框架癡迷,我曾經也癡迷過一段時間,之前以爲本身對框架說的頭頭是道,如今回過頭來看之前,說歸說,但在如何應用仍是欠缺,這一段時間,本身經歷了一系列框架的構建和應用的時期,因此,我想主要從實際原理和應用上來講說測試框架,這些框架包括:關鍵字測試框架robot,基於各類語言的STAF框架,集成測試框架Fit(husdon),以及elipse TPTPd性能測試框架等。這不是一套工具教程,而是一套應用的簡單思想,我的不免有侷限性,見諒。python

  首先,看看robot framework吧web

  1、robot介紹api

  你們上網查robot,相信能查到這麼幾個資料;框架

  一、robot的快速入門,就是如何簡單使用robot,這是翻譯過來的教程。我的以爲,通常人拿到這個教程容易懵,由於你是在不瞭解其原理的基礎上操做,因此會遇到不少問題而沒法向下進行。工具

  二、 robot的源碼分析,講講robot怎麼一步一步工做的,如今robot框架不斷升級,這個源碼分析教程有點舊了,因此代碼有些不同。源碼分析

  Robot是一個徹底基於關鍵字測試驅動的框架,它即可以基於它的必定規則,導入你的測試庫(例如:其集成了selenium的測試庫,便可以理解爲操做web控件的測試底層庫),而後基於這些測試庫,你能應用HTML、TXT等文檔形式編寫本身的關鍵字(這些關鍵字即你的庫組成),以後,再編寫測試用例(測試用例由測試關鍵字組成)進行測試。例如:一個簡單的登錄測試由:登錄+輸入密碼+登出三個關鍵字組成,也能夠由一個關鍵字登錄組成,關鍵字顆粒的大小能夠自行定製。性能

  2、robot原理學習

  robot的基本運做流程以下:測試

  一、robot開始測試是從cmd命令輸入,robot初始運行程序接收命令字符(主要是用TXT或者HTML寫的測試用例集)ui

  二、接收以後,robot先生成初始化全局變量配置,主要是定義一系列的字段名稱和文件名稱(例如:日誌文件名稱等)(由settings.py中的類完成)

  三、以後,開始解析用例文件,生成數據對象,數據對象中包含了測試集的各類數據,例如:測試用例集名稱、各個測試用例名稱、各個關鍵字名稱等。

  四、將測試數據對象傳送給測試集合類處理,生成測試集suite對象.

  五、以後,進行suite中的用例測試,而後調用關鍵字,找到關鍵字對應的庫文件,進行操做。

  六、每個操做和結果都寫在輸出的xml文件中(有專門調用對輸出xml進行操做的類)

  七、測試完成後,調用轉換類將xml文件轉換成相應的HTML日誌報告,測試完成。

  3、robot的應用

  robot的缺陷在於不夠靈活,有些地方對咱們廣泛不適用,因此,咱們須要會將robot分解,取之咱們能用的,如下提供幾個分解方式

  一、robot的須要用命令行的方式去啓動測試,咱們能夠更改成自行寫一個測試執行客戶端界面,選取相應測試用例集合,下發到robot框架的程序入口。

  二、robot的用例格式須要固定,而咱們不少時候都有本身的自動化測試用例編寫規則,這樣的話,咱們能夠寫一個轉換器,能夠將本身的測試用例解析文件解析爲robot可識別的用例文件。

  三、第2個的另一種解決方法就是:作一個數據解析器,將咱們的測試用例生成傳送給測試集合的數據對象的對象規範

  四、Robot的日誌文檔很好,若是咱們有本身的關鍵字測試框架,但須要調用robot的日誌api,則能夠:1)由於robot是解析xml文件生成Html的,咱們能夠調用python的xml操做庫生成符合robot的xml格式的輸出文件,而後調用robot的轉換庫生成Html便可。2)咱們能夠直接重構robot的xml輸出類,簡化成咱們的形式便可。

  而在實際腳本的應用好處就是

  一、關鍵字思想驅動的好處就是應用封裝的思想,保證了上層腳本的變更性可控,加強了維護性。

  二、容易定位問題,通常咱們定位測試問題,首先,是從用例—功能—單個操做。而線性腳本則是相反的,因此會很差定位。

  總結:

  一、不少框架不必定能拿來就用,咱們要作的是分析源碼,學會拆分框架,取之本身能用的,開源的框架通常代碼結構都挺良好,接口定義挺清楚。儘量的不要造車的同時還要本身造輪子。

  二、從robot上面,咱們能夠很好的學習到關鍵字測試驅動思想和數據測試驅動思想的應用。

相關文章
相關標籤/搜索