鬼佬大哥大
  • / 10
  • 下載費用:30 金幣  

一種云計算環境下的自動化測試數據生成方法.pdf

摘要
申請專利號:

CN201510373216.7

申請日:

2015.06.30

公開號:

CN105045710A

公開日:

2015.11.11

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 11/36申請日:20150630|||公開
IPC分類號: G06F11/36 主分類號: G06F11/36
申請人: 吉林大學
發明人: 于銀輝; 楊蕾; 王玉星; 王達; 田小建
地址: 130012吉林省長春市前進大街2699號
優先權:
專利代理機構: 長春吉大專利代理有限責任公司22201 代理人: 王恩遠
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510373216.7

授權公告號:

||||||

法律狀態公告日:

2017.11.10|||2015.12.09|||2015.11.11

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明的一種云計算環境下的自動化測試數據生成方法屬于性能測試的技術領域,包含測試計劃定義、將待測試數據上傳到云測試平臺、測試執行、測試報告生成與分析4個步驟;本發明無需太多的人工干預,可有效減少重復過程以節省時間、費用和工作量,具有數據處理測試速度快,節省內存空間等優點。

權利要求書

1.一種云計算環境下的自動化測試數據生成方法,包含測試計劃定義、將
待測試數據上傳到云測試平臺、測試執行、測試報告生成與分析4個步驟;
所述的測試計劃定義是,在建立一個測試計劃時,在JMeter的GUI界面
上該測試計劃以樹形結構顯示,而測試計劃的內容存儲為一個xml格式的文件,
所述的xml格式的文件是對樹形測試計劃的形式化描述;當測試執行模塊執行測
試計劃時,就會依據所述的xml格式的文件的描述判定應該在內存中建立什么樣
的對象來反映用戶建立的測試計劃,并根據不同的對象產生各自的行為對待測試
系統進行訪問;
所述的將待測試數據上傳到云測試平臺是,在云測試平臺上實現對所有待測
數據采用量子蛙跳算法獲得最優測試數據進行分組測試,進行軟件測試各模塊的
統計、關聯分析,然后應用大數據處理數據;所有測試相關的應用程序、測試工
具、測試用例、測試環境都先部署到云測試平臺上,借助云計算技術進行測試;
所述的測試執行是,將上傳到云測試平臺的數據通過JMeter開啟多線程模
擬多用戶的操作,其中每個線程都調用測試計劃中的元件對象并執行這些對象定
義的操作;
所述的測試報告生成與分析是,在測試執行過程中實時的收集平均響應時
間、系統吞吐量,并將結果以聚合報告的形式顯示給測試人員,供其進行分析和
參考。
2.根據權利要求1所述的一種云計算環境下的自動化測試數據生成方法,
其特征在于,所述的云測試平臺是由四個層次構成的,即云資源層、云資源管理
層、服務管理層和用戶管理層。

說明書

一種云計算環境下的自動化測試數據生成方法

技術領域

本發明屬于性能測試的技術領域,特別涉及一種云計算環境下的自動化測試數據生成方法。

背景技術

軟件測試是保證并提高軟件質量的重要手段,它是軟件生命周期中不可或缺的重要環節。軟件測試過程中,測試數據的生成是其核心問題,也是軟件測試的關鍵與難點所在。生成合適的測試數據是高效地進行軟件測試的基礎。量子蛙跳算法為軟件測試數據生成提供了豐富的理論和方法,能有效提高軟件測試的效率。

任何一個測試都離不開手工測試,基于測試用例,在測試初期我們需要手工測試,但是手工測試也有它的很大局限性,首先不可能覆蓋每一條路徑,單元測試還不存在重復性問題,一旦到了回歸測試,測試工作的工作量將會變的非常大,許多與時序、死鎖、資源沖突、多線程等有關的錯誤,通過手工測試很難捕捉到進行系統負載、性能測試時,需要模擬大量數據或大量并發用戶等各種應用場合時,這也是手工測試無法模擬的。如果整個測試過程的測試數據量是龐大的,而且數據變化頻繁,需要在短時間內(1天)完成,僅僅依賴測試人員手工地測試數據,在測試管理工具中進行輸入、修改、刪除等操作,幾乎不可能做到,而且效率低,容易產生測試數據不一致,這樣就給其它測試人員提供了不可靠的測試數據,造成測試結果的失效。

