<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          利用Robot Framework實(shí)現(xiàn)多平臺(tái)自動(dòng)化測(cè)試

          共 3754字,需瀏覽 8分鐘

           ·

          2021-11-23 16:32

          基于Robot Framework、Jenkins、Appium、Selenium、Requests、AutoIt等開源框架和技術(shù),成功打造了通用自動(dòng)化測(cè)試持續(xù)集成管理平臺(tái)(以下簡(jiǎn)稱“平臺(tái)”),顯著提高了測(cè)試質(zhì)量和測(cè)試用例的執(zhí)行效率。



          01
          設(shè)計(jì)目標(biāo)


          • 平臺(tái)通用且支持不同類型的自動(dòng)化測(cè)試

            平臺(tái)框架輕量、開放、靈活,有強(qiáng)大豐富的測(cè)試庫,全面支撐PC桌面應(yīng)用(如核心柜臺(tái)和網(wǎng)上交易系統(tǒng))、Web應(yīng)用(如商城網(wǎng)廳)、APP應(yīng)用(如手機(jī)證券)、接口(如柜臺(tái)周邊接口)、數(shù)據(jù)庫(如Oracle)等自動(dòng)化測(cè)試,便于后續(xù)持續(xù)測(cè)試開發(fā)和集中統(tǒng)一管理。


          • 平臺(tái)支持自動(dòng)化測(cè)試全流程

            平臺(tái)展示界面統(tǒng)一、清晰、簡(jiǎn)潔,覆蓋測(cè)試用例設(shè)計(jì)、測(cè)試腳本開發(fā)、測(cè)試執(zhí)行、測(cè)試報(bào)告生成等流程。通過對(duì)測(cè)試流程實(shí)現(xiàn)統(tǒng)一管理,降低測(cè)試人員使用平臺(tái)的門檻。


          • 平臺(tái)具有良好的擴(kuò)展性、易維護(hù)性

            平臺(tái)支持協(xié)同工作、分布式測(cè)試執(zhí)行,能與版本管理工具、軟件缺陷管理系統(tǒng)、企業(yè)郵件系統(tǒng)等集成,同時(shí)在項(xiàng)目不斷迭代的過程中,自動(dòng)化測(cè)試腳本能彈性調(diào)整和代碼復(fù)用。



          02
          架構(gòu)設(shè)計(jì)


          平臺(tái)采用組件化的思想和分層架構(gòu),可分為4層,每一層都實(shí)現(xiàn)特定的功能,并提供接口給其它層調(diào)用:


          圖1?平臺(tái)架構(gòu)設(shè)計(jì)


          • 最底層是被測(cè)系統(tǒng),主要明確被測(cè)對(duì)象的形態(tài)。平臺(tái)支持APP、Web和PC應(yīng)用測(cè)試,以及接口、數(shù)據(jù)庫等測(cè)試。


          • 往上是測(cè)試庫。平臺(tái)除提供如進(jìn)程、字符串、集合、截圖處理等基礎(chǔ)測(cè)試庫外,還提供Web、APP、接口等專用測(cè)試的擴(kuò)展測(cè)試庫,以支持不同的被測(cè)系統(tǒng)選擇相應(yīng)的測(cè)試庫。


          • 中間是測(cè)試框架,其作用包括用例管理、測(cè)試數(shù)據(jù)管理、測(cè)試運(yùn)行、測(cè)試報(bào)告等。


          • 最上面則是持續(xù)構(gòu)建層,負(fù)責(zé)任務(wù)、機(jī)器、排隊(duì)等控制和調(diào)度,自動(dòng)完成整個(gè)測(cè)試作業(yè)過程。



          03
          平臺(tái)實(shí)現(xiàn)


          在自動(dòng)化框架選型上,我們選擇Robot Framework(以下簡(jiǎn)稱“RF”)作為自動(dòng)化測(cè)試平臺(tái)的核心底層框架Jenkins作為持續(xù)集成與任務(wù)調(diào)度平臺(tái),同時(shí)選擇AppiumLibrary、Selenium2Library、RequestsLibrary、AutoItLibrary等作為擴(kuò)展測(cè)試庫,以應(yīng)對(duì)不同的測(cè)試需求。



          (1)RF框架

          RF是一款功能豐富并且擴(kuò)展性強(qiáng)的開源自動(dòng)化測(cè)試框架,主要用于輪次較多的回歸測(cè)試。框架通過關(guān)鍵字的組合形成測(cè)試邏輯,最終通過各個(gè)底層測(cè)試庫與被測(cè)系統(tǒng)交互,完成測(cè)試工作。


          RF框架為APP、Web、接口、數(shù)據(jù)庫測(cè)試等提供了標(biāo)準(zhǔn)的底層關(guān)鍵字API,測(cè)試人員只需在這些關(guān)鍵字的基礎(chǔ)上開發(fā)自定義腳本,即可滿足自身測(cè)試的要求。


          圖2?RF架構(gòu)圖


          (2)AppiumLibrary

          Appium是一個(gè)開源、跨多平臺(tái)多語言的測(cè)試框架,相比其它框架,它支持iOS和Android平臺(tái)上的原生、Web和混合應(yīng)用自動(dòng)化測(cè)試,可在平臺(tái)間重用代碼,編寫測(cè)試腳本和運(yùn)行測(cè)試時(shí)不需要對(duì)源碼重新編譯,在腳本的編寫和實(shí)現(xiàn)上對(duì)編程語言沒有太多要求,測(cè)試更輕量靈活。


          AppiumLibrary是RF框架基于Appium的第三方擴(kuò)展應(yīng)用程序測(cè)試庫,可支持券商手機(jī)證券APP自動(dòng)化測(cè)試開發(fā)。

          圖3?Appium架構(gòu)圖


          (3)Selenium2Library

          Selenium是為了實(shí)現(xiàn)多平臺(tái)Web應(yīng)用程序測(cè)試而專門設(shè)計(jì)的自動(dòng)化測(cè)試工具套件,具有可擴(kuò)展、跨平臺(tái)、多瀏覽器支持等特性。Selenium 2集成了WebDriver,WebDriver通過原生瀏覽器支持或者瀏覽器擴(kuò)展直接控制瀏覽器,測(cè)試人員可根據(jù)不同的平臺(tái)、不同瀏覽器選擇不同的WebDriver去執(zhí)行測(cè)試。


          Selenium2Library是RF框架基于Selenium2的Web測(cè)試庫,可支持券商商城、網(wǎng)廳等Web應(yīng)用自動(dòng)化測(cè)試開發(fā)。

          圖4?WebDriver架構(gòu)圖


          (4)RequestsLibrary

          接口測(cè)試一般用于多系統(tǒng)間交互開發(fā),或擁有多個(gè)子系統(tǒng)的應(yīng)用系統(tǒng)開發(fā)的測(cè)試。Requests是用Python語言編寫,基于urllib,采用Apache2 Licensed開源協(xié)議的HTTP庫,可滿足HTTP接口測(cè)試需求。RequestsLibrary是RF框架下的API測(cè)試庫,可支持券商IFS或其它自定義開發(fā)接口自動(dòng)化測(cè)試開發(fā)。


          (5)AutoIt桌面應(yīng)用測(cè)試

          AutoIt是一款用于對(duì)Windows GUI進(jìn)行自動(dòng)化操作的軟件,它可以模擬鍵盤按鍵,、鼠標(biāo)移動(dòng)以及窗口或控件的操作來實(shí)現(xiàn)自動(dòng)化任務(wù)。AutoItLibrary是RF框架基于AutoIt的Win32桌面應(yīng)用測(cè)試庫,可支持券商核心柜臺(tái)、網(wǎng)上交易等桌面應(yīng)用系統(tǒng)自動(dòng)化測(cè)試開發(fā)。

          圖5?Au3Info識(shí)別GUI對(duì)象示例


          (6)Jenkins持續(xù)集成

          Jenkins是一種開源的持續(xù)集成工具,它支持svn、Git等多種SCM配置管理工具,可根據(jù)項(xiàng)目要求設(shè)置定時(shí)構(gòu)建(如每小時(shí)、每次間隔時(shí)間或每天晚上幾點(diǎn)鐘等)或觸發(fā)構(gòu)建(如源代碼提交觸發(fā)),支持Shell腳本、Windows批處理、Ant構(gòu)造等多種構(gòu)建方法,從而滿足在不同操作系統(tǒng)上運(yùn)行。


          Jenkins支持分布式構(gòu)建(類似于Selenium Grid),可實(shí)現(xiàn)多主機(jī)多任務(wù)并行執(zhí)行。Jenkins還提供豐富的插件支持,安裝Robot Framework plugin插件后可執(zhí)行RF自動(dòng)化測(cè)試用例。

          圖6?Jenkins+RF+AppiumLibrary自動(dòng)化測(cè)試示例



          04
          平臺(tái)的創(chuàng)新點(diǎn)


          1、平臺(tái)架構(gòu)靈活、適應(yīng)場(chǎng)景廣,滿足多種不同類型自動(dòng)化測(cè)試

          平臺(tái)基于輕量的RF開源框架,具有良好的擴(kuò)展性,通過集成不同的開源擴(kuò)展測(cè)試庫可滿足不同類型、不同平臺(tái)和應(yīng)用的測(cè)試:


          • RF+AppiumLibrary可實(shí)現(xiàn)APP自動(dòng)化測(cè)試,且可在iOS和Android之間重用代碼,只需要編寫出一個(gè)統(tǒng)一的測(cè)試腳本就可以運(yùn)行在不同的平臺(tái)上,這種方式將極大提高自動(dòng)化測(cè)試腳本的使用率,節(jié)省編寫和調(diào)試測(cè)試腳本的時(shí)間;

          • RF+Selenium2Library則可實(shí)現(xiàn)Chrome、IE、Firefox等多瀏覽器下的Web應(yīng)用程序自動(dòng)化測(cè)試;

          • RF+AutoItLibrary可實(shí)現(xiàn)一般Win32桌面應(yīng)用程序自動(dòng)化測(cè)試;

          • RF+RequestsLibrary可實(shí)現(xiàn)接口自動(dòng)化測(cè)試,等等


          所以該平臺(tái)具有相當(dāng)強(qiáng)的靈活性、兼容性和易用性,尤其適用于核心柜臺(tái)、網(wǎng)上交易、手機(jī)證券等界面變化不大、軟件生命周期長(zhǎng),經(jīng)常推出新版本的產(chǎn)品自動(dòng)化測(cè)試。

          2、平臺(tái)實(shí)現(xiàn)端到端自動(dòng)化測(cè)試管理,一站式圖形展示信息

          平臺(tái)支持用例管理、腳本開發(fā)調(diào)試、任務(wù)分布式調(diào)度執(zhí)行、測(cè)試報(bào)告呈現(xiàn)全流程

          圖7?平臺(tái)測(cè)試管理


          圖8?測(cè)試日志及報(bào)告


          3、基于數(shù)據(jù)和關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試,靈活應(yīng)對(duì)被測(cè)試系統(tǒng)變更

          平臺(tái)克服了傳統(tǒng)自動(dòng)化框架錄制回放模式腳本高耦合性的缺點(diǎn),具有高健壯性、高復(fù)用性和良好的維護(hù)性:


          • 支持?jǐn)?shù)據(jù)驅(qū)動(dòng)模式,測(cè)試數(shù)據(jù)和腳本分離,測(cè)試數(shù)據(jù)變更無需修改腳本,提高了自動(dòng)化測(cè)試腳本的可復(fù)用性。


          • 實(shí)現(xiàn)界面元素統(tǒng)一管理,界面元素和測(cè)試腳本分離,應(yīng)用程序界面變動(dòng)只要修改失效的界面元素即可,無需大量修改腳本,提高了腳本的可維護(hù)性。


          • 業(yè)務(wù)流程測(cè)試基于可以靈活組合的關(guān)鍵字腳本進(jìn)行控制,通過增加關(guān)鍵字即可實(shí)現(xiàn)測(cè)試框架的功能擴(kuò)展。


          • 腳本結(jié)構(gòu)釆用分層設(shè)計(jì)思想,將自動(dòng)化測(cè)試腳本分成用例層、流程層、頁面元素層和變量集合層,方便實(shí)現(xiàn)高內(nèi)聚、低耦合的測(cè)試腳本設(shè)計(jì)。

            圖9?分層自動(dòng)化測(cè)試



          05
          平臺(tái)的實(shí)施效果


          1、提高測(cè)試用例設(shè)計(jì)質(zhì)量和業(yè)務(wù)場(chǎng)景的覆蓋度


          東莞證券自動(dòng)化測(cè)試項(xiàng)目自實(shí)施以來,用例粒度和覆蓋度得到了較大改善,手機(jī)APP交易、接口、Web(網(wǎng)廳/商城/有財(cái)貸)、核心柜臺(tái)、網(wǎng)上交易的測(cè)試用例分別達(dá)到1645、153、76、569和1168個(gè),用例規(guī)模平均增長(zhǎng)近8倍,基本覆蓋所有交易類業(yè)務(wù)。平均自動(dòng)化率達(dá)65%以上,極大提升了產(chǎn)品研發(fā)團(tuán)隊(duì)的質(zhì)量信心。

          2、提升測(cè)試用例執(zhí)行效率,加快產(chǎn)品投產(chǎn)速度


          自動(dòng)化測(cè)試提高了測(cè)試用例執(zhí)行的效率和準(zhǔn)確性,降低了生產(chǎn)應(yīng)用系統(tǒng)的故障率。另外持續(xù)集成盡早地介入,減少了版本延遲發(fā)布的可能性。以東莞證券手機(jī)APP交易自動(dòng)化測(cè)試為例,之前版本迭代周期是2-3個(gè)月,開展自動(dòng)化測(cè)試后縮短至1個(gè)月;以往一輪15人天的手動(dòng)測(cè)試改為自動(dòng)化執(zhí)行后不到2人天。按平均每月迭代一次計(jì)算,全年可省近150人天的測(cè)試資源。如對(duì)接獨(dú)立的測(cè)試柜臺(tái)(支持7*24執(zhí)行)并增加多臺(tái)設(shè)備并行執(zhí)行,自動(dòng)化測(cè)試效率還可大幅提升;該項(xiàng)目已投入近20輪版本迭代測(cè)試,發(fā)現(xiàn)缺陷17個(gè)。



          06
          總結(jié)


          東莞證券基于開源的RF框架從0到1建立起通用自動(dòng)化測(cè)試體系,并在手機(jī)APP、核心柜臺(tái)、網(wǎng)上交易、接口、商城、網(wǎng)廳等項(xiàng)目中落地,同時(shí)結(jié)合Jenkins實(shí)現(xiàn)自動(dòng)化測(cè)試持續(xù)集成和分布式構(gòu)建,有效支撐了敏捷和快速迭代過程。


          限于篇幅,本文并未就APP、Web、桌面應(yīng)用、接口等自動(dòng)化測(cè)試開發(fā)方法展開詳細(xì)論述,而是提供一種建立通用自動(dòng)化測(cè)試持續(xù)集成管理平臺(tái)的思路,希望對(duì)其他券商有一定的啟發(fā)和借鑒意義。



          --------?THE END?--------

          ??



          瀏覽 53
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费看黄色一级视频 | 人人草人人入 | 一区二区综合 | 欧美黄色片一级片免费大屌大屌 | 国产女人高潮了视频 |