System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本申請涉及軟件自動化測試,特別是涉及一種解釋器的測試方法、裝置和計算機設備。
技術(shù)介紹
1、在仿真測試領域中,很多軟件有腳本編輯功能的需求,通常內(nèi)置解釋器來實現(xiàn)軟件的腳本編輯器功能,再通過封裝自定義的方法實現(xiàn)一些特定的功能。對于這類軟件,要測試其編輯器所提供的方法是否能正常使用,測試工程師一般會在軟件編輯器中編寫程序腳本來驗證這些方法,但是這種方式通常測試效率比較低,后續(xù)測試腳本的維護與更新不夠靈活快速,測試結(jié)果在展示上也不夠直觀。
技術(shù)實現(xiàn)思路
1、基于此,本申請目的在于提供一種能夠提高測試靈活性和準確性的解釋器測試方法、裝置和計算機設備,來解決上述
技術(shù)介紹
中提及的技術(shù)問題。
2、第一方面,本申請?zhí)峁┝艘环N解釋器的測試方法。包括:
3、根據(jù)待測試需求確定所述本地解釋器環(huán)境中的目標測試函數(shù);
4、從腳本模塊中加載所述目標測試函數(shù)對應的目標腳本,并通過通信模塊將所述目標腳本發(fā)送到遠程解釋器;
5、接收所述遠程解釋器執(zhí)行所述目標腳本時得到的測試結(jié)果,并按照所述目標測試函數(shù)的類型將所述測試結(jié)果進行展示。
6、在一個實施例中,根據(jù)待測試需求確定所述本地解釋器環(huán)境中的目標測試函數(shù),包括:根據(jù)用戶響應觸發(fā)的待測試需求,確定對應的文件名參數(shù);所述待測試需求關聯(lián)不同的編程庫和框架中用于執(zhí)行核心功能的關鍵方法;根據(jù)所述文件名參數(shù)進行函數(shù)調(diào)用,得到目標測試函數(shù)。
7、在一個實施例中,通過通信模塊將所述目標腳本發(fā)送到遠程解釋器,包括
8、在一個實施例中,基于所述靜態(tài)方法調(diào)用所述通信模塊,以實現(xiàn)將目標腳本發(fā)送到遠程解釋器,包括:基于靜態(tài)方法調(diào)用通信模塊中的通信方法,并通過所述通信方法建立和所述遠程解釋器之間的網(wǎng)關;通過網(wǎng)關實例對應的代碼方法定義與所述遠程解釋器之間的通信動作,以實現(xiàn)所述目標腳本的發(fā)送。
9、在一個實施例中,從腳本模塊中加載所述目標測試函數(shù)對應的目標腳本之后,還包括:從配置模塊中加載所述待測試需求對應的環(huán)境配置信息;所述環(huán)境配置信息至少包括配置模塊工程路徑、圖片基路徑、日志路徑、測試報告路徑和被測軟件安裝路徑;通過所述通信模塊將所述目標腳本和環(huán)境配置信息發(fā)送到遠程解釋器,以使遠程解釋器加載所述環(huán)境配置信息并執(zhí)行所述目標腳本,得到測試結(jié)果。
10、在一個實施例中,遠程解釋器加載所述環(huán)境配置信息并執(zhí)行所述目標腳本,得到測試結(jié)果的過程包括:通過斷言語句初步驗證所述目標腳本的輸出是否符合預期;當所述目標腳中的所有斷言都通過時,通過目標測試框架加載所述環(huán)境配置信息并執(zhí)行所述目標腳本,得到測試結(jié)果。
11、在一個實施例中,本地解釋器和遠程解釋器為運行在同一終端或不同終端的python?解釋器;所述目標測試函數(shù)為基于python?測試框架的pytest測試函數(shù);所述通信模塊為實現(xiàn)多個解釋器之間通信和代碼執(zhí)行的execnet模塊,execnet模塊是基于python程序的分布式計算庫。
12、第二方面,本申請還提供了一種解釋器的測試裝置。包括:
13、測試函數(shù)確定模塊,用于根據(jù)待測試需求確定所述本地解釋器環(huán)境中的目標測試函數(shù);
14、目標腳本發(fā)送模塊,用于從腳本模塊中加載所述目標測試函數(shù)對應的目標腳本,并通過通信模塊將所述目標腳本發(fā)送到遠程解釋器;
15、測試結(jié)果展示模塊,用于接收所述遠程解釋器執(zhí)行所述目標腳本時得到的測試結(jié)果,并按照所述目標測試函數(shù)的類型將所述測試結(jié)果進行展示。
16、第三方面,本申請還提供了一種計算機設備。計算機設備包括存儲器和處理器,存儲器存儲有計算機程序,處理器執(zhí)行計算機程序時實現(xiàn)以上解釋器的測試方法的步驟。
17、第四方面,本申請還提供了一種計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)上存儲有計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)以上解釋器的測試方法的步驟。
18、上述解釋器的測試方法、裝置、計算機設備和可讀存儲介質(zhì),根據(jù)待測試需求確定本地解釋器環(huán)境中的目標測試函數(shù),接著從腳本模塊中加載目標測試函數(shù)對應的目標腳本,并通過通信模塊將目標腳本發(fā)送到遠程解釋器,使得在接收遠程解釋器執(zhí)行目標腳本時得到的測試結(jié)果時,可按照目標測試函數(shù)的類型將測試結(jié)果進行展示。因此,通過將目標腳本從本地解釋器環(huán)境自動加載到遠程解釋器并執(zhí)行,這極大地提高了測試環(huán)境的靈活性,可以解決在一些沒有軟件授權(quán)的終端上直接通過跨解釋器的特性運行自動化腳本,以此來調(diào)用通過授權(quán)終端的解釋器,實現(xiàn)自動化測試的靈活部署。并且測試環(huán)境與開發(fā)環(huán)境隔離開來,減少了環(huán)境因素對測試結(jié)果的影響,從而提高了測試結(jié)果的可靠性和準確性。
本文檔來自技高網(wǎng)...【技術(shù)保護點】
1.一種解釋器的測試方法,其特征在于,應用在本地解釋器,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)待測試需求確定所述本地解釋器環(huán)境中的目標測試函數(shù),包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過通信模塊將所述目標腳本發(fā)送到遠程解釋器,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述基于所述靜態(tài)方法調(diào)用所述通信模塊,以實現(xiàn)將所述目標腳本發(fā)送到遠程解釋器,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從腳本模塊中加載所述目標測試函數(shù)對應的目標腳本之后,還包括:
6.根據(jù)權(quán)利要求5項所述的方法,其特征在于,遠程解釋器加載所述環(huán)境配置信息并執(zhí)行所述目標腳本,得到測試結(jié)果的過程包括:
7.根據(jù)權(quán)利要求1至6任意一項所述的方法,其特征在于,所述本地解釋器和所述遠程解釋器為運行在同一終端或不同終端的Python?解釋器;所述目標測試函數(shù)為基于Python測試框架的pytest測試函數(shù);所述通信模塊為實現(xiàn)多個解釋器之間通信和代碼執(zhí)行的execnet模塊,execnet模塊是基于Pyt
8.一種解釋器的測試裝置,其特征在于,所述裝置包括:
9.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)權(quán)利要求1至7中任一項所述的方法的步驟。
10.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至7中任一項所述的方法的步驟。
...【技術(shù)特征摘要】
1.一種解釋器的測試方法,其特征在于,應用在本地解釋器,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)待測試需求確定所述本地解釋器環(huán)境中的目標測試函數(shù),包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過通信模塊將所述目標腳本發(fā)送到遠程解釋器,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述基于所述靜態(tài)方法調(diào)用所述通信模塊,以實現(xiàn)將所述目標腳本發(fā)送到遠程解釋器,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從腳本模塊中加載所述目標測試函數(shù)對應的目標腳本之后,還包括:
6.根據(jù)權(quán)利要求5項所述的方法,其特征在于,遠程解釋器加載所述環(huán)境配置信息并執(zhí)行所述目標腳本,得到測試結(jié)果的過程包括:
7.根...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:胡俊杰,
申請(專利權(quán))人:長沙科梁科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。