Robotframework+Git+Jenkins實現(xiàn)接口自動化測試持續(xù)集成

項目背景

在服務(wù)端優(yōu)化代碼或者火星直播項目迭代過程時蝇完,服務(wù)端每天都會有很多次代碼的提交官硝,而要保證每次代碼的提交都能不影響線上環(huán)境的穩(wěn)定性和客戶端功能正常運行尤為重要,而接口測試可以檢查接口的數(shù)據(jù)返回四敞、數(shù)據(jù)格式以及數(shù)據(jù)類型是否與預(yù)期保持一致绷蹲。從而確保每一次服務(wù)端代碼的上線都能夠安全穩(wěn)定誓斥,以及實現(xiàn)對線上接口的實時監(jiān)控,出現(xiàn)問題時即時暴露七扰,保證服務(wù)端的穩(wěn)定性没龙。

接口測試可以使測試人員提前介入測試铺厨,當(dāng)客戶端還未開發(fā)完成之時,可以通過接口測試模擬客戶端的請求硬纤,來驗證接口的正確性解滓,提前檢查接口返回數(shù)據(jù)與期望是否一致,檢查服務(wù)端處理異常Case的能力筝家,將可能會出現(xiàn)的bug控制在項目測試前期階段洼裤。

在火星直播版本迭代過程中,需要在項目流程中有充足的時間去編寫新的自動化測試用例以及對之前接口的維護(hù)溪王,而一套Robotframework框架擁有強(qiáng)大的擴(kuò)展庫腮鞍,可以滿足對接口值骇、數(shù)據(jù)庫、移動端UI自動化移国、Web端UI自動化的測試吱瘩,而且其本身的驅(qū)動原理能大大的縮小開發(fā)成本,提升用例編寫效率迹缀。

Robotframework框架簡介

Robot Framework框架是一個通用的驗收測試和驗收測試驅(qū)動開發(fā)的自動化測試框架(ATDD)使碾,使用關(guān)鍵字驅(qū)動的測試方法。其檢測能力可以通過測試庫實現(xiàn)可以使用 Python 或 Java 的擴(kuò)展祝懂,用戶可以使用相同的語法票摇,用于創(chuàng)建測試用例創(chuàng)建新的更高層次的現(xiàn)有的關(guān)鍵詞。Robot Framework 的操作系統(tǒng)和應(yīng)用獨立框架砚蓬。核心框架是使用 Python 和運行在 Jython(JVM)和 IronPython(.NET)兄朋。

Robotframework分層思想

Robotframework 項目結(jié)構(gòu)分為Testsuite,Testcase怜械,Resource File颅和,Library這幾個層級,Testcase就是在Testsuite下的具體的單個自動化測試用例缕允,利用關(guān)鍵字驅(qū)動調(diào)用底層封裝好的類庫來編寫一條條自動化測試用例峡扩,可以更加效率的完成用例的編寫工作,其各自之間的關(guān)系如下圖所示

分層思想

Robotframework支持的Library

Robot Framework 所支持的庫主要分標(biāo)準(zhǔn)庫障本、擴(kuò)展庫和 其它 教届。 標(biāo)準(zhǔn)庫提供基本功能,擴(kuò)展庫提供特定領(lǐng)域的操作驾霜。 因為 Robot Framework 所支持的測試庫非常多案训,這里例一些常用的。

Web 自動化測試:SeleniumLibrary粪糙,Selenium2Library等强霎。

Windows GUI 測試:AutoItLibrary。

移動測試:AndroidLibrary蓉冈、iOSLibrary城舞、AppiumLibrary 等。

數(shù)據(jù)庫測試: Database Library 寞酿,MongoDB library家夺,RedisLibrary 等。

文件對比測試:Diff Library伐弹。

HTTP 測試: RequestsLibrary

Robotframework關(guān)鍵字驅(qū)動

通過關(guān)鍵字驅(qū)動可以快速精準(zhǔn)的調(diào)用底層庫中的具體的方法拉馋,例如

關(guān)鍵字舉例

對于上面的例子來說,set variable 、create session煌茴、create dictionary和 get request随闺,should be equal as strings ,都是“關(guān)鍵字”景馁,這些關(guān)鍵字由RequestsLibrary和Builtln類庫所提供板壮,那么這就是最基本的一條接口自動化用例,通過參數(shù)的拼接合住,模擬客戶端向服務(wù)器發(fā)送請求報文绰精,然后拿到返回的結(jié)果后將其轉(zhuǎn)化為json格式,驗證各個返回值的類型以及Value值是否與期望相符透葛。

