本公開涉及區塊鏈測試領域,尤其涉及一種區塊鏈測試方法、裝置、系統和電子設備。
背景技術:
1、現有技術中,由于不同區塊鏈的智能合約的編程語言和代碼邏輯不同,造成在對多種區塊鏈進行測試時,分別采用不同的測試智能合約對多種區塊鏈進行測試。這樣使得現有的測試方法不管是在前端接口和不同區塊鏈之間的測試,還是在大量區塊鏈節點和節點之間的測試時,適配性差的同時測試效率也會降低。
技術實現思路
1、鑒于上述問題而提出了本公開。本公開提供了一種區塊鏈測試方法、裝置、系統和電子設備。
2、根據本公開的第一方面,提供了一種區塊鏈測試方法,包括:獲取區塊鏈中的至少一個待測節點;獲取至少一個待測合約,待測合約是基于合約模板得到的,合約模板中包含元功能模塊,以及,各元功能模塊之間的依賴關系;以全局負載均衡最優為目標,對待測節點與待測合約進行編排,得到編排關系;按照編排關系,對待測合約與待測節點進行部署;對待測節點與相應待測合約進行測試。
3、此外,根據本公開的第一方面的區塊鏈測試方法,獲取至少一個待測合約包括:按照如下方式獲取任意一個待測合約:在合約模板中,獲取用戶指示的目標元功能模塊;基于各目標元功能模塊的依賴關系,將各目標元功能模塊的偽代碼進行合并;按照目標編程語言對合并的偽代碼進行編譯處理,得到待測合約。
4、此外,根據本公開的第一方面的區塊鏈測試方法,按照如下方式獲取任意一個待測合約,還包括:基于待測合約與注釋模板之間的對應關系,基于用戶所指示的注釋等級,獲取目標注釋模板;利用待測合約中的信息,對目標注釋模板進行占位符替換,得到目標注釋。
5、此外,根據本公開的第一方面的區塊鏈測試方法,以全局負載均衡最優為目標,對待測節點與待測合約進行編排,得到編排關系,包括:按照如下方式進行至少一輪匹配關系調整,直至收斂,并將收斂后的匹配關系確定為編排關系:獲取待測節點和待測合約之間的初始匹配關系對應的第一評價值,第一評價值用于衡量待測節點集群的全局負載均衡性能;對待測節點與待測合約之間的匹配關系進行調整,并獲取調整后的第二評價值;當第二評價值大于第一評價值時,將接受概率確定為1;或者,當第二評價值小于第一評價值時,基于第一評價值與第二評價值確定接受概率,接受概率用于指導匹配關系的調整方向,接受概率為調整后的匹配關系被接受的概率。
6、此外,根據本公開的第一方面的區塊鏈測試方法,初始匹配關系為局部負載均衡最優時,待測節點和待測合約之間的匹配關系。
7、此外,根據本公開的第一方面的區塊鏈測試方法,第一評價值至少包括:全局資源利用率,資源包括如下至少一種:內存資源、中央處理器cpu資源。
8、此外,根據本公開的第一方面的區塊鏈測試方法,按照編排關系,對待測合約與待測節點進行部署,包括:基于與區塊鏈適配的部署插件,基于編排關系,對待測合約與待測節點進行部署。
9、此外,根據本公開的第一方面的區塊鏈測試方法,基于與區塊鏈適配的部署插件,基于編排關系,對待測合約與待測節點進行部署,包括:基于區塊鏈底鏈特性,獲取與底鏈特性適配的部署插件;利用編排關系中待測合約和待測節點的信息,對與底鏈特性適配的部署插件中的占位符進行替換,完成對待測合約與待測節點的部署。
10、此外,根據本公開的第一方面的區塊鏈測試方法,對待測節點與相應待測合約進行測試,包括:對各待測節點與相應待測合約進行測試,并獲取測試數據;基于測試數據,在待測節點中確定目標待測節點;對目標待測節點進行調整。
11、此外,根據本公開的第一方面的區塊鏈測試方法,測試數據至少包括:測試時長。
12、根據本公開的第二方面,提供了一種區塊鏈測試裝置,裝置包括:節點獲取單元,被配置為獲取區塊鏈中的至少一個待測節點;合約獲取單元,被配置為獲取至少一個待測合約,待測合約是基于合約模板得到的,合約模板中包含元功能模塊,以及,各元功能模塊之間的依賴關系;編排單元,被配置為以全局負載均衡最優為目標,對待測節點與待測合約進行編排,得到編排關系;部署單元,被配置為按照編排關系,對待測合約與待測節點進行部署;測試單元,被配置為對待測節點與相應待測合約進行測試。
13、根據本公開的第三方面,提供了一種電子設備,包括:存儲器,用于存儲計算機可讀指令;以及處理器,用于運行計算機可讀指令,使得電子設備執行如上所述的區塊鏈測試方法。
14、根據本公開的第四方面,提供了一種非瞬時性計算機可讀存儲介質,用于存儲計算機可讀指令,其特征在于,當所述計算機可讀指令由處理器執行時,使得處理器執行如上所述的區塊鏈測試方法。
15、根據本公開的第五方面,提供了一種計算機程序產品,包括計算機程序,計算機程序被處理器執行實現如權利要求上述的區塊鏈測試方法。
16、如以下將詳細描述的,根據本公開實施例的一種區塊鏈測試方法、裝置、系統和電子設備,通過獲取待測節點和待測合約,并以全局負載均衡最優為目標對待測節點和待測合約進行編排。基于編排關系進行待測合約和待測節點的部署,然后進行待測節點和待測合約的測試。以此,因為各個待測合約都是基于同一個合約模板得到的,因此待測合約的底層邏輯是相同的,這樣提供了標準化的測試合約,適用于多種區塊鏈。在多種區塊鏈對比測試時,簡化了整個測試步驟,提高了測試效率。同時因為合約模版是對各個元功能模塊進行合理有效的組裝,具有依賴關系,而各個測試合約是基于合約模版得到,因此每個合約是基于各個元功能模塊之間的依賴關系來實現的。這樣可以節約資源,減少待測節點和待測合約在編排過程中的計算量,提升測試效率。而以全局負載均衡最優為目標的編排策略,能夠更準確地模擬區塊鏈測試真實環境下的資源消耗及性能表現,這樣,待測節點與待測合約之間的合理編排就可減少資源浪費,適應多種標準化測試需求,提升運行效率。而插件化擴展部署的方式可以靈活、高效的適應多種區塊鏈。以此,這樣的區塊鏈測試方法適應性強的同時測試效率也會提高。
17、要理解的是,前面的一般描述和下面的詳細描述兩者都是示例性的,并且意圖在于提供要求保護的技術的進一步說明。
1.一種區塊鏈測試方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述獲取至少一個待測合約包括:按照如下方式獲取任意一個所述待測合約:
3.根據權利要求2所述的方法,其特征在于,所述按照如下方式獲取任意一個所述待測合約,還包括:
4.根據權利要求1所述的方法,其特征在于,所述以全局負載均衡最優為目標,對所述待測節點與所述待測合約進行編排,得到編排關系,包括:
5.根據權利要求4所述的方法,其特征在于,所述初始匹配關系為局部負載均衡最優時,所述待測節點和所述待測合約之間的匹配關系。
6.根據權利要求4所述的方法,其特征在于,所述第一評價值至少包括:全局資源利用率,所述資源包括如下至少一種:內存資源、中央處理器cpu資源。
7.根據權利要求1所述的方法,其特征在于,所述按照所述編排關系,對所述待測合約與所述待測節點進行部署,包括:
8.根據權利要求7所述的方法,其特征在于,所述基于與所述區塊鏈適配的部署插件,基于所述編排關系,對所述待測合約與所述待測節點進行部署,包括:
9.根據權利要求1所述的方法,其特征在于,所述對所述待測節點與相應待測合約進行測試,包括:
10.根據權利要求9所述的方法,其特征在于,所述測試數據至少包括:測試時長。
11.一種區塊鏈測試裝置,其特征在于,所述裝置包括:
12.一種電子設備,其特征在于,包括:
13.一種非瞬時性計算機可讀存儲介質,用于存儲計算機可讀指令,其特征在于,當所述計算機可讀指令由處理器執行時,使得所述處理器執行如權利要求1到10的任一項所述的區塊鏈測試方法。
14.一種計算機程序產品,其特征在于,包括計算機程序,所述計算機程序被處理器執行實現如權利要求1到10任一項所述區塊鏈測試方法。