JMeter是Apache組織開發的基于java的測試工具,相比其他HTTP測試工具,JMeter最主要的特點在于擴展性強,目前已大量應用在各個公司的性能測試過程中。它提供了一個利用本地ProxyServer(代理服務器)來錄制生成測試腳本的功能,實現了強大的測試功能并能夠提供聚合報告,當build一項任務時,在若干任務中查找所需的任務,運行結束后生成HTML報告(report),并查看測試的輸出結果。生成的報告上顯示了每次測試運行的結果,包括測試狀態、時間、數據執行順序以及所有測試花費的時間,使用戶或測試開發者直觀的掌握整體測試狀況、查看測試報告結果。同時,Jenkins是一個開源項目,提供了一種易于使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專注于更為重要的業務邏輯實現上。同時Jenkins能實施監控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩定性。其只需要定義一些觸發條件便可支持基于任務的持續構建,并且有一套自己的插件開發規范,而目前基于性能持續集成(持續集成)的有一個開源性能插件DynamicParameters。在此基礎上,搭建JMeter和Jenkins測試平臺,該平臺提供了Java編程語言的測試驅動函數庫。用Jenkins提供的api通知Jenkins編譯工程項目,并在工程設置中填寫項目信息和自動觸發Jmeter插件需要加載的測試結果路徑,編寫自動化測試腳本,調用Jmeter測試工具對項目進行測試,并生成測試結果。這樣方便了軟件開發測試工作者隨時對比測試結果,從測試結果對比中,找出程序代碼的缺陷以提高程序代碼的健壯性。

JMeter可以模擬大量的客戶端向服務器發送請求來測試服務器的強度,并分析服務器的整體性能。Jmeter運行時生成多個線程模擬多個用戶執行請求,每次請求都記錄了請求的響應時間、請求發起時間、請求結果等信息,產生的結果文件為后綴為.jtl的xml格式文件。所以這個文件具有文件大、性能持續集成測試記錄條數多等特性,同時,友好的GUI界面方便用戶使用,開源,適用于大中型Web系統性能測試,并且免費,學習曲線低。不過它和其他java應用程序一樣,執行過程中需要占用大量內存。

為了最大限度的靈活性,在JMeter架構下采用正則表達式創建斷言,通過帶有斷言的腳本以驗證程序代碼能否返回期望的結果,實現了對應用程序的功能測試。僅僅需要幾句簡單的命令語句,就可以完成一個jmeter文件對一個jar類型文件(yang,table)的控制。同時,jmeter文件可以隨著測試進行、軟件的應用性能完善以及文件更新,實時的修改代碼和更新數據以更適合測試的要求。然而,當排隊等待測試的數據量很大時,則需要耗掉大量的時間才能完成一個周期的測試,無法滿足開發測試人員檢驗產品性能的需求,為測試工作帶來了諸多的不便;同時,如果一個待測試的文件(table)腳本中的數據過多時,將其載入jmeter工具的反應時間過長,且操作十分遲鈍。因此,就急需一種能夠快速處理大量數據文件的腳本的方法,同時需要服務器及時清理內存垃圾,減少磁盤空間的占用,提高測試結果數據的解析和讀取效率。然而,由于多個用戶共享內存,這樣就需要向終端申請資源(即內存),如果被分配的內存不足,將會導致測試失敗,而系統的內存資源是十分有限的,并不能滿足軟件開發工作者不斷的需求,而云計算軟件測試能夠有效地利用云平臺動態可擴展的海量資源,節省測試時間和降低測試成本,是一種較好的測試解決方案。但是現有的云計算軟件測試平臺和服務在使用時需要收取費用,部分整體化解決方案價格昂貴,而且,這些云測試平臺和解決方案是商業公司或測試即服務(TestingasaService,TaaS)提供商專有的,它們的底層設計對外是不開放的,外部研究人員很難進行相關問題的深入研究。

