国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法及裝置的制造方法

      文檔序號:8365505閱讀:220來源:國知局
      可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法及裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計算機(jī)技術(shù),尤其涉及一種可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法及裝置。
      【背景技術(shù)】
      [0002]Protobuf即Google Proto Buffers,是由google開發(fā)并開源的一種數(shù)據(jù)交互格式,可用于結(jié)構(gòu)化數(shù)據(jù)串行化,按照其定義的接口語言對消息結(jié)構(gòu)定義,利用其提供的編譯器protoc生成對消息結(jié)構(gòu)進(jìn)行訪問的接口代碼。
      [0003]如圖1所示,圖1是現(xiàn)有的打樁測試模型一實(shí)施例功能模塊示意圖;圖1所示的“驅(qū)動模塊+被測模塊+樁服務(wù)”是目前比較成熟的基于Protobuf的服務(wù)器模塊測試模式之一,驅(qū)動模塊發(fā)送請求驅(qū)動被測模塊和后端交互,樁服務(wù)模擬真實(shí)后端服務(wù)并返回響應(yīng)。在具體的測試場景中,通常需要構(gòu)建樁服務(wù)以模擬后端依賴模塊進(jìn)行測試?;赑rotobuf,利用現(xiàn)有方式創(chuàng)建的樁服務(wù)中,為了適用不同的被測系統(tǒng),每個樁服務(wù)對每一種請求都要寫一套請求解析、響應(yīng)封裝的方法,實(shí)現(xiàn)過程十分繁瑣,且在對象的響應(yīng)字段較多時,需要編寫大量重復(fù)的代碼,消息對象的請求和響應(yīng)的邏輯關(guān)系并不突出;這是由于現(xiàn)有技術(shù)通常將消息對象的請求和響應(yīng)的關(guān)系靜態(tài)地寫在代碼中,不容易擴(kuò)展。

      【發(fā)明內(nèi)容】

      [0004]鑒于此,有必要提供一種可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法及裝置,以解決將樁服務(wù)的消息對象的請求和響應(yīng)的關(guān)系靜態(tài)地寫在代碼中的問題。
      [0005]本發(fā)明實(shí)施例公開了一種可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法,包括以下步驟:
      [0006]從協(xié)議定義文件中獲取請求消息名稱和與所述請求消息名稱對應(yīng)的響應(yīng)消息名稱的映射關(guān)系;
      [0007]接收到測試請求后,得到該測試請求對應(yīng)的請求消息名稱,按照獲取的所述映射關(guān)系,查找與該請求消息名稱對應(yīng)的響應(yīng)消息名稱;
      [0008]根據(jù)獲取的響應(yīng)消息名稱,動態(tài)生成所述響應(yīng)消息名稱對應(yīng)的響應(yīng)消息對象;
      [0009]根據(jù)動態(tài)生成的所述響應(yīng)消息對象,按照預(yù)設(shè)的規(guī)則配置文件,動態(tài)設(shè)置所述響應(yīng)消息對象對應(yīng)的響應(yīng)字段值。
      [0010]本發(fā)明實(shí)施例還公開一種可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)裝置,包括:
      [0011]參數(shù)獲取模塊,用于從協(xié)議定義文件中獲取請求消息名稱和與所述請求消息名稱對應(yīng)的響應(yīng)消息名稱的映射關(guān)系;
      [0012]響應(yīng)生成模塊,用于接收到測試請求后,得到該測試請求對應(yīng)的請求消息名稱,按照獲取的所述映射關(guān)系,查找與該請求消息名稱對應(yīng)的響應(yīng)消息名稱;根據(jù)獲取的響應(yīng)消息名稱,動態(tài)生成所述響應(yīng)消息名稱對應(yīng)的響應(yīng)消息對象;
      [0013]第一設(shè)置模塊,用于根據(jù)動態(tài)生成的所述響應(yīng)消息對象,按照預(yù)設(shè)的規(guī)則配置文件,動態(tài)設(shè)置所述響應(yīng)消息對象對應(yīng)的響應(yīng)字段值。
      [0014]本發(fā)明實(shí)施例從協(xié)議定義文件中獲取請求消息名稱和與所述請求消息名稱對應(yīng)的響應(yīng)消息名稱的映射關(guān)系;接收到測試請求后,得到該測試請求對應(yīng)的請求消息名稱,按照獲取的所述映射關(guān)系,查找與該請求消息名稱對應(yīng)的響應(yīng)消息名稱;根據(jù)獲取的響應(yīng)消息名稱,動態(tài)生成所述響應(yīng)消息名稱對應(yīng)的響應(yīng)消息對象;根據(jù)動態(tài)生成的所述響應(yīng)消息對象,按照預(yù)設(shè)的規(guī)則配置文件,動態(tài)設(shè)置所述響應(yīng)消息對象對應(yīng)的響應(yīng)字段值;相較于現(xiàn)有技術(shù)中,將消息對象的請求和響應(yīng)的關(guān)系靜態(tài)地寫在代碼中的方法,本發(fā)明實(shí)施例具有通過定義規(guī)則配置文件自動生成定制的樁服務(wù),無需編寫與條件邏輯無關(guān)代碼,極大地減小了構(gòu)建樁服務(wù)的開發(fā)的工作量。
      【附圖說明】
      [0015]圖1是現(xiàn)有的打樁測試模型一實(shí)施例功能模塊示意圖;
      [0016]圖2是本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法第一實(shí)施例流程示意圖;
      [0017]圖3是本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法第二實(shí)施例流程示意圖;
      [0018]圖4是本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法第三實(shí)施例流程示意圖;
      [0019]圖5是本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)裝置第一實(shí)施例功能模塊示意圖;
      [0020]圖6是本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)裝置第二實(shí)施例功能模塊示意圖;
      [0021]圖7是本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)裝置第三實(shí)施例功能模塊示意圖。
      [0022]本發(fā)明實(shí)施例目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
      【具體實(shí)施方式】
      [0023]以下結(jié)合說明書附圖及具體實(shí)施例進(jìn)一步說明本發(fā)明的技術(shù)方案。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明下述的【具體實(shí)施方式】中,僅以Protobuf為例來描述本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法及裝置的實(shí)施過程;當(dāng)然,其他序列化協(xié)議也可以按照本發(fā)明實(shí)施例的思想來執(zhí)行對應(yīng)操作,在此不再
      窮舉和贅述。
      [0024]圖2是本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法第一實(shí)施例流程示意圖;如圖2所示,本發(fā)明可定制響應(yīng)的樁服務(wù)實(shí)現(xiàn)方法包括以下步驟:
      [0025]步驟S01、從協(xié)議定義文件中獲取請求消息名稱和與所述請求消息名稱對應(yīng)的響應(yīng)消息名稱的映射關(guān)系;
      [0026]服務(wù)器從協(xié)議定義文件如proto定義文件中獲取請求消息名稱和與所述請求消息名稱對應(yīng)的響應(yīng)消息名稱的映射關(guān)系,其獲取方式包括:
      [0027]在協(xié)議定義文件如proto定義文件中定義服務(wù)接口,基于定義的服務(wù)接口增加類服務(wù)編譯選項(xiàng),得到請求消息名稱和與所述請求消息名稱對應(yīng)的響應(yīng)消息名稱的映射關(guān)系;在具體的應(yīng)用場景中,比如利用protoc編譯生成的python代碼提供的反射機(jī)制,得到請求消息名稱;并利用python代碼,在proto中定義service接口,增加py_generic_services=true編譯選項(xiàng)后生成的代碼中便帶有請求消息名稱和響應(yīng)消息名稱的對應(yīng)關(guān)系,即上述的請求消息名稱和與所述請求消息名稱對應(yīng)的響應(yīng)消息名稱的映射關(guān)系;
      [0028]或者,直接對proto定義文件進(jìn)行解析,從對proto定義文件的文本分析結(jié)果中,獲取請求消息名稱和與所述請求消息名稱對應(yīng)的響應(yīng)消息名稱的映射關(guān)系。
      [0029]步驟S02、接收到測試請求后,得到該測試請求對應(yīng)的請求消息名稱,按照獲取的所述映射關(guān)系,查找與該請求消息名稱對應(yīng)的響應(yīng)消息名稱;
      [0030]步驟S03、根據(jù)獲取的響應(yīng)消息名稱,動態(tài)生成所述響應(yīng)消息名稱對應(yīng)的響應(yīng)消息對象;
      [0031]接收到測試請求后,得到該測試請求對應(yīng)的請求消息名稱;利用序列化協(xié)議如protobuf提供的自省特性,可以根據(jù)請求消息名稱動態(tài)創(chuàng)建對應(yīng)的消息對象;比如,根據(jù)請求消息名稱和請求消息體,獲得請求消息對應(yīng)的消息對象:
      [0032]msg=google.protobuf.reflect1n.ParseMessage (pb2.DESCRIPTOR.message_types_by_name [消息名稱],消息體)。
      [0033]根據(jù)獲取的請求消息名稱及請求消息名稱與響應(yīng)消息名稱的映射關(guān)系,查找與該請求消息名稱對應(yīng)的響應(yīng)消息名稱,并獲取與該請求消息名稱對應(yīng)的響應(yīng)消息名稱。
      [0034]根據(jù)獲取的響應(yīng)消息名稱,動態(tài)生成該響應(yīng)消息名稱對應(yīng)的響應(yīng)消息對象:
      [0035]desc=pb2.DESCRIPTOR.message_types_by_name[self, respname]
      [0036]class RespClass(google, protobuf.message.Message):
      [0037]__metaclass____= g ο o g I e.protobuf.reflect1n.GeneratedProtocoIMessageType
      [0038]DESCRIPT0R=desc
      [0039]msg=RespClass ()。
      [0040]步驟S04、根據(jù)動態(tài)生成的所述響應(yīng)消息對象,按照預(yù)設(shè)的規(guī)則配置文件,動態(tài)設(shè)置所述響應(yīng)消息對象對應(yīng)的響應(yīng)字段值。
      [0041]本實(shí)施例中,引入規(guī)則配置文件,即根據(jù)請求數(shù)據(jù)是否滿足規(guī)則配置的條件來返回不同的數(shù)據(jù)。規(guī)則配置文件靜態(tài)地定義了樁服務(wù)的行為,通過編寫配置文件能快速構(gòu)建一個滿足預(yù)期邏輯的樁邏輯,適用于不同的測試場景。該規(guī)則配置文件中包含了對應(yīng)的規(guī)貝U,即不同的請求對應(yīng)著不同的響應(yīng),當(dāng)接收到測試請求時,查找規(guī)則配置文件中對應(yīng)于該測試請求的響應(yīng)消息名稱;根據(jù)查找到的響應(yīng)消息名稱,動態(tài)生成響應(yīng)消息對象;從而根據(jù)消息對象及規(guī)則配置文件,動態(tài)設(shè)置所述響應(yīng)消息對象對應(yīng)的響應(yīng)字段值。
      [0042]本實(shí)施例中,在規(guī)則配置文件中引入規(guī)則(rule)的概念,每條規(guī)則有其觸發(fā)的條件(Trigger)如上述的測試請求和滿足條件時相應(yīng)的動
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1