火星直播接口自動化設(shè)計思路

用例模塊劃分設(shè)計

火星直播的業(yè)務(wù)層面目前有四個模塊笨使,分別是直播相關(guān),內(nèi)容相關(guān)僚害,個人信息相關(guān)以及統(tǒng)計上報相關(guān)硫椰。然后每個模塊里面還有諸多小類別,根據(jù)四大模塊設(shè)計如圖所示用例分類:

模塊劃分

項目結(jié)構(gòu)及用例命名規(guī)則設(shè)計

用例采用模塊+功能點+ac的規(guī)則來命名萨蚕,這樣能清晰的知道用例所屬模塊靶草、其功能點以及調(diào)用的哪個ac≡酪#火星的項目結(jié)構(gòu)如圖所示

項目結(jié)構(gòu)

用例的斷言

用例的斷言分別驗證了返回各個參數(shù)的類型是否正確奕翔,驗證了value值的具體返回值和有固定取值區(qū)間value,驗證了狀態(tài)碼以及errorcode值是否正確浩蓉。舉一個獲取星光的接口用例派继,如圖所示

斷言舉例

Robotframework報告和日志

Robotframework的報告和日志都是以html的格式輸出的,日志會具體到每一條case的每一個關(guān)鍵字的執(zhí)行的成功或失敗以及執(zhí)行的耗時捻艳。日志如圖所示:

Robotframework日志

報告則是對整個項目執(zhí)行的一個概覽驾窟,如圖所示:

Robotframework報告

以上便是Robotframework的簡單介紹以及在火星直播接口自動化測試項目中的實踐。

部署到Jenkins實現(xiàn)持續(xù)集成

這個項目是火星測試團(tuán)隊共同完成的认轨,每個人都有自己的開發(fā)量绅络,我們分別建立了自己的dev分支,定期評審各自代碼好渠,優(yōu)化各自代碼后昨稼,最終合并到了主分支。最終在Jenkins中下載了Robotframework插件拳锚,集成到了Jenkins中。

部署到Jenkins

打通郵件系統(tǒng)寻行,每天定期會執(zhí)行整個項目霍掺,并發(fā)送錯誤報告,可以在郵件中直接打開報告和日志,也可在Jenkins中查看報告和日志。在Jenkins中的報告顯示杆烁,如圖所示:

Jenkins中報告

總結(jié)

以上便是Robotframework+Jenkins的一些簡單介紹牙丽,以及如何在火星直播中一步步落地的,相信在版本快速迭代的時代兔魂,測試同學(xué)在完成業(yè)務(wù)功能測試的同時也能高效的編寫接口和移動端UI自動化Case烤芦,選用這套框架可能會是一個不錯的選擇,當(dāng)然也存在不足的地方析校,后續(xù)也有許多二次開發(fā)優(yōu)化的空間构罗,希望大佬們多多指導(dǎo),互相探討智玻。Thanks遂唧!~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吊奢,隨后出現(xiàn)的幾起案子盖彭,更是在濱河造成了極大的恐慌,老刑警劉巖页滚,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件召边,死亡現(xiàn)場離奇詭異,居然都是意外死亡裹驰,警方通過查閱死者的電腦和手機(jī)隧熙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來邦马,“玉大人贱鼻,你說我怎么就攤上這事∽探” “怎么了邻悬?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長随闽。 經(jīng)常有香客問我父丰,道長,這世上最難降的妖魔是什么掘宪? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任蛾扇,我火速辦了婚禮,結(jié)果婚禮上魏滚,老公的妹妹穿的比我還像新娘镀首。我一直安慰自己,他們只是感情好鼠次,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布更哄。 她就那樣靜靜地躺著芋齿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪成翩。 梳的紋絲不亂的頭發(fā)上觅捆,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機(jī)與錄音麻敌,去河邊找鬼栅炒。 笑死,一個胖子當(dāng)著我的面吹牛术羔,可吹牛的內(nèi)容都是我干的赢赊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼聂示,長吁一口氣:“原來是場噩夢啊……” “哼域携!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鱼喉,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤秀鞭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后扛禽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锋边,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年编曼,在試婚紗的時候發(fā)現(xiàn)自己被綠了豆巨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡掐场,死狀恐怖往扔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情熊户,我是刑警寧澤萍膛,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站嚷堡,受9級特大地震影響蝗罗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蝌戒,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一串塑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧北苟,春花似錦桩匪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瑟慈。三九已至桃移,卻和暖如春屋匕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背借杰。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工过吻, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔗衡。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓纤虽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绞惦。 傳聞我的和親對象是個殘疾皇子逼纸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355