發明內容

本發明要解決的技術問題是:克服現有技術在軟件測試中處理速度慢、內存空間緊缺、測試易失敗的不足,基于量子蛙跳算法和云計算技術,提供一種云計算環境下的自動化測試數據生成方法及系統。

本發明的技術問題可以通過以下技術方案實現:

一種云計算環境下的自動化測試數據生成方法,包含測試計劃定義、將待測試數據上傳到云測試平臺、測試執行、測試報告生成與分析4個步驟;

所述的測試計劃定義是,在建立一個測試計劃時,在JMeter的GUI界面上該測試計劃以樹形結構顯示,而測試計劃的內容存儲為一個xml格式的文件,所述的xml格式的文件是對樹形測試計劃的形式化描述;當測試執行模塊執行測試計劃時,就會依據所述的xml格式的文件的描述判定應該在內存中建立什么樣的對象來反映用戶建立的測試計劃,并根據不同的對象產生各自的行為對待測試系統進行訪問;

所述的將待測試數據上傳到云測試平臺是,在云測試平臺上實現對所有待測數據采用量子蛙跳算法獲得最優測試數據進行分組測試,進行軟件測試各模塊的統計、關聯分析,然后應用大數據處理數據;所有測試相關的應用程序、測試工具、測試用例、測試環境都先部署到云測試平臺上,借助云計算技術進行測試;

所述的測試執行是,將上傳到云測試平臺的數據通過JMeter開啟多線程模擬多用戶的操作,其中每個線程都調用測試計劃中的元件對象并執行這些對象定義的操作;

所述的測試報告生成與分析是,在測試執行過程中實時的收集平均響應時間、系統吞吐量,并將結果以聚合報告的形式顯示給測試人員,供其進行分析和參考。

本發明所述的云測試平臺具體是由四個層次構成的,即云資源層、云資源管理層、服務管理層和用戶管理層。

本發明旨在以Jmeter自動化測試工具和Jenkins持續集成軟件為基底,構造一個云計算軟件測試平臺架構,以解決測試過程中內存緊缺的現象,采用一個大數據緩沖池,將性能持續集成測試記錄按每次性能持續集成測試請求載入內存的緩沖隊列中,在云平臺上實現測試,用量子蛙跳算法獲得最優測試數據進行分組測試,進行軟件測試各數據的統計、關聯分析,然后應用云計算技術處理數據,最終加快數據處理測試速度,節省內存空間。

本發明有以下有益效果:

1、本發明使用持續集成中的任何一個環節都是自動完成的,無需太多的人工干預,有利于減少重復過程以節省時間、費用和工作量。

2、本發明使用Jmeter自動化測試工具和Jenkins持續集成軟件,能較好的解決自動化測試結果保存以及持續集成能持續展示自動化測試結果,實現隨時能夠方便對比測試結果,從測試結果對比中,找出程序代碼的缺陷和提高程序健壯性,實現了自動化測試結果持續集成整合。

3、本發明在JMeter架構下采用正則表達式創建斷言,通過帶有斷言的腳本以驗證程序代碼能否返回期望的結果,使得測試命令語句簡單化,實現了對應用程序的功能測試,同時提高了測試代碼靈活性。

4、本發明的云測試服務平臺能夠提高開發者的測試效率,測試不占用開發者的計算資源,并且盡量能夠自動進行。

5、本發明的云測試服務平臺提高了測試的安全性,即使測試失敗,也不會導致整個系統崩潰。

6、本發明的云測試服務平臺使得測試能夠彈性地改變測試環境,即改變測試的資源配置。

附圖說明

圖1是本發明的整體架構及功能部件示意圖。

圖2是本發明所述的量子蛙跳算法求解最優數據生成方法的流程圖。

具體實施方式

實施例1本發明的總體結構

本發明的一種云計算環境下的自動化測試數據生成方法,包含測試計劃定義、將待測試數據上傳到云測試平臺、測試執行、測試報告生成與分析4個步驟;

