應用在測試軟件中的測試方法和測試系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及軟件測試技術,具體而言,涉及應用在測試軟件中的測試方法和測試系統(tǒng)。
【背景技術】
[0002]隨著我國政府在信息化領域制定了一系列政策方針并持續(xù)加強基礎網絡設施建設,為互聯網接入提供較好的網絡基礎條件。運營商和各大廠商積極推動互聯網應用發(fā)展,加快網絡應用對社會生活的滲透,如電子政務、電子商務等應用與線下結合緊密,吸引更多人使用互聯網。傳統(tǒng)互聯網企業(yè)也在紛紛向移動互聯網方向轉型或產品兼容,導致原本訪問量已經很高的熱門應用又加入了移動互聯用戶,使得互聯網應用用戶訪問量屢創(chuàng)新高,海量訪問的互聯網應用也在不斷涌現,這些互聯網應用面臨著日均訪問量過億的高并發(fā)訪問的技術考驗。同時也給軟件質量保障工作帶來了前所未有的挑戰(zhàn),主要表現在兩個方面,一是訪問量級的差異,傳統(tǒng)性能測試的信息系統(tǒng)訪問量并發(fā)用戶量在一萬以下,而高并發(fā)的互聯網應用的并發(fā)訪問量可達數萬,甚至更高,這樣直接導致傳統(tǒng)測試工具無法模擬高并發(fā)的互聯網應用的并發(fā)訪問量所需的虛擬用戶;二是測試環(huán)境直接影響測試執(zhí)行,傳統(tǒng)性能測試通過局域網直接對服務器發(fā)起壓力,監(jiān)控服務器所能承受的壓力,如果是服務器集群,則只能通過推算的方式計算服務器集群所能承受的訪問壓力量級,而高并發(fā)的互聯網應用是基于互聯網,同時這類應用為改善用戶瀏覽體驗,在網絡各處放置節(jié)點服務器構成在現有的互聯網基礎之上的一層智能虛擬網絡,盡可能避開互聯網上有可能影響數據傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內容傳輸的更快、更穩(wěn)定,這樣直接導致傳統(tǒng)測試工具、測試環(huán)境都無法滿足測試需求。
[0003]在缺少質量保障手段(即性能檢測工具)的情況下,很多互聯網應用軟件企業(yè)選擇放棄性能測試或者是選擇國外廠商的性能測試。在軟件性能檢測工具方面,國外廠商比較有名的有Infosys Technologies公司提出的對象驅動性能測試模型,原MercuryInteractive的Loadrunner,微軟公司的WAS測試工具等。但是這些性能測試受到測試工具、測試環(huán)境(互聯網環(huán)境)等因素的限制,只能在局域網內對單臺服務器的負載情況進行性能測試,而非服務器集群,一個服務器集群的負載能力是經過推算得出,即單臺服務器乘以服務器臺數,乘積為該服務器集群的負載能力。這個推算忽略了負載均衡設備、網絡帶寬和質量等因素。所以在真正上線后,會出現服務響應慢、響應時間長甚至宕機等情況發(fā)生。并且,這些性能測試軟件中的控制節(jié)點和壓力節(jié)點工作沒有很好的區(qū)分,導致控制節(jié)點功能繁多,耗費大量系統(tǒng)資源,制約測試軟件的虛擬用戶量。
[0004]對于大規(guī)模的分布式測試,一次10萬虛擬用戶模擬,大約產生的數據量在50至70萬行,需要調用100臺左右壓力機進行模擬,如此大規(guī)模的壓力機在回傳測試結果時,由一臺控制端接收嚴重影響數據的可靠性及傳輸性能。由于該過程數據交互頻繁,100臺服務器同時與I臺服務器進行數據傳輸,很難避免數據傳輸錯誤或失敗的情況發(fā)生。鑒于此,克服上述現有缺陷的性能測試工具數據測試機制是本發(fā)明亟待解決的問題。
【發(fā)明內容】
[0005]本發(fā)明的目的在于提供一種應用在測試軟件中的測試方法及測試系統(tǒng),以解決解決虛擬用戶數量限制問題,使得控制節(jié)點和壓力節(jié)點均可以釋放出大量資源,模擬更多的虛擬用戶量。
[0006]本發(fā)明實施例提供了一種應用在測試軟件中的測試方法,其包括:
[0007]步驟1,根據待測試軟件的性能測試要求確定壓力機的數量;
[0008]步驟2,將所有壓力機中的一臺壓力機定義為控制節(jié)點,其他壓力機定義為壓力節(jié)點;并建立所有所述壓力節(jié)點與所述控制節(jié)點的網絡連接;
[0009]步驟3,所述控制節(jié)點向所述壓力節(jié)點發(fā)送壓力測試指令;
[0010]步驟4,所述壓力節(jié)點根據所述壓力測試指令,創(chuàng)建預設數量線程并進行壓力測試,并實時存儲測試記錄并緩存所述測試記錄;
[0011]步驟5,待所有壓力節(jié)點壓力測試結束后,所述控制節(jié)點匯集、整合存儲在壓力節(jié)點上的的測試記錄,并分析得到測試結果。
[0012]在一些實施例中,優(yōu)選為,在所述步驟3之前,所述測試方法還包括:
[0013]根據待測試軟件的性能測試要求錄制腳本;
[0014]調整所述腳本,得到可執(zhí)行的測試腳本。
[0015]在一些實施例中,優(yōu)選為,在所述步驟4中,所述測試記錄包括:每個虛擬用戶訪問的響應時間、成功率、腳本執(zhí)行日志。
[0016]在一些實施例中,優(yōu)選為,在所述步驟5之后,所述測試方法還包括:
[0017]步驟6,將所述測試結果定義為調整前測試結果;
[0018]步驟7,根據所述調整前測試結果確定測試瓶頸;
[0019]步驟8,根據所述測試瓶頸進行調整,并重新執(zhí)行步驟3-步驟5,得到調整后測試結果。
[0020]在一些實施例中,優(yōu)選為,所述步驟8之后,所述測試方法還包括:
[0021]比較所述調整前測試結果與所述調整后測試結果;
[0022]若所述調整后測試結果優(yōu)于所述調整前測試結果,且所述調整后測試結果在預設測試期望值內,則,測試結束;否則,繼續(xù)執(zhí)行步驟6-步驟8。
[0023]本發(fā)明還提供了一種應用在測試軟件中的測試系統(tǒng),其包括:
[0024]第一確定模塊,其用于根據待測試軟件的性能測試要求確定壓力機的數量;
[0025]分配模塊,其用于將所有壓力機中的一臺壓力機定義為控制節(jié)點,其他壓力機定義為壓力節(jié)點;
[0026]連接模塊,根據所述分配模塊的分配結果,建立所有所述壓力節(jié)點與所述控制節(jié)點的網絡連接;
[0027]傳輸模塊,其用于所述控制節(jié)點向所述壓力節(jié)點發(fā)送壓力測試指令;
[0028]測試模塊,其包括所有壓力節(jié)點,用于所述壓力節(jié)點根據所述壓力測試指令,創(chuàng)建預設數量線程并進行壓力測試,并實時存儲測試記錄并緩存所述測試記錄;
[0029]分析模塊,其包括控制節(jié)點,用于待所有壓力節(jié)點壓力測試結束后,所述控制節(jié)點匯集、整合存儲在壓力節(jié)點上的的測試記錄,并分析得到測試結果。
[0030]在一些實施例中,優(yōu)選為,應用在測試軟件中的測試系統(tǒng)還包括:
[0031]錄制模塊,用于根據待測試軟件的性能測試要求錄制腳本;
[0032]調整模塊,用于調整所述腳本,得到可執(zhí)行的測試腳本。
[0033]在一些實施例中,優(yōu)選為,每個壓力節(jié)點包括緩存單元,用于實時存儲測試記錄,所述測試記錄包括:每個虛擬用戶訪問的響應時間、成功率、腳本執(zhí)行日志。
[0034]在一些實施例中,優(yōu)選為,所述的應用在測試軟件中的測試系統(tǒng)還包括:
[0035]調整模塊,與分析模塊連接,用于將所述測試結果定義為調整前測試結果,根據所述調整前測試結果確定測試瓶頸,根據所述測試瓶頸進行調整;
[0036]調用模塊,用于基于調整模塊調整后的測試系統(tǒng),調用所述傳輸模塊、所述測試模塊、所述分析模塊,再進行測試,得到調整后測試結果。
[0037]在一些實施例中,優(yōu)選為,所述的應用在測試軟件中的測試系統(tǒng)還包括:比較模塊,與分析模塊和調用模塊相連;
[0038]所述比較模塊用于比較所述調整前測試結果與所述調整后測試結果;若所述調整后測試結果優(yōu)于所述調整前測試結果,且所述調整后測試結果在預設測試期望值內,則,測試結束;否則,調用所述調整模塊和所述調用模塊。
[0039]本發(fā)明實施例提供的應用在測試軟件中的測試方法及測試系統(tǒng),與現有技術相比,根據待測試軟件的性能測試要求確定壓力機數量后,將所有壓力機的其中一臺設為控制節(jié)點,其他設為壓力節(jié)點,所有壓力節(jié)點都與控制節(jié)點聯系,構成廣域、分布式方式。并對控制節(jié)點、壓力節(jié)點承擔的任務和角色進行定義,該測試機制中控制節(jié)點只負責匯總與分析來自壓力節(jié)點的測試數據,壓力節(jié)點只負責生成壓力流量,將測試結果數據傳輸給控制節(jié)點,該測試方法可以使得控制節(jié)點和壓力節(jié)點均可以釋放出大量資源,模擬更多的虛擬用戶量。
[0040]對于大規(guī)模的分布式測試,一次10萬虛擬用戶模擬,大約產生的數據量在50至70萬行,需要調用100臺左右壓力機進行模擬,如此大規(guī)模的壓力機在回傳測試結果時,由一臺控制端接收,如果不采用數據緩存技術將嚴重影響數據的可靠性及傳輸性能。因此利用壓力節(jié)點對數據進行緩存,提高可靠性和傳輸性能。
【附圖說明】
[0041]圖1為本發(fā)明一個實施例中應用在測試軟件中的測試方法的步驟示意圖。
【具體實施方式】
[0042]下面通過具體的實施例結合附圖對本發(fā)明做進一步的詳細描述。
[00