[發(fā)明專利]一種測試方法和裝置在審
| 申請?zhí)枺?/td> | 202110609691.5 | 申請日: | 2021-06-01 |
| 公開(公告)號: | CN113360377A | 公開(公告)日: | 2021-09-07 |
| 發(fā)明(設(shè)計)人: | 程嘯 | 申請(專利權(quán))人: | 北京京東振世信息技術(shù)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;H04L29/08 |
| 代理公司: | 中原信達知識產(chǎn)權(quán)代理有限責(zé)任公司 11219 | 代理人: | 李陽;宗磊 |
| 地址: | 100086 *** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 測試 方法 裝置 | ||
本發(fā)明公開了一種測試方法和裝置,涉及計算機技術(shù)領(lǐng)域。該方法的一具體實施方式包括:基于ByteBuddy工具包,獲得遠程服務(wù)依賴的配置描述符;將配置描述符發(fā)送至元數(shù)據(jù)配置中心,以在元數(shù)據(jù)配置中心創(chuàng)建遠程服務(wù)的客戶端;接收注冊成功信息,生成遠程服務(wù)的代理服務(wù);攔截調(diào)用遠程服務(wù)的測試方法,獲取測試方法的入?yún)?shù)據(jù),通過遠程服務(wù)的代理服務(wù)將入?yún)?shù)據(jù)發(fā)送至遠程服務(wù)的客戶端,通過遠程服務(wù)的客戶端泛化調(diào)用遠程服務(wù),以對遠程服務(wù)進行測試。該實施方式能夠?qū)崿F(xiàn)在用戶無感知的情況下攔截并注入方法依賴,通過無侵入的方式提供Hook邏輯代碼插樁,通過將配置信息預(yù)先寫入元數(shù)據(jù)配置中心,實現(xiàn)配置自動注冊和復(fù)用,提高研發(fā)人員測試效率。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種測試方法和裝置。
背景技術(shù)
在大型項目的研發(fā)過程中,如研發(fā)人員需要進行業(yè)務(wù)流程單元調(diào)試,需要將項目部署到測試服務(wù)器后,本地初始化單元測試環(huán)境,調(diào)用測試服務(wù)器的服務(wù)接口驗證邏輯。這種單元測試部署流程比較復(fù)雜,服務(wù)依賴繁多無法快速注入,同時大型項目啟動緩慢,為跑通一個單元測試往往需要編寫復(fù)雜的服務(wù)注入配置,而這些復(fù)雜的服務(wù)注入配置的實例化過程會增加項目啟動時間,影響單元測試效率和項目交付速度。
另外,在測試過程中,對于需要Hook數(shù)據(jù)的場景,需要采用硬編碼侵入的方式在測試邏輯中補充數(shù)據(jù)和依賴,業(yè)務(wù)流程和測試依賴相互影響。在測試完成后,針對本次測試使用的元數(shù)據(jù)配置被丟棄,多個系統(tǒng)、多個應(yīng)用之間的接口有相互依賴關(guān)系變動頻繁,導(dǎo)致迭代更新時需重新確認可用性和準(zhǔn)確性,需要耗費大量維護時間。其中,Hook又叫做鉤子函數(shù),在系統(tǒng)沒有調(diào)用該函數(shù)之前,鉤子程序就先捕獲該消息,鉤子函數(shù)先得到控制權(quán),這時鉤子函數(shù)既可以加工處理(改變)該函數(shù)的執(zhí)行行為,還可以強制結(jié)束消息的傳遞。簡單來說,就是把系統(tǒng)的程序拉出來變成我們自己執(zhí)行代碼片段。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供一種測試方法和裝置,能夠通過ByteBuddy工具包,在測試程序啟動前,解析代碼中的遠程服務(wù)依賴,訪問遠程元數(shù)據(jù)配置中心獲得數(shù)據(jù),根據(jù)配置數(shù)據(jù)動態(tài)生成代理對象,并注入測試依賴,能夠?qū)崿F(xiàn)在用戶無感知的情況下攔截并注入方法依賴,通過無侵入的方式提供Hook邏輯代碼插樁;通過泛化調(diào)用的方式和遠程服務(wù)進行交互,屏蔽服務(wù)間依賴和方法參數(shù)差異,在調(diào)試過程中獲取遠程數(shù)據(jù),調(diào)用者和提供者之間增加元數(shù)據(jù)配置記錄服務(wù),實現(xiàn)配置自動注冊和復(fù)用,提高研發(fā)人員測試效率。
為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,提供了一種測試方法,包括:
基于ByteBuddy工具包,獲得遠程服務(wù)依賴的配置描述符;
將所述配置描述符發(fā)送至元數(shù)據(jù)配置中心,以在所述元數(shù)據(jù)配置中心創(chuàng)建所述遠程服務(wù)的客戶端;
接收注冊成功信息,生成所述遠程服務(wù)的代理服務(wù);其中,所述注冊成功消息是所述元數(shù)據(jù)配置中心在創(chuàng)建所述遠程服務(wù)的客戶端之后生成的;
攔截調(diào)用所述遠程服務(wù)的測試方法,獲取所述測試方法的入?yún)?shù)據(jù),通過所述遠程服務(wù)的代理服務(wù)將所述入?yún)?shù)據(jù)發(fā)送至所述遠程服務(wù)的客戶端,通過所述遠程服務(wù)的客戶端泛化調(diào)用所述遠程服務(wù),以對所述遠程服務(wù)進行測試。
可選地,基于ByteBuddy工具包,獲得遠程服務(wù)依賴的配置描述符包括:
基于ByteBuddy工具包,將注冊服務(wù)邏輯代碼插樁到測試實例的邏輯代碼中;
通過所述注冊服務(wù)邏輯代碼獲取所述測試實例的類文件上的注解信息,反射所述注解信息,獲得遠程服務(wù)依賴的配置描述符;
將所述配置描述符發(fā)送至元數(shù)據(jù)配置中心包括:通過所述注冊服務(wù)邏輯代碼將所述配置描述符發(fā)送至元數(shù)據(jù)配置中心。
可選地,在基于ByteBuddy工具包,將注冊服務(wù)邏輯代碼插樁到測試實例的邏輯代碼時,所述方法還包括:基于ByteBuddy工具包,將注入服務(wù)邏輯代碼插樁到測試實例的邏輯代碼中;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京京東振世信息技術(shù)有限公司,未經(jīng)北京京東振世信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110609691.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