所述的測試計劃定義是,在建立一個測試計劃時,在JMeter的GUI界面上該測試計劃是以樹形結構顯示的,而其內容的存儲格式為xml形式,這個xml形式存儲的腳本是對樹形測試計劃的形式化描述。測試執行模塊執行測試計劃時,就會依據xml文件的描述判定應該在內存中建立什么樣的對象來反映用戶建立的測試計劃,并根據不同的對象產生各自的行為對待測試系統進行訪問;

所述的將待測試數據上傳到云測試平臺是,在云平臺上實現對所有待測數據采用一種量子蛙跳算法獲得最優測試數據進行分組測試,進行軟件測試各table的統計、關聯分析,然后應用大數據處理數據,加快數據處理測試速度,節省內存空間。而云測試平臺是由四個層次構成的,即云資源層、云資源管理層、服務管理層、用戶管理層。這四層共同構成了云測試平臺,所有測試相關的應用程序、測試工具、測試用例、測試環境等應用都必須先部署到云測試平臺上,借助云計算技術,提高測試的效率。能夠有效地利用云平臺動態可擴展的海量資源,節省測試時間和降低測試成本。

所述的測試執行是,當測試執行時,將上傳到云測試平臺的數據通過JMeter開啟多線程模擬多用戶的操作,其中每個線程都會調用測試計劃中的元件對象并執行這些對象定義的操作;

所述的測試報告生成與分析是,在測試執行過程中實時的收集平均響應時間、系統吞吐量等性能指標值,并將結果以聚合報告的形式顯示給測試人員,供其進行分析和參考。

實施例2本發明的基于量子蛙跳算法的軟件結構測試數據自動生成方法

對軟件測試數據生成問題進行自動求解可以有效減少測試人員的工作,提高軟件測試效率,節省軟件開發成本。本發明所采用的軟件測試數據生成方法是量子蛙跳算法。該方法從程序輸入空間(輸入域)中隨機地選擇輸入數據,然后將輸入數據用于執行被測程序,再根據輸入數據在程序中的執行結果,結合量子蛙跳算法生成的新的輸入數據,繼續運行和測試程序進行試探,直到發現最優解為止。

1、適應值函數的構造

適應值函數是量子蛙跳算法應用于求解問題的優化目標,它的構造直接影響PSO在具體問題上的效率。本發明采用“分支函數疊加法”構造適應值函數。分支函數是一個實值函數,它是分支謂詞到實值的一個映射,可以量化地描述在測試數據的驅動下,被測單元的實際執行路徑對選定路徑的覆蓋程度。

設待測路徑上有m個分支點,n個參數,則m個分支函數分別為:f1=f1(x1,x2,…,xn),f2=f2(x1,x2,…,xn),…,fm=fm(x1,x2,…,xn);而該路徑的分支函數為

F=MAX-(F(f1)+F(f2)+…+F(fm))

其中, F ( x ) = 0 , x 0 x , x > 0 ; ]]>MAX為一個較大整數。

2、測試數據生成算法

基于量子蛙跳算法的軟件結構測試數據自動生成方法,將測試數據作為青蛙種群向量x的元素。首先隨機生成測試數據,然后用量子蛙跳算法搜索最佳的測試數據,使得適應值函數的值達到最大。參照圖2所示,其步驟如下:

(1)分析被測試程序。根據測試覆蓋策略、被測程序確定適應值函數,并對被測程序插裝;

(2)選定青蛙數m、適應值閾值ε、最大允許迭代次數,族群數,初始化青蛙的量子位置和位置;

(3)迭代步數t=0;Fg=0;Fp=(0,0,…,0);

(4)當滿足Fg≤ε且t<Maxiteration條件時,使用青蛙種群P中的每個青蛙來執行打樁后的程序;根據青蛙運行之后的結果,計算其適應度;

(5)更新青蛙群的量子位置速度和位置;

(6)直到達到最終迭代次數,得到最優數據生成結果。

以下是可以用于實施例2進行求解的一個matlab程序:

關 鍵 詞:
一種 計算 環境 自動化 測試數據 生成 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種云計算環境下的自動化測試數據生成方法.pdf
鏈接地址:http://www.wwszu.club/p-6401507.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大