自动化工具 初探 Robot Framework 之框架介紹 - 00

Ms.Test · 2020年02月28日 · 最后由 Alpha 回复于 2020年03月02日 · 3888 次阅读

原部落格好讀版

Robot Framework 是什麼樣的測試工具?

Robot Framework 是一個開源的自動化測試框架

在安裝 RIDE 後, 可以透過 GUI 介面來進行測試活動

可以使用 Python, Java 語言來撰寫測試套件

雖然根據工具特性多被運用在驗收測試

但透過 Python 撰寫關鍵字來組合測試案例, 以及本身提供的自動生成報告以及結合 Jenkins...等

功能強大, 應用非常廣泛

Robot Framework 中的測試案例是由"關鍵字"所構成

(keyword driven)
而關鍵字又可由其他關鍵字所構成

以達到更好的 reuse 及整合

是一套透過活用排列組合來撰寫測試案例的工具

什麼是"關鍵字"?

由於 Robot Framework 被大量的運用在驗收測試上

關鍵字的命名能讓使用者更加理解測試的目的及步驟

Robot Framework 中的關鍵字分為兩種 :

  • 系統關鍵字
  • 使用者定義關鍵字

Robot Framework 本身提供的關鍵字稱為系統關鍵字

可以通過導入 library 來使用

例如 "For", "log", "set variable" ..等

使用者定義關鍵字則由使用者所撰寫

舉個使用情境例子 :

打開颱風資訊中心網頁, 點擊進入颱風警報頁面
  • 原本使用 "Open Browser", "Click Element"這些關鍵字即可完成動作

  • 將以上兩個關鍵字再組成"show Typhoon status"關鍵字

範例運行 :

使用"關鍵字"寫測試案例的好處

原本就能完成的動作為什麼還要組裝呢?

原因有以下考量 :

簡化繁瑣的撰寫步驟

未組合前, 每次要執行"查詢颱風資訊頁面"便得貼上"Open Browser", "Click Element"這兩個步驟

這次的步驟範例只有兩行, 要是程式碼行數一多, 複製貼上的步驟便顯繁瑣

維護測試案例是很花人力成本的!

易於了解步驟目的

雖然能看懂這兩個關鍵字所執行的動作, 但卻無法在第一時間釐清目的

組合成 "show Typhoon status"關鍵字後, 便能清楚了解這個動作是在展示颱風狀態

以上這個過程即是"keyword driven"

每個關鍵字都待代表著一個要執行的動作

像是 Open Browser 背後就有其相對應的程式碼

藉由定義 > 組裝的循環過程來使用關鍵字進行測試

生成測試報告

Robot Framework 還有一個很棒的功能

即是在測試結束後自動產生測試報告

既然是自動化測試框架, 自動化生成測試報告也是很正常的

如果測試人員必須從測試結果中擷取資訊並且人工產出測試報告

不僅花費時間, 也容易產生人為失誤

Robot Framework 產生的報告 紅綠配色一目了然
除了可以看到測試結果 還能看到測試步驟

這些資訊對釐清問題或者複製 bug 有很大的幫助

好像有很多優點, 那缺點呢?

Robot Framework 功能強大, 結合 CI 工具根本是開發界, 測試界的一大福音

仔細想想

其實優點也相關於缺點

  • 測試過程的 LOG 雖然仔細, 但可讀性還不夠高
  • 自行設計關鍵字, 組裝關鍵字來撰寫測試案例固然好用
    但程式能力是一道門檻

功能雖然強大, 但一方面也代表著上手此工具將會花費相當的時間

工具沒有絕對的好壞, 能適當地用來解決問題就是好工具  

Reference

共收到 11 条回复 时间 点赞

可以关注公众号 “诗泽园”,里面有 rf 的相关技术文章

徐汪成 回复

除了 rf 本身的问题,测试也急需提高编程技术,以适应市场要求

可以推荐一个自动化平台,比 RF 操作更加简单,功能更加强大。例如操作数据库,上传等。令人头疼的调试功能,在平台也变的超级简单。支持在线实时,断点调试
https://testerhome.com/opensource_projects/rabbit----

我们公司一直用的就是 RF,个人感觉通过关键字使用的时候,容易造成封装的过度,在定位问题的时候去看 log 会很头疼,关键字多了以后 ride 的启动会很慢,对推广也很不利,现在也在考虑更轻便快捷高效的框架

感谢分享,不过 RF 现在好像用的人不太多。
好像测试圈,对越复杂笨重的工具的排斥越来越高了。

介绍的非常详细,RF 框架是一款比较成熟的测试框架,本身易用性做的很好,很适合快速上手用

🔥🔥🔥 回复

台湾同胞

为什么你用的是繁体字?

Ms.Test 回复

都会 python 有 coding 能力了, 直接用 unittest/pytest 这种测试框架不是更方便灵活?

RF 有点过时了

lazyBoy 回复

其實還是挺看情況的, 撇除 RIDE 不談
robotframework 結合 Python 的應用很廣
自己編寫 python 的 keyworld 來用的話, 功能強大

试用过, 个人感受,用例可读性较好,但编辑起来挺麻烦,debug 也不方便。 适合没有 coding 能力的测试人员。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册