<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實現(xiàn)多平臺自動化測試

          共 3948字,需瀏覽 8分鐘

           ·

          2021-10-26 01:32


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



          01
          設(shè)計目標


          • 平臺通用且支持不同類型的自動化測試

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


          • 平臺支持自動化測試全流程

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


          • 平臺具有良好的擴展性、易維護性

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



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


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


          圖1?平臺架構(gòu)設(shè)計


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


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


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


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



          03
          平臺實現(xiàn)


          在自動化框架選型上,我們選擇Robot Framework(以下簡稱“RF”)作為自動化測試平臺的核心底層框架Jenkins作為持續(xù)集成與任務調(diào)度平臺,同時選擇AppiumLibrary、Selenium2Library、RequestsLibrary、AutoItLibrary等作為擴展測試庫,以應對不同的測試需求。



          (1)RF框架

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


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


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


          (2)AppiumLibrary

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


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

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


          (3)Selenium2Library

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


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

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


          (4)RequestsLibrary

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


          (5)AutoIt桌面應用測試

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

          圖5?Au3Info識別GUI對象示例


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

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


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

          圖6?Jenkins+RF+AppiumLibrary自動化測試示例



          04
          平臺的創(chuàng)新點


          1、平臺架構(gòu)靈活、適應場景廣,滿足多種不同類型自動化測試

          平臺基于輕量的RF開源框架,具有良好的擴展性,通過集成不同的開源擴展測試庫可滿足不同類型、不同平臺和應用的測試:


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

          • RF+Selenium2Library則可實現(xiàn)Chrome、IE、Firefox等多瀏覽器下的Web應用程序自動化測試;

          • RF+AutoItLibrary可實現(xiàn)一般Win32桌面應用程序自動化測試;

          • RF+RequestsLibrary可實現(xiàn)接口自動化測試,等等


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

          2、平臺實現(xiàn)端到端自動化測試管理,一站式圖形展示信息

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

          圖7?平臺測試管理


          圖8?測試日志及報告


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

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


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


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


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


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

            圖9?分層自動化測試



          05
          平臺的實施效果


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


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

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


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



          06
          總結(jié)


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


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


          推薦書

          推薦資訊除了紙質(zhì)圖書外,電子版也已在京東、當當網(wǎng)上線了。


          (點擊直達小程序)

          推薦閱讀:

          1. 重磅消息 | 2021年最新全棧測試開發(fā)技能實戰(zhàn)指南(第2期)

          2. 史上最全測試開發(fā)工具推薦(含自動化、APP性能、穩(wěn)定性、抓包神器)

          3. 測試開發(fā):聊一聊自動化測試框架,值得收藏!

          4. 嘆為觀止!這篇文章把服務端接口測試徹底講明白了

          5. 接口測試常用工具及測試方法(新手篇)

          END

          所有原創(chuàng)文章
          第一時間發(fā)布至此公眾號「測試開發(fā)技術(shù)」

          長按二維碼/微信掃碼? 添加作者


          閱讀原文

          瀏覽 72
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  麻豆久久久电影网 | 影音先锋 一区二区 | 久久人人爽人人爽人人片 | 国产毛片网站啊啊啊 | 日韩黄页网站大全免费在线观看 |