摘 要:針對民航出行軟件業(yè)務(wù),提出一套全新的自動化業(yè)務(wù)回歸測試方案。其中,最顯著的創(chuàng)新在于噪聲識別算法,該算法旨在處理和識別民航出行軟件系統(tǒng)中的復(fù)雜接口與數(shù)據(jù),從而提高diff功能在分析大量民航出行業(yè)務(wù)數(shù)據(jù)時的準(zhǔn)確性。此外,方案還包括微服務(wù)接口的泛化調(diào)用以及它在DevOps流程中的集成,不僅簡化了接口請求,而且首次將業(yè)務(wù)回歸測試納入DevOps上線流程,進一步實現(xiàn)了持續(xù)集成、部署和測試。更重要的是,方案還為民航出行軟件系統(tǒng)中的Dubbo接口提供了錄制和回放功能,并實現(xiàn)了請求的序列化和響應(yīng)的反序列化。綜合來看,該研究為民航出行業(yè)務(wù)軟件開發(fā)和維護提供了一種高效、準(zhǔn)確且集成度高的測試解決方案。
關(guān)鍵詞:噪聲識別算法;DevOps流程;自動化回歸測試;流量錄制;流量回放
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:2096-4706(2024)17-0123-06
0 引 言
隨著中國經(jīng)濟的持續(xù)增長和航空業(yè)的迅速擴張,民航出行已從奢侈品的地位逐漸轉(zhuǎn)變?yōu)楣姷娜粘3鲂蟹绞?。中航信移動科技作為一家在民航出行領(lǐng)域提供綜合服務(wù)的公司,這意味著支持此類出行的軟件系統(tǒng)必須能夠高效處理大量數(shù)據(jù),例如航班調(diào)度、乘客信息和票務(wù)數(shù)據(jù)。同時,確保系統(tǒng)的實時性、安全性和高度可用性也至關(guān)重要。業(yè)務(wù)回歸測試不僅僅是為了確保軟件質(zhì)量,更是為了滿足航空業(yè)務(wù)的綜合性測試需求,確保系統(tǒng)在高壓和復(fù)雜服務(wù)環(huán)境下的穩(wěn)定性,為用戶提供卓越的航空服務(wù)體驗[1-2]。
1 本研究定位與價值
在航旅縱橫應(yīng)用程序領(lǐng)域中,自動化測試面臨一系列獨特的挑戰(zhàn),其中包括處理實時數(shù)據(jù)、第三方集成,以及地理位置和移動性測試等方面的問題。系統(tǒng)與實時航班信息、酒店服務(wù)等第三方的緊密集成,極大地增加了測試的復(fù)雜性,因此需要借助模擬服務(wù)和虛擬化技術(shù)來進行全面的測試。航旅縱橫APP通常涉及用戶的地理位置和移動性,因此在自動化測試過程中,必須確保覆蓋各種地理位置和移動情況,以有效評估應(yīng)用程序的性能和穩(wěn)定性。這些挑戰(zhàn)性的測試需求使得在民航出行軟件領(lǐng)域開展自動化測試變得尤為重要。
近年來,已經(jīng)有一些工具和方案被提出來,試圖解決自動化回歸測試中的難題。其中,兩個顯著的例子為:
1)jvm-sandbox-repeater。這是阿里巴巴的開源解決方案,能夠支持多協(xié)議流量錄制。盡管它可以覆蓋多種通信協(xié)議并精確地錄制線上流量,但由于缺乏差異性(diff)分析功能,該工具在處理復(fù)雜回歸測試場景時可能會受到限制。
2)diffy。Twitter推出的開源項目,它主要聚焦于HTTP協(xié)議,特別強調(diào)其差異性分析和智能降噪能力。雖然它能夠為開發(fā)者提供清晰的反饋,但由于未包括流量錄制和回放功能,該工具在需要全方位測試的場景中可能顯得不夠完備。
考慮到上述工具的局限性,顯然,目前的技術(shù)解決方案在滿足民航出行軟件的綜合性測試需求方面仍有很大的提升空間。尤其是,在現(xiàn)代軟件開發(fā)的持續(xù)集成和部署(DevOps)背景下,需要一種更全面、適應(yīng)性強且可以輕松集成到DevOps流程中的回歸測試方案。因此,本研究的核心目標(biāo)和意義在于提供一種全面的、支持多協(xié)議的、結(jié)合了流量錄制回放及高效的差異性分析功能的自動化業(yè)務(wù)回歸測試解決方案。更重要的是,該解決方案不僅滿足了基本的業(yè)務(wù)需求,還具有與DevOps流程無縫集成的能力,使其成為質(zhì)量保障流程中的一個關(guān)鍵環(huán)節(jié)。
2 方案設(shè)計
在民航應(yīng)用軟件領(lǐng)域,本研究構(gòu)建了一個基于jvm-sandbox-repeater的方案,專為中航信移動科技的民航出行軟件線上流量的精準(zhǔn)錄制與回放而設(shè)計。當(dāng)用戶使用航旅縱橫應(yīng)用程序時,其請求首先經(jīng)過gateway網(wǎng)關(guān),隨后導(dǎo)入到內(nèi)部系統(tǒng)。為確保數(shù)據(jù)傳輸?shù)母咝耘c穩(wěn)定性,選擇了kafka作為關(guān)鍵數(shù)據(jù)通道,專門用于捕獲線上用戶請求數(shù)據(jù)。后續(xù),這些數(shù)據(jù)由flink進行精準(zhǔn)實時處理,并最終被安全地存儲到數(shù)據(jù)庫中。這些精確錄制的用戶請求數(shù)據(jù)為研究方法奠定了堅實的數(shù)據(jù)基石。
鑒于業(yè)務(wù)回歸測試的復(fù)雜性和關(guān)鍵性,本文設(shè)計一個全方位的策略框架,該框架綜合涵蓋配置管理、工具管理、流量錄制、流量回放、差異分析以及質(zhì)量卡點等多個環(huán)節(jié)。每個部分均旨在滿足特定的測試需求,并確保整個測試流程的穩(wěn)定性和高效性[3]。此外,為了提供用戶友好的操作界面,還開發(fā)了一個Web平臺,使用戶能夠?qū)崟r查看流量錄制信息、執(zhí)行流量回放、編輯配置文件和管理工具等復(fù)雜操作。詳細(xì)的方案架構(gòu)圖已在圖1中清晰展示。這一研究背景下的技術(shù)改進旨在提升民航出行軟件的質(zhì)量和穩(wěn)定性,以應(yīng)對其不斷擴大的用戶群體和復(fù)雜的業(yè)務(wù)需求。本研究旨在為民航出行軟件提供更全面、適應(yīng)性強、與DevOps流程無縫集成的自動化業(yè)務(wù)回歸測試解決方案。
2.1 配置管理
本研究實現(xiàn)了一套綜合的配置管理功能,涉及應(yīng)用配置、插件配置及配置推送三個核心領(lǐng)域??紤]到線上業(yè)務(wù)的多樣性和接口的多變性,應(yīng)用配置功能被設(shè)計以滿足對線上流量的精細(xì)篩選和管理需求。為降低用戶的使用門檻,提供了預(yù)設(shè)的應(yīng)用配置模板,以支撐大多數(shù)的業(yè)務(wù)場景。同時,允許用戶根據(jù)特定的工程和運行環(huán)境進行個性化調(diào)整。
插件配置環(huán)節(jié)主要針對http和Dubbo協(xié)議,為用戶提供了精準(zhǔn)定位至具體包、類、方法的能力,進一步實現(xiàn)流量的有針對性錄制。盡管默認(rèn)接口采樣率設(shè)為萬分之一,但實際操作中用戶可根據(jù)需求進行調(diào)整,如常規(guī)設(shè)定為十分之一,對于流量較小的接口,則可選擇全流量錄制。
在配置更新機制方面,為確保配置始終為最新狀態(tài),采納了兩種策略:主動推送配置文件至各節(jié)點,以及在repeater重啟時自動拉取中心的最新配置。此兩種策略保障了系統(tǒng)配置的實時性與韌性。
2.2 工具管理與監(jiān)控
本研究依賴于開源工具jvm-sandbox-repeater進行線上流量錄制,該工具采用字節(jié)碼增強技術(shù)和事件分發(fā)機制。其在目標(biāo)服務(wù)器上的安裝是錄制與回放的基礎(chǔ),結(jié)合值機選座服務(wù)的業(yè)務(wù)場景,以下是對工具依賴和集中管理平臺在實際應(yīng)用中的細(xì)化描述,原理如圖2所示。
集中管理平臺控制jvm-sandbox-repeater的所有操作,包括安裝、啟動、停止。此平臺也實現(xiàn)了工具的生命周期管理,如版本控制、配置更新及與其他組件的集成。心跳檢測機制對工具健康狀況進行評估,捕捉異常并實時觸發(fā)預(yù)警。平臺還集成了日志記錄和事件追蹤,確保對與工具相關(guān)的事件進行詳細(xì)記錄。
總之,此自研平臺為jvm-sandbox-repeater提供了全面的管理、監(jiān)控與優(yōu)化,確保其穩(wěn)定高效運行。
2.3 流量錄制
流量錄制在確保值機業(yè)務(wù)連續(xù)性、透明性與韌性中扮演關(guān)鍵角色。面對多元化民航出行線上服務(wù)環(huán)境,精確鑒別真實用戶流量與回放流量變得尤為重要[4]。
我們以民航出行的值機選座的應(yīng)用場景為例,采用了一種基于traceID生成策略的方法,為每個數(shù)據(jù)流分配獨特標(biāo)識?;胤帕髁烤S持原始traceID不變。新流量接入系統(tǒng)時,通過對比traceID與已錄制流量的數(shù)據(jù)庫,未記錄的即為真實用戶流量。
為了處理大規(guī)模的民航出行軟件線上值機選座的流量,選擇kafka進行流量捕獲。kafka作為高性能的分布式消息系統(tǒng),能實時處理大量數(shù)據(jù)。為深入處理和解析數(shù)據(jù),引入高吞吐量的flink流處理框架。數(shù)據(jù)經(jīng)過flink處理后,被持久化并存儲到數(shù)據(jù)庫,確保值機數(shù)據(jù)穩(wěn)定性和完整性,如圖3所示。
綜合應(yīng)用traceID生成策略、kafka及flink,構(gòu)建健壯、高效的流量錄制系統(tǒng),確保值機選座業(yè)務(wù)流的連貫性和穩(wěn)健性[5]。我們成功應(yīng)用這一流程來錄制和分析值機業(yè)務(wù)的線上流量,確保了系統(tǒng)在高負(fù)載和復(fù)雜服務(wù)環(huán)境下的穩(wěn)定性,同時也為后續(xù)的流量回放和差異性分析提供了可靠的數(shù)據(jù)基礎(chǔ)。
2.4 流量回放與差異分析
流量回放是本研究的核心功能,允許用戶模擬真實環(huán)境下的流量,以驗證系統(tǒng)的韌性和性能。此功能不止局限于單一接口的回放,還能執(zhí)行接口的批量回放。對于復(fù)雜的業(yè)務(wù)場景,考慮到可能存在的子調(diào)用或依賴,本研究支持在回放過程中進行Mock子調(diào)用,確?;胤诺牧髁颗c真實流量的相似性。為了滿足不同的測試場景和壓力測試的需求,還可以通過設(shè)置放大倍數(shù)來增加回放流量,從而模擬更高的系統(tǒng)負(fù)載[6-7]。
為了實現(xiàn)微服務(wù)接口的泛化調(diào)用,通過采用JSON作為統(tǒng)一的通信協(xié)議和數(shù)據(jù)格式,定義通用的數(shù)據(jù)結(jié)構(gòu)和字段,以確保不同的微服務(wù)能夠理解和處理相同的請求和響應(yīng)格式。JSON的靈活性和普遍性為微服務(wù)之間的通信提供了一種標(biāo)準(zhǔn)化的方式,確保了不同微服務(wù)之間的交互具有一致性。這種規(guī)范化提高了系統(tǒng)的可維護性和可擴展性,從而簡化了整個系統(tǒng)的交互過程。
在實際應(yīng)用中于值機選座服務(wù)為例。在回放流量時,我們能夠模擬用戶在真實環(huán)境中進行值機選座的場景,驗證系統(tǒng)在高負(fù)載和復(fù)雜業(yè)務(wù)條件下的性能表現(xiàn)。通過支持Mock子調(diào)用,我們可以處理值機選座服務(wù)可能涉及的依賴關(guān)系,確?;胤诺牧髁扛N合實際情況。此外,通過設(shè)置放大倍數(shù),我們可以模擬不同規(guī)模的用戶并行值機選座,從而進行系統(tǒng)在不同負(fù)載下的性能測試。
此外,除了流量的回放,本研究還提供了流量的差異化對比(diff)功能。這項功能可幫助用戶快速地比較回放流量和原始流量之間的差異,從而更容易地定位潛在的問題或異常。差異化對比功能在流量回放過程中發(fā)揮關(guān)鍵作用。整個流程從捕獲真實流量開始,經(jīng)過流量回放,最終到對比差異的步驟,為用戶提供了清晰而詳細(xì)的流程圖如圖4所示,這使得用戶能夠更好地理解和利用這些功能。
在捕獲真實流量階段,系統(tǒng)準(zhǔn)確記錄了用戶在值機選座服務(wù)中的各項操作,包括座位選擇、航班信息查詢等。這形成了原始流量,為后續(xù)的流量回放提供了基礎(chǔ)數(shù)據(jù)。在流量回放階段,系統(tǒng)模擬用戶對值機選座服務(wù)的再次操作,并生成回放流量。通過在這兩個階段的精準(zhǔn)記錄,我們確保了回放流量與真實流量的一致性。
差異化對比功能通過比較原始流量和回放流量的關(guān)鍵指標(biāo),如響應(yīng)時間、錯誤率等,快速揭示了系統(tǒng)在不同階段的性能差異。這使得用戶能夠更迅速、精準(zhǔn)地定位潛在問題,為系統(tǒng)的優(yōu)化和改進提供了有力支持。
自動化回歸測試致力于確保在軟件的迭代中,新的更改沒有破壞現(xiàn)有的功能。該過程涉及將不同迭代中的相同接口響應(yīng)數(shù)據(jù)進行對比。當(dāng)響應(yīng)存在差異時,測試用例可能被視為失敗。但這種方法在處理動態(tài)內(nèi)容時可能會出現(xiàn)問題,如時間戳、隨機生成的數(shù)字等,這些都可能導(dǎo)致不必要的“失敗”[8-9]。
為解決此問題,本研究引入了流量預(yù)處理策略。這涉及對捕獲的流量數(shù)據(jù)進行凈化,去除那些可能引起不必要差異的動態(tài)數(shù)據(jù),如時間戳或任何隨機生成的內(nèi)容。此外,預(yù)處理還可以包括去除冗余信息,從而進一步降低噪聲。
為了更好地適應(yīng)值機選座業(yè)務(wù)的特定情境,我們將噪聲識別算法引入該業(yè)務(wù)流程,以提高自動化回歸測試的精度和可靠性。我們提出的噪聲識別算法如圖5所示。
在值機選座服務(wù)的自動化回歸測試中,我們使用了噪聲識別算法來判斷響應(yīng)數(shù)據(jù)中的差異是否真正表示一個問題。具體而言,我們對特定接口進行兩次相同的請求,一次在生產(chǎn)環(huán)境中,一次在灰度環(huán)境中。通過比較這兩次請求的響應(yīng),我們記錄了兩者之間的不同點數(shù)量,分別表示為c1和c2。
首先,我們在生產(chǎn)環(huán)境中模擬用戶進行值機選座操作,記錄響應(yīng)的不同點數(shù)量為c1。接著,同樣的請求在灰度環(huán)境中執(zhí)行,對比兩次響應(yīng)的不同,得到不同點數(shù)量c2。
這種對比提供了一個基準(zhǔn),幫助我們確定響應(yīng)中的差異是否真的有意義。如果c2超過c1,說明待上線的值機選座接口處理方式與原接口存在差異,可能表示一個真正的問題。反之,如果c2小于或等于c1,這意味著觀察到的差異可以被視為背景噪聲,測試應(yīng)被視為通過。
通過將噪聲識別算法融入值機選座業(yè)務(wù),我們不僅能夠保證自動化回歸測試的準(zhǔn)確性,還能更有效地識別和處理那些可能對測試結(jié)果產(chǎn)生干擾的動態(tài)數(shù)據(jù)。這一流程不僅提高了測試的魯棒性,也保證了值機選座服務(wù)在不同環(huán)境下的一致性和可靠性。而且還可以更有效地識別和處理那些可能對測試結(jié)果產(chǎn)生干擾的動態(tài)數(shù)據(jù)[10-12]。
2.5 質(zhì)量卡點
本研究在值機選座應(yīng)用場景中成功將質(zhì)量卡點集成到DevOps流程中,將其視為上線質(zhì)量的核心關(guān)卡。當(dāng)工程在DevOps平臺上提交值機選座服務(wù)的上線請求,并成功在灰度環(huán)境中部署后,研發(fā)效能系統(tǒng)會自動啟動回歸測試任務(wù)。自動化回歸測試有助于在應(yīng)用程序中檢測潛在的問題和缺陷,確保新的代碼更改不會破壞現(xiàn)有功能。為實時展示測試進度,我們采用WebSocket技術(shù)[13-14]。這使得團隊能夠即時了解值機選座服務(wù)的回歸測試執(zhí)行情況,以及是否存在可能影響上線質(zhì)量的問題。團隊成員可以通過WebSocket技術(shù)實時監(jiān)測測試進度,確保測試流程的高效執(zhí)行。
測試任務(wù)完成后,如果失敗的用例數(shù)超過預(yù)定的閾值,系統(tǒng)會阻止工程繼續(xù)其他操作。此外,系統(tǒng)還會自動產(chǎn)生詳盡的測試報告,其中包括總用例數(shù)、成功與失敗的用例數(shù),以及覆蓋的值機選座接口數(shù)量等關(guān)鍵統(tǒng)計數(shù)據(jù)。這個報告為團隊提供了對值機選座服務(wù)上線質(zhì)量的全面了解。通過點擊特定用例,團隊成員可以查看詳細(xì)的差異結(jié)果,幫助更深入地了解問題并進行定位[15-17]。整體流程如圖6所示。
此流程確保在上線前能對代碼的質(zhì)量進行全面評估,大大降低因缺陷導(dǎo)致的生產(chǎn)風(fēng)險。
3 應(yīng)用實例
航旅縱橫的配置管理頁面是自動化值機選座業(yè)務(wù)回歸測試的啟動點,為測試人員提供了強大的工具,以定制化配置值機選座服務(wù)的運行環(huán)境。測試人員能夠詳細(xì)定義應(yīng)用的各個方面,包括應(yīng)用名稱、運行環(huán)境和服務(wù)配置信息。這種細(xì)致的配置不僅為測試提供了高度靈活性,還支持多環(huán)境的隔離,確保測試過程中的可控性。配置管理頁面的設(shè)計追求用戶友好性,使得測試人員能夠輕松調(diào)整配置,以適應(yīng)不同的測試場景和需求,如圖7所示。
在流量列表頁面,系統(tǒng)以清晰、結(jié)構(gòu)化的方式展示了通過在線錄制捕獲的關(guān)鍵值機選座服務(wù)流量數(shù)據(jù)。用戶可以根據(jù)流量的ID、應(yīng)用名、流量入口、TraceID、環(huán)境和機器等信息進行篩選和查看。關(guān)鍵在于,用戶能夠在流量列表中配置錄制條件,系統(tǒng)在錄制過程中對請求、響應(yīng)、子調(diào)用和子響應(yīng)等關(guān)鍵信息進行精準(zhǔn)的采樣和過濾。這種零侵入性的錄制方式確保了錄制信息的準(zhǔn)確性和可靠性,為后續(xù)的回放提供了高質(zhì)量的數(shù)據(jù),如圖8所示。
回放列表頁面在航旅縱橫自動化業(yè)務(wù)回歸測試框架中扮演著關(guān)鍵的角色,是整個測試流程的核心。通過該頁面,系統(tǒng)能夠還原錄制的數(shù)據(jù),并按照錄制記錄執(zhí)行相應(yīng)的回放任務(wù)。用戶可以清晰地查看回放結(jié)果,通過repeatId和錄制的TraceID進行對比,以獲取詳盡的回放信息。在這一過程中,回放的Mock動作執(zhí)行確保了回放請求的處理流程能夠被準(zhǔn)確地跟蹤和記錄,從而提供了全面的測試覆蓋。
整個流程的實時通知機制采用WebSocket技術(shù),成功集成到DevOps流程中。這意味著團隊成員可以實時了解測試進度,確保測試流程的高效執(zhí)行。這種集成為上線前全面評估代碼質(zhì)量和功能提供了強有力的保障。通過回放列表頁面,團隊能夠直觀地檢視回放結(jié)果,快速定位潛在問題,并及時采取措施進行修復(fù)和優(yōu)化。
結(jié)合上述的噪聲識別算法,回放列表頁面不僅提供了回放結(jié)果的直觀展示,還能通過噪聲識別算法幫助用戶更精確地判斷回放中的差異是否真正表示一個問題。通過在值機選座服務(wù)的自動化回歸測試中引入噪聲識別算法,系統(tǒng)可以對比生產(chǎn)環(huán)境和灰度環(huán)境中相同接口的響應(yīng)數(shù)據(jù),通過差異點的數(shù)量判斷是否存在真正的問題。這一算法有效提高了測試的準(zhǔn)確性和可靠性,確保了測試結(jié)果的真實性,為系統(tǒng)的優(yōu)化和改進提供了有力支持,回放結(jié)果如圖9所示。
這一航旅縱橫值機選座業(yè)務(wù)的應(yīng)用實例展示了自動化業(yè)務(wù)回歸測試框架在復(fù)雜業(yè)務(wù)場景中的可靠性、可用性和高度定制化的特性。從測試的角度來看,該框架不僅能夠覆蓋多個測試階段,還能夠提供詳盡的測試結(jié)果,使團隊能夠充分了解系統(tǒng)在不同環(huán)境下的性能和穩(wěn)定性。這對于確保軟件在持續(xù)集成和部署環(huán)境中的質(zhì)量至關(guān)重要,為航旅縱橫的值機選座業(yè)務(wù)提供了高效而可靠的測試保障[17]。
4 結(jié) 論
經(jīng)過對本研究進行深入分析,我們得出以下結(jié)論:
1)微服務(wù)接口的泛化調(diào)用優(yōu)勢。本研究提供的微服務(wù)接口的泛化調(diào)用方式顯著簡化了接口請求,使得接口調(diào)用更加高效和靈活。這種方法解決了傳統(tǒng)接口請求的復(fù)雜性,為復(fù)雜的微服務(wù)環(huán)境下的接口測試提供了新的解決方案。在值機選座應(yīng)用場景中,這一泛化調(diào)用方式為值機選座服務(wù)的接口測試提供了新的途徑,使得測試過程更加順暢和可維護。
2)噪聲識別算法的突破性。傳統(tǒng)的diff功能在處理動態(tài)信息時常常遭遇困難,而本研究提出的噪聲識別算法能夠顯著提高diff的準(zhǔn)確性,減少誤報和漏報,從而提高自動化測試的效率和準(zhǔn)確性。在值機選座的實際業(yè)務(wù)中,噪聲識別算法的應(yīng)用有助于更精準(zhǔn)地判斷接口響應(yīng)中的差異,提高了測試結(jié)果的可信度。
3)DevOps中業(yè)務(wù)回歸測試的創(chuàng)新。本研究首次將業(yè)務(wù)回歸測試集成至DevOps上線流程中,彰顯了持續(xù)集成、持續(xù)部署、持續(xù)測試的理念。這不僅提高了整個上線流程的效率,更重要的是,確保了上線工程的高質(zhì)量和穩(wěn)定性,降低了系統(tǒng)出錯的風(fēng)險。在值機選座服務(wù)的場景中,這種創(chuàng)新性的集成方式為值機選座的上線提供了全面而可靠的質(zhì)量控制。
4)完整的自動化業(yè)務(wù)回歸測試解決方案。與現(xiàn)有技術(shù)相比,本研究同時融合了流量錄制回放功能與diff功能,成為一套全面的解決方案。這為業(yè)務(wù)回歸測試帶來了前所未有的便捷和完整性。在值機選座服務(wù)的應(yīng)用場景下,這一綜合解決方案為值機選座的自動化業(yè)務(wù)回歸測試提供了全面支持,確保了服務(wù)的穩(wěn)健性和質(zhì)量。
5)Dubbo接口的特色支持。采用Dubbo泛化調(diào)用方式,本方案成功支持了Dubbo接口的錄制回放功能,實現(xiàn)了請求序列化及響應(yīng)反序列化的功能,為Dubbo接口測試提供了新的可能性。在值機選座服務(wù)的實際應(yīng)用中,Dubbo接口的特色支持確保了值機選座服務(wù)在復(fù)雜的微服務(wù)架構(gòu)下的穩(wěn)定性和可靠性。
總體來說,本研究針對中航信移動科技的航旅縱橫APP軟件開發(fā)過程中的關(guān)鍵問題提供了創(chuàng)新且實用的解決方案。通過集成至DevOps流程,它更進一步推動了持續(xù)集成與持續(xù)交付的理念,為現(xiàn)代軟件開發(fā)帶來了更高效、高質(zhì)量的保障。在值機選座服務(wù)的具體應(yīng)用中,這些解決方案為航空業(yè)務(wù)的順利上線和穩(wěn)定運行提供了有力的支持。
參考文獻:
[1] 少民.軟件測試面臨的挑戰(zhàn)與發(fā)展趨勢 [J].測控技術(shù),2020,39(1):1-4.
[2] 譚鳳,寧華,唐滔,等.軟件測試技術(shù):第2版 [M].北京:清華大學(xué)出版社,2020.
[3] 杜慶峰,馮國堯,錢浩然.回歸測試路徑優(yōu)先級模型 [J].同濟大學(xué)學(xué)報:自然科學(xué)版,2016,44(12):1943-1948.
[4] 楊玉環(huán),圣文順,劉進芬.基于在線流量的自動回歸測試平臺 [J].電子設(shè)計工程,2022,30(14):128-132.
[5] 郭馬濤.基于微服務(wù)的流量回放自動化測試框架設(shè)計與實現(xiàn) [D].武漢:華中科技大學(xué),2021.
[6] 孟燕.自動化測試技術(shù)中Mock框架的建設(shè)與應(yīng)用 [J].武漢理工大學(xué)學(xué)報:信息與管理工程版,2017(3):364-367.
[7] 潘詩瑤,黃建明.Web應(yīng)用系統(tǒng)中的MOCK測試技術(shù) [J].軟件,2016,37(12):214-218.
[8] 王津,左春,張正.基于樣本程序的自動化測試工具 [J].計算機工程,2020,46(3):198-205+213.
[9] SAHIN O,AKAY B. A Discrete Dynamic Artificial Bee Colony with Hyper-Scout for RESTful Web Service API Test Suite Generation [J/OL].Applied Soft Computing,2021,104(4):107246[2023-12-10].https://doi.org/10.1016/j.asoc.2021.107246.
[10] 張策,呂為工,邱忠銀,等.不完美排錯下測試覆蓋相關(guān)的軟件可靠性模型 [J].湖南大學(xué)學(xué)報:自然科學(xué)版,2021,48(4):26-35.
[11] 孫立哲.輕量級接口自動化測試框架設(shè)計與實踐 [J].計算機應(yīng)用與軟件,2020,37(1):27-30+36.
[12] 丁建立,陳盼,馬勇.基于泛化FPE加密的民航旅客信息動態(tài)脫敏方法研究 [J].信息網(wǎng)絡(luò)安全,2021,21(2):45-52.
[13] 蔣勇.基于微服務(wù)架構(gòu)的基礎(chǔ)設(shè)施設(shè)計 [J].軟件,2016,37(5):93-97.
[14] 鄭彬彬.基于微服務(wù)的OJ系統(tǒng)重構(gòu)與優(yōu)化 [D].上海:東華大學(xué),2017.
[15] 向彬彬,馬明星,童茂林,等.基于微服務(wù)架構(gòu)的分布式測距系統(tǒng)的研究與設(shè)計 [J].計算機應(yīng)用與軟件,2018,35(5):89-94.
[16] 吳文峻,于鑫,蒲彥均,等.微服務(wù)時代的復(fù)雜服務(wù)軟件開發(fā) [J].計算機科學(xué),2020,47(12):11-17.
[17] 戴啟銘,毛潤豐,黃璜,等.DevSecOps:DevOps下實現(xiàn)持續(xù)安全的實踐探索 [J].軟件學(xué)報,2021,32(10):3014-3035.
作者簡介:高棟(1982—),男,漢族,浙江紹興人,高級工程師,碩士研究生,研究方向:系統(tǒng)工程、質(zhì)量保障;佟業(yè)新(1980—),男,漢族,山東新泰人,高級工程師,碩士,研究方向:分布式計算、質(zhì)量保障;張曉明(1980—),男,漢族,河北衡水人,工程師,碩士研究生,研究方向:研發(fā)效能、質(zhì)量保障;管宏禮(1996—),男,漢族,山東德州人,初級工程師,碩士研究生,研究方向:質(zhì)量保障;張夢云(1994—),女,漢族,北京人,工程師,本科,研究方向:研發(fā)效能、質(zhì)量保障。
DOI:10.19850/j.cnki.2096-4706.2024.17.024
收稿日期:2024-01-16
Automated Testing Method and Device Based on Online Traffic Playback
GAO Dong, TONG Yexin, ZHANG Xiaoming, GUAN Hongli, ZHANG Mengyun
m4oc3IVLoB1Aj/vuEjHjRw==(Travelsky Mobile Technology Limited, Beijing 100041, China)
Abstract: In the business context of civil aviation travel software, this paper proposes a novel automated business regression testing solution. The most notable innovation lies in the noise recognition algorithm, and it is designed to handle and identify intricate interfaces and data within the civil aviation travel software system, so as to improve the accuracy of the diff function. In addition, the solution also includes generalized calling of microservice interfaces and their integration in the DevOps process, which not only simplifies interface requests, but also for the first time incorporates business regression testing into the DevOps deployment process, further achieving continuous integration, deployment, and testing. More importantly, the solution also provides recording and playback functions for the Dubbo interface in the civil aviation travel software system, and implements request serialization and response deserialization. To sum up, this study provides an efficient, accurate, and highly integrated testing solution for the development and maintenance of civil aviation travel business software.
Keywords: noise identification algorithm; DevOps process; automated regression testing; traffic recording; traffic replay