• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      自動化測試在DevOps體系中的應(yīng)用初探

      2017-12-27 07:45:47肖嬋嬋
      移動通信 2017年22期
      關(guān)鍵詞:腳本框架流程

      肖嬋嬋

      自動化測試在DevOps體系中的應(yīng)用初探

      肖嬋嬋

      (中國移動(深圳)有限公司,廣東 深圳 518048)

      為了實(shí)現(xiàn)DevOps流水中持續(xù)集成測試的實(shí)現(xiàn),通過分析在線計(jì)費(fèi)的業(yè)務(wù)場景,研究并采用基于Robot Framework測試框架,在該框架下實(shí)現(xiàn)了自動化測試在DevOps體系中的成功實(shí)踐應(yīng)用,覆蓋實(shí)時交易接口、清結(jié)算接口、WEB UI頁面三個方面的自動化測試,從測試方法、測試應(yīng)用、實(shí)踐效果等多個方面探索和驗(yàn)證了該實(shí)踐的可行性及優(yōu)勢。

      DevOps 自動化測試 Robot Framework WEB UI

      1 引言

      隨著軟件迭代發(fā)布的頻率越來越高,傳統(tǒng)的瀑布型模式已經(jīng)不能滿足快速交付的需求。2009年左右DevOps應(yīng)運(yùn)而生,DevOps(Development和Operations的組合)是軟件開發(fā)和交付的過程,強(qiáng)調(diào)產(chǎn)品管理、軟件開發(fā)和專業(yè)運(yùn)營人員之間的溝通與協(xié)作。通過自動化和監(jiān)控軟件開發(fā)、測試,部署基礎(chǔ)架構(gòu)變更的過程,建立一種快速、頻繁且可靠地開發(fā)、測試、發(fā)布軟件的文化和環(huán)境。簡單地說,就是打破開發(fā)、測試、運(yùn)維之間的壁壘,實(shí)現(xiàn)開發(fā)運(yùn)維的一體化,通過高度自動化工具與流程來使得軟件構(gòu)建、測試、發(fā)布更加快捷、頻繁和可靠。通過編排DevOps工具鏈過程,打造標(biāo)準(zhǔn)化、可重復(fù)和高度自動化流水目標(biāo)。但是一味追求開發(fā)、部署、升級、擴(kuò)展、維護(hù)、測試、監(jiān)測、安全和策略管理等全面的自動化可能導(dǎo)致自動化泛濫。自動化部署Chef或Puppet腳本庫的無序增長、自動化測試腳本隨著項(xiàng)目增多呈現(xiàn)急劇膨脹、IT資源浪費(fèi)等都是自動化泛濫導(dǎo)致的惡果,可通過集中審查和調(diào)整進(jìn)行管控以規(guī)避此類問題。在這個過程中,自動化測試作為測試部分,是實(shí)現(xiàn)DevOps的重要一環(huán)。自動化測試主要用于持續(xù)的自動化回歸測試,是穩(wěn)定、快速交付版本質(zhì)量的重要保障。DevOps體系流程如圖1所示:

      圖1 DevOps體系流程

      目前,自動化測試在DevOps中的實(shí)踐應(yīng)用一直是探究熱點(diǎn),是促進(jìn)DevOps落地的重要抓手。在DevOps中持續(xù)測試(CT)是對持續(xù)集成(CI)進(jìn)行及時驗(yàn)證的手段,是實(shí)現(xiàn)有效的持續(xù)交付(CD)的必備環(huán)節(jié)。自動化測試能夠保證開發(fā)的代碼質(zhì)量盡快得到反饋,盡早發(fā)現(xiàn)代碼中潛在的問題并及時進(jìn)行修復(fù),并且盡可能避免人為失誤且保證整個DevOps流程的高效、可重復(fù)。自動化測試的應(yīng)用類型包括WEB UI自動化測試、接口自動化測試、移動端自動化測試、云平臺自動化測試等,針對不同的應(yīng)用類型,采取不同的測試策略和方法。

      本文在分析和探討已存在的自動化測試工具基礎(chǔ)上,通過應(yīng)用分析和實(shí)踐探索,結(jié)合業(yè)務(wù)應(yīng)用場景,實(shí)現(xiàn)了將測試框架Robot Framework成功應(yīng)用于符合業(yè)務(wù)特點(diǎn)的實(shí)時消息接口、清結(jié)算接口、WEB UI頁面自動化測試。首先通過自動化測試工具分析與選項(xiàng),選定了采用的測試框架。其次,針對業(yè)務(wù)自身特點(diǎn),給出了采用Robot Framework測試框架實(shí)現(xiàn)自動化測試的詳細(xì)過程。然后,從實(shí)時交易接口、清結(jié)算接口、WEB UI頁面自動化測試以及與DevOps體系流程的集成四個方面進(jìn)行了分析。最后,對基于Robot Framework測試框架的自動化測試實(shí)踐應(yīng)用效果進(jìn)行了分析,從經(jīng)濟(jì)效益、降低風(fēng)險(xiǎn)和品牌效應(yīng)三個方面驗(yàn)證了基于Robot Framework測試框架的自動化測試方法的有效性和優(yōu)越性。

      2 自動化測試設(shè)計(jì)

      2.1 工具分析與選型

      通過頭腦風(fēng)暴搜索業(yè)內(nèi)主流的自動化測試工具Java+Selenium、QTP、Robot Framework,從易用性、經(jīng)濟(jì)成本、可擴(kuò)展性、適用性、報(bào)表出具多個維度進(jìn)行分析比對(如表1所示),并進(jìn)行了實(shí)際試用,最終選定Robot Framework測試框架作為自動化測試開展的工具,并攻克難點(diǎn)完成框架的搭建,完成雛形的驗(yàn)證。

      從表1的分析比對可以看出,Robot Framework測試框架具有易于使用、開源和擴(kuò)展性良好、適用性全面、報(bào)表詳細(xì)等優(yōu)勢,能夠切合自動化測試對工具的需求。鑒于此,選定Robot Framework測試框架作為最終的選擇。

      表1 業(yè)內(nèi)主流自動化測試工具比對

      2.2 自動化測試實(shí)踐流程

      整個自動化測試實(shí)現(xiàn)過程包括前期的環(huán)境準(zhǔn)備、需求分析、測試框架規(guī)劃與搭建、案例腳本編寫、測試執(zhí)行、執(zhí)行結(jié)果通報(bào)及腳本維護(hù)共計(jì)7項(xiàng)關(guān)鍵活動,具體如圖2所示:

      圖2 自動化測試實(shí)踐流程

      (1)環(huán)境準(zhǔn)備

      在開展自動化測試之前,環(huán)境準(zhǔn)備是不可或缺的前提條件,包括自動化測試開發(fā)的環(huán)境和被測系統(tǒng)的測試環(huán)境。針對自動化測試開發(fā)環(huán)境,主要是環(huán)境機(jī)器資源的申請、對環(huán)境的配置,使其符合開發(fā)要求。針對被測系統(tǒng)的測試環(huán)境,直接借用驗(yàn)收測試的測試環(huán)境,主要是訪問網(wǎng)絡(luò)策略的開通申請與驗(yàn)證。

      (2)需求分析

      對于各個業(yè)務(wù)的自動化測試需求,根據(jù)業(yè)務(wù)內(nèi)容和場景、提供的測試案例進(jìn)行需求分析,完成自動化測試功能點(diǎn)的提取分析,輸出測試框架的規(guī)劃,為后續(xù)框架搭建和關(guān)鍵字的開發(fā)做鋪墊。

      (3)測試框架搭建

      根據(jù)需求分析階段提取的自動化測試功能點(diǎn)提取分析結(jié)果,完成符合業(yè)務(wù)場景要求的功能關(guān)鍵字的開發(fā),完成自動化測試框架的搭建。

      (4)案例腳本編寫

      在搭建的測試框架下,依據(jù)測試案例的場景和測試步驟,組裝各個功能關(guān)鍵字,實(shí)現(xiàn)符合業(yè)務(wù)場景的正常和異常場景的測試案例腳本編寫和調(diào)試,完成各個測試案例的開發(fā)。

      (5)自動化測試執(zhí)行

      將完成開發(fā)的自動化測試案例交付給驗(yàn)收測試人員進(jìn)行回歸測試執(zhí)行,支持全量回歸和增量回歸。

      (6)執(zhí)行結(jié)果通報(bào)

      驗(yàn)收測試人員完成每輪回歸測試之后,通報(bào)回歸測試結(jié)果(包括測試報(bào)告和測試日志)給相關(guān)干系人,失敗問題提交問題單給自動化測試人員進(jìn)行協(xié)助定位與解決。

      (7)腳本維護(hù)

      自動化腳本完成開發(fā)后需進(jìn)行持續(xù)維護(hù),主要體現(xiàn)在需求變更和腳本優(yōu)化。對于需求變更的情況,需要針對發(fā)布的變更信息及時完成腳本的變更。對于腳本優(yōu)化,主要是腳本性能、健壯性、異常情況的優(yōu)化。

      2.3 應(yīng)用場景選擇分析

      在線計(jì)費(fèi)項(xiàng)目作為提升全網(wǎng)計(jì)費(fèi)類業(yè)務(wù)支撐水平及能力的重點(diǎn)建設(shè)項(xiàng)目,被納入DevOps體系建設(shè)中作為試點(diǎn)DevOps項(xiàng)目,以促進(jìn)DevOps框架體系落地,確保DevOps體系的建設(shè)質(zhì)量。在DevOps框架體系流程的測試環(huán)節(jié)中,在線計(jì)費(fèi)涉及的測試模塊包括實(shí)時交易消息接口、清結(jié)算文件類接口、管控臺。應(yīng)用的業(yè)務(wù)類型包括:

      (1)實(shí)時交易消息接口:實(shí)時扣費(fèi)、實(shí)時扣費(fèi)撤銷、用戶投訴退費(fèi)、交易狀態(tài)查詢、簽到簽退共計(jì)5個接口。

      (2)清結(jié)算文件類接口:包括對賬、核減、日結(jié)算和月結(jié)算共計(jì)4個接口。

      (3)WEB UI頁面管控臺:業(yè)務(wù)展示、業(yè)務(wù)控制、報(bào)表出具共計(jì)3個模塊。

      對于以上測試場景的選擇,主要從自動化測試的必要性、DevOps體系應(yīng)用、可擴(kuò)展性進(jìn)行分析:

      伏立康唑是一種對念珠菌屬、曲霉菌屬以及其它絲狀真菌表現(xiàn)出優(yōu)異的體內(nèi)外抗菌活性的三唑類抗真菌藥物[1]。作為其口服制劑,伏立康唑片因高效低毒的優(yōu)點(diǎn)備受臨床青睞,廣泛用于治療敏感菌所致的感染以及免疫功能低下患者中進(jìn)行性的、可能威脅生命的感染[2]。某院腎臟科患者因大多長期應(yīng)用糖皮質(zhì)激素和免疫抑制劑而普遍使用伏立康唑片,但目前并無該藥在腎臟病患者中使用的相關(guān)“指南”。故筆者對該院腎臟科一時間段使用伏立康唑片的出院病歷進(jìn)行處方點(diǎn)評,旨在提高該藥物應(yīng)用的合理性。

      (1)自動化測試必要性分析

      整個項(xiàng)目的測試接口共計(jì)9個,測試案例多達(dá)371個,平均每個案例的字段檢測點(diǎn)222.5個,數(shù)據(jù)庫表字段檢測點(diǎn)90.5個,每個迭代版本的回歸測試工作量繁重,對人力和時間成本提出了更高的要求。

      (2)DevOps體系應(yīng)用分析

      DevOps項(xiàng)目實(shí)現(xiàn)頻繁且可靠地進(jìn)行交付,自動化測試是確保無差錯發(fā)布的關(guān)鍵因素。特別是在有限的人力成本下短時間內(nèi)完成持續(xù)的全量回歸測試,手工測試已無法滿足DevOps體系的要求。測試高度的自動化能夠讓回歸測試變得輕松,快速響應(yīng)版本交付質(zhì)量。

      (3)全網(wǎng)可拓展性分析

      作為某運(yùn)營商,全網(wǎng)數(shù)據(jù)運(yùn)營系統(tǒng)涉及基于HTTP+XML格式的聯(lián)機(jī)交易、基于新一代DCC協(xié)議的實(shí)時計(jì)費(fèi)類業(yè)務(wù)、基于FTP協(xié)議傳輸?shù)奈募悩I(yè)務(wù),在全網(wǎng)應(yīng)用業(yè)務(wù)范圍廣。本文自動化測試實(shí)踐場景均覆蓋到三類業(yè)務(wù)模塊,在全網(wǎng)存在很大的可擴(kuò)展空間。

      隨著信息化、互聯(lián)網(wǎng)、移動化、云計(jì)算的不斷發(fā)展,全網(wǎng)WEB應(yīng)用平臺建設(shè)需求越來越多,WEB UI自動化測試需求也相應(yīng)會不斷增加,該自動化測試方法和策略也具備較高的可借鑒性。

      2.4 自動化測試應(yīng)用分析

      (1)實(shí)時交易接口應(yīng)用

      實(shí)時消息接口應(yīng)用主要是對實(shí)時交易類型業(yè)務(wù)中的消息報(bào)文的測試,報(bào)文格式包括XML格式和DCC協(xié)議的CCR和CCA消息格式。

      主要的操作包括各類消息報(bào)文的組裝和生成,報(bào)文的發(fā)送,報(bào)文內(nèi)容獲取,報(bào)文解析,報(bào)文字段校驗(yàn),數(shù)據(jù)庫入庫記錄的獲取與校驗(yàn),日志內(nèi)容的獲取與校驗(yàn)等。

      腳本整體的框架如圖3所示:

      圖3 實(shí)時交易自動化測試腳本框架

      (2)清結(jié)算接口應(yīng)用

      清結(jié)算接口應(yīng)用主要是對話單文件處理進(jìn)行測試,文件類型包括普通文件、gz壓縮格式文件。

      主要的操作包括各類測試文件的構(gòu)造與生成,文件的上傳與下載,文件存在性校驗(yàn),文件內(nèi)容獲取與校驗(yàn),數(shù)據(jù)庫入庫記錄獲取與校驗(yàn),日志文件內(nèi)容獲取與校驗(yàn),服務(wù)進(jìn)程的啟停,配置文件修改等。

      腳本整體的框架如圖4所示:

      圖4 清結(jié)算自動化測試腳本框架

      (3)WEB UI頁面應(yīng)用

      WEB UI頁面應(yīng)用主要是對在線計(jì)費(fèi)管控臺應(yīng)用的測試,主要是實(shí)現(xiàn)對頁面各個元素和控件的定位、操作與校驗(yàn),以判斷是否符合預(yù)期要求。

      腳本整體的框架如圖5所示:

      圖5 管控臺自動化測試腳本結(jié)構(gòu)

      2.5 集成DevOps流程

      將如上所述的自動化測試應(yīng)用于DevOps流程中,主要通過Robot Framework測試框架與jenkins的集成實(shí)現(xiàn)在DevOps體系中的實(shí)踐應(yīng)用。

      以清結(jié)算接口測試的構(gòu)建進(jìn)行示例說明,構(gòu)建結(jié)果分別如圖6、圖7、圖8所示。

      構(gòu)建結(jié)果報(bào)告整體展示了本次測試構(gòu)建的執(zhí)行結(jié)果,包括構(gòu)建的總案例數(shù)、失敗案例數(shù)、通過案例數(shù)、通過百分比及趨勢圖。

      控制臺輸出打印了本次構(gòu)建過程的詳細(xì)過程日志信息以及每個案例的執(zhí)行結(jié)果。

      圖6 構(gòu)建結(jié)果報(bào)告

      圖7 控制臺輸出

      圖8 Robot Results輸出

      Robot Results輸出信息包括本次構(gòu)建案例總數(shù)、失敗案例數(shù)、失敗案例詳細(xì)信息、測試成功與失敗趨勢圖、構(gòu)建執(zhí)行時間趨勢圖、所有測試套件執(zhí)行結(jié)果匯總。

      3 實(shí)踐效果分析

      通過將基于Robot Framework框架的自動化測試應(yīng)用于DevOps中,節(jié)省了測試人員的人力和時間成本,提升了回歸測試效率,能夠快速反饋代碼問題,促進(jìn)缺陷的及時修復(fù),保障開發(fā)版本質(zhì)量,促使DevOps的流程更加高效。

      自動化測試在DevOps體系的應(yīng)用實(shí)踐效果主要體現(xiàn)在經(jīng)濟(jì)效益、風(fēng)險(xiǎn)降低和品牌效應(yīng)三個方面。

      (1)經(jīng)濟(jì)效益

      通過自動化測試,實(shí)時交易接口單個案例平均執(zhí)行耗時由原來的9.5分鐘下降為45秒,減少了92%的時間;清結(jié)算接口單個案例平均執(zhí)行耗時由原來的11分鐘下降為2分鐘,減少了81%的時間。分別如圖9和圖10所示。

      圖9 實(shí)時交易單個案例平均測試時間比對圖

      圖10 清結(jié)算單個案例平均測試時間比對圖

      圖11 是DevOps流程中執(zhí)行全量測試耗時比對圖,可以看出,在DevOps流程中在線計(jì)費(fèi)項(xiàng)目實(shí)時交易執(zhí)行全量233個案例的測試耗時提升效率達(dá)12倍,清結(jié)算執(zhí)行全量138個案例的測試耗時提升效率達(dá)5.5倍。相應(yīng)版本質(zhì)量反饋速度分別提升12倍和5.5倍,助力項(xiàng)目交付頻率的提升。

      圖11 DevOps流程中執(zhí)行全量測試耗時比對圖

      (2)風(fēng)險(xiǎn)降低

      自動化測試應(yīng)用于DevOps流程中能夠有效降低缺陷遺漏風(fēng)險(xiǎn),主要體現(xiàn)在其測試的可重復(fù)性和質(zhì)量可見性。

      自動化測試能夠?qū)y試流程和校驗(yàn)點(diǎn)固化,確保構(gòu)建測試的可重復(fù),能夠有效避免人為出錯率。

      質(zhì)量可見性指快速的自動化測試能夠及時收集測試過程數(shù)據(jù),有利于缺陷的定位與排查,有較充分的數(shù)據(jù)支持,減少質(zhì)量假定,增加項(xiàng)目健康狀況的可見性。

      (3)品牌效應(yīng)

      ◆拓展與開發(fā)合作更多新項(xiàng)目或者新業(yè)務(wù)的DevOps流程實(shí)踐,促進(jìn)流程的落地。

      ◆助力驗(yàn)收測試人員多項(xiàng)業(yè)務(wù)的回歸測試。

      ◆在整個部門內(nèi)開展多次自動化測試的實(shí)踐經(jīng)驗(yàn)分享活動,推廣應(yīng)用范圍。

      4 結(jié)束語

      本文在探究基于Robot Framework測試框架的自動化測試基礎(chǔ)上,通過分析現(xiàn)有業(yè)務(wù)場景和自動化測試需求,實(shí)現(xiàn)了基于Robot Framework測試框架的消息接口、清結(jié)算接口和WEB UI頁面自動化測試實(shí)踐應(yīng)用,并成功將該實(shí)踐成果應(yīng)用于DevOps體系的應(yīng)用中。通過實(shí)踐,驗(yàn)證了該實(shí)踐應(yīng)用方法的可行性和優(yōu)勢性,并根據(jù)實(shí)踐效果,從經(jīng)濟(jì)效益、風(fēng)險(xiǎn)降低和品牌效應(yīng)三個方面分別進(jìn)行了總結(jié)分析。

      本文的不足之處主要是對安全方面的測試有所欠缺,主要包括兩方面,首先是對采用的Robot Framework框架和集成工具jenkins缺少充分的安全性掃描和測試;其次本文只涉及集成功能測試,對于該自動化測試的應(yīng)用涉及的安全問題方面測試(例如網(wǎng)絡(luò)安全、信息安全測試等)未納入到持續(xù)集成和應(yīng)用交付過程中,這將作為后續(xù)開展研究的目標(biāo)。

      [1] John Fer guson Smart. jenkins權(quán)威指南[M]. 北京: 電子工業(yè)出版社, 2016.

      [2] 齊濤. R obot Framework自動化測試修煉寶典[M]. 北京:電子工業(yè)出版社, 2015.

      [3] 亨布爾,法利. 持續(xù)交付:發(fā)布可靠軟件的系統(tǒng)方法[M]. 北京: 人民郵電出版社, 2011.

      [4] 侯勇,張海林. 自動化測試中的關(guān)鍵字驅(qū)動腳本技術(shù)[J].電子科技, 2006(2): 51-54.

      [5] 接卉,蘭雨晴,駱沛. 一種關(guān)鍵字驅(qū)動的自動化測試框架[J]. 計(jì)算機(jī)應(yīng)用研究, 2009,26(3): 927-929.

      [6] 馮玉才,唐艷,周淳. 關(guān)鍵字驅(qū)動自動化測試的原理和實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用, 2004,24(8): 140-142.

      [7] 朱菊,王志堅(jiān),楊雪. 基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2006,16(5): 68-70.

      [8] 張少博,羅省賢. 自動化測試腳本運(yùn)行控制方法研究[J].電子測試, 2008(6): 19-23.

      [9] 馮振華,高菊,曾紅衛(wèi). Web應(yīng)用自動化測試的研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2010,31(1): 175-178.

      [10] 劉曉丹,武君勝,劉博. 基于數(shù)據(jù)驅(qū)動的自動化測試平臺設(shè)計(jì)[J]. 科學(xué)技術(shù)與工程, 2008,8(3): 779-782.★

      The Application of Automated Testing in the DevOps System

      XIAO Chanchan
      (China Mobile (Shenzhen) Limited, Shenzhen 518048, China)

      In order to realize the continuous integration testing in the pipeline of DevOps, the business scenario of the online billing was analyzed and the testing framework of Robot Framework was adopted based on which the practical application of the automated testing in the DevOps system was successfully implemented. The real-time transaction interface, clear settlement interface and WEB UI page were covered. From aspects of testing methods, testing applications and practice effect, the feasibility and advantage of the practice were explored and validated.

      DevOps automated testing Robot Framework WEB UI

      10.3969/j.issn.1006-1010.2017.22.015

      TP311

      A

      1006-1010(2017)22-0077-07

      肖嬋嬋. 自動化測試在DevOps體系中的應(yīng)用初探[J]. 移動通信, 2017,41(22): 77-83.

      2017-09-10

      劉妙 liumiao@mbcom.cn

      肖嬋嬋:軟件測試工程師,碩士畢業(yè)于南京郵電大學(xué),現(xiàn)任職于中國移動(深圳)有限公司,主要從事功能自動化測試的相關(guān)工作,主要研究方向?yàn)樽詣踊瘻y試在DevOps體系中的應(yīng)用。

      猜你喜歡
      腳本框架流程
      酒駕
      框架
      吃水果有套“清洗流程”
      安奇奇與小cool 龍(第二回)
      廣義框架的不相交性
      數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
      電子測試(2018年14期)2018-09-26 06:04:24
      違反流程 致命誤判
      快樂假期
      WTO框架下
      法大研究生(2017年1期)2017-04-10 08:55:06
      本刊審稿流程
      沁水县| 镶黄旗| 临海市| 石首市| 乌兰察布市| 寻甸| 海淀区| 麟游县| 久治县| 霍山县| 富顺县| 深泽县| 日照市| 乐昌市| 彭阳县| 株洲市| 县级市| 永靖县| 甘德县| 汤阴县| 邵阳市| 浦北县| 尼木县| 黄陵县| 柯坪县| 白水县| 靖西县| 揭西县| 德庆县| 松滋市| 昂仁县| 泸州市| 南郑县| 从化市| 庐江县| 嘉定区| 阿瓦提县| 通道| 岑溪市| 闸北区| 淮安市|