本發明涉及通信技術領域,尤其涉及一種基于虛擬視頻流的流媒體服務器測試方法和系統。
背景技術:
流媒體技術的出現,使得在網絡上觀看和傳輸影音文件變為一種現實。通俗的講,所謂的流媒體技術,就是將視音頻文件經過壓縮處理后,放在網絡服務器上進行分段的傳輸,客戶端計算機不用將整個的視音頻文件下載到本地,便可以即時收聽和收看。
但在目前的網絡帶寬的限制下,為了達到網絡上流式傳播文件的目的,視音頻文件經過壓縮處理,減小文件的大小,從而使影音文件的品質有所下降。而且,流媒體業務是一種寬帶業務,對于網絡帶寬、抖動、延遲和丟包率都有較高的要求。因而用戶端在使用流媒體服務時,尤其是在忙時段,可能會產生黑屏、馬賽克、圖像停格、聲音時斷等現象。為了解決流媒體在播放時出現的問題,隨著流媒體業務的發展,我們需要一種有效的測試手段以便對流媒體的播放質量狀況進行測試。
現今對流媒體的測試手段并不是很多,大致可以分為兩類:1、最原始最簡單的測試方法就是讓大量測試人員在不同時段、不同的地方點播流媒體,當遇到黑屏、馬塞克、圖像停格、聲音時斷等現象時作記錄,最后再匯總。這種做法的優點是與最終用戶的點播感受一致,但是費時費力,測試人員必須一直仔細地盯著畫面,很容易疏忽掉一些細節,而且統計工作也非常繁瑣;2、使用專門的測試設備進行測試,可以模擬打開、關閉連接,其優點就是自動化,大大減輕測試人員的工作量,但是這種測試手段偏重于對流媒體服務器進行壓力測試,測試設備不會真正進行播放,無法真實模擬用戶的使用場景,當然也無法檢測到停頓、馬賽克等現象,而且不能同時支持龐大的數據流推送。
技術實現要素:
本發明提供一種基于虛擬視頻流的流媒體服務器測試方法和系統,以實現對流媒體服務器的自動、高效測試。
一方面,本發明實施例提供一種基于虛擬視頻流的流媒體服務器測試方法,包括以下步驟:
將媒體內容和測試腳本導入到待測流媒體服務器;
在所述待測流媒體服務器上運行所述測試腳本,模擬多個客戶端同時點播所述媒體內容;以及
記錄所述待測流媒體服務器的最大并發流數。
優選地,在所述待測流媒體服務器上運行所述測試腳本,模擬多個客戶端同時點播所述媒體內容的所述步驟包括:
利用所述測試腳本創建多個進程以模擬所述多個客戶端發送多個點播請求至所述待測流媒體服務器;
根據所述多個點播請求計算需要的網絡帶寬;以及
根據所述多個點播請求和所述網絡帶寬推送對應的所述媒體內容。
優選地,在將媒體內容和測試腳本導入到待測流媒體服務器的所述步驟之前,還包括:
檢查所述待測流媒體服務器的網絡環境狀態。
優選地,在記錄所述待測流媒體服務器的最大并發流數的所述步驟之后,還包括:
根據所述待測流媒體服務器的所述最大并發流數評估所述待測流媒體服務器的性能,生成測試報告。
相應地,本發明還提供一種基于虛擬視頻流的流媒體服務器測試系統,包括:
獲取模塊,用于將媒體內容和測試腳本導入到待測流媒體服務器;
運行模塊,用于在所述待測流媒體服務器上運行所述測試腳本,模擬多個客戶端同時點播所述媒體內容;以及
記錄模塊,用于記錄所述待測流媒體服務器的最大并發流數。
優選地,所述運行模塊包括:
進程創建單元,用于利用所述測試腳本創建多個進程以模擬所述多個客戶端發送多個點播請求至所述待測流媒體服務器;
網絡帶寬計算單元,用于根據所述多個點播請求計算需要的網絡帶寬;以及
節目推送單元,用于根據所述多個點播請求和所述網絡帶寬推送對應的所述媒體內容。
優選地,還包括:
檢查模塊,用于檢查所述待測流媒體服務器的網絡環境狀態。
優選地,還包括:
性能評估模塊,用于根據所述待測流媒體服務器的所述最大并發流數評估所述待測流媒體服務器的性能,生成測試報告。
實施本發明實施例,具有如下有益效果:本發明提供的基于虛擬視頻流的流媒體服務器測試方法和系統,通過將測試腳本和媒體內容導入到待測流媒體服務器上,在待測流媒體服務器上運行該測試腳本來模擬多個客戶端同時點播該媒體內容,以此來記錄待測流媒體服務器的最大并發流數;本發明提供的基于虛擬視頻流的流媒體服務器測試方法和系統具有很高的并發性能,可以支持5000以上個并發,比業界的平均值3000高出40個百分點。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明第一實施例提供的基于虛擬視頻流的流媒體服務器測試方法的流程圖。
圖2為本發明第二實施例提供的基于虛擬視頻流的流媒體服務器測試方法的流程圖。
圖3為本發明第三實施例提供的基于虛擬視頻流的流媒體服務器測試方法的流程圖。
圖4為本發明第四實施例提供的基于虛擬視頻流的流媒體服務器測試系統的原理圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
實施例一
圖1為本發明第一實施例提供的基于虛擬視頻流的流媒體服務器測試方法的流程圖。如圖1所示,基于虛擬視頻流的流媒體服務器測試方法法包括以下步驟:
步驟S110:將媒體內容和測試腳本導入到待測流媒體服務器。
具體地,在本發明一實施例中,所述測試腳本由編程人員預先編輯,腳本的編程實現可以為匯編語言、C語言等以達到程序的高速運行。當準備進行流媒體服務器性能測試時,將媒體內容和測試腳本導入到待測流媒體服務器。
例如,通過以下步驟將媒體內容導入到待測的流媒體服務器:
1.登錄待測的流媒體服務器。
2.打開一個命令窗口。
3.導入媒體內容到服務器上,在命令行“C:\videos>”下執行以下命令:
scp import v375d0_0001.mpg*scp import WildWildWest-60min.mpg
flm_v375d0_0001.mpg scp import WildWildWest-60min.mpg.ff
flm_v375d0_0001.mpg.ff scp import WildWildWest-60min.mpg.fr
flm_v375d0_0001.mpg.fr scp import WildWildWest-60min.mpg.vvx
flm_v375d0_0001.mpg.vvx scp import WildWildWest-15min.mpg
hdsd_d0_0001.mpg scp import WildWildWest-15min.mpg.ff hdsd_d0_0001.mpg.ff
scp import WildWildWest-15min.mpg.fr hdsd_d0_0001.mpg.fr scp import
WildWildWest-15min.mpg.vvx hdsd_d0_0001.mpg.vvx scp import
v375d0_0001.mpg hdsd_d0_0002.mpg scp import v375d0_0001.mpg.ff
hdsd_d0_0002.mpg.ff scp import v375d0_0001.mpg.fr hdsd_d0_0002.mpg.fr scp
import v375d0_0001.mpg.vvx hdsd_d0_0002.mpg.vvx scp import
TENM0000000000014900XOR*scp export v375d0_0001.mpg c:\temp\test0000.dat
步驟S120:在所述待測流媒體服務器上運行所述測試腳本,模擬多個客戶端同時點播所述媒體內容。
具體地,在本發明一實施例中,開始運行測試腳本后,首先創建多個進程以模擬所述多個客戶端發送多個點播請求至所述待測流媒體服務器;之后,根據所述多個點播請求計算需要的網絡帶寬;最后,根據所述多個點播請求和所述網絡帶寬推送對應的所述媒體內容。
進一步地,本發明提供的測試系統在接收到點播請求時,會將點播請求傳遞到后端服務器腳本處理程序,后端服務器腳本處理程序會根據數據需求自動計算帶寬等參數,然后根據請求把對應的節目推出去。
步驟S130:記錄所述待測流媒體服務器的最大并發流數。
具體地,最大并發流數是指流媒體服務器能夠支持的、有效的、能夠同時在線正常觀看節目的最大用戶數。在本發明一實施例中,通過監控發送點播請求的多個進程,記錄能夠流暢觀看所述媒體內容的客戶端的數量,以推算所述待測流媒體服務器的最大并發流數。其中,本實施例中的每個推流進程可同時支持5000個并發模擬,即可同時模擬5000個客戶端進行流媒體服務器的推流測試。
本實施例的技術方案,通過將媒體內容和測試腳本導入到待測流媒體服務器來創建進程以模擬多個客戶端同時點播所述媒體內容,完成了流媒體服務器的性能測試,解決現有技術中需要進行人工測試帶來的人力成本高和效率低的問題,或者是自動化測試中無法支持龐大的數據流推送的問題,使得流媒體服務器測試更加簡便、高效,節省了大量時間、人力成本。
實施例二
圖2為本發明第二實施例提供的基于虛擬視頻流的流媒體服務器測試方法的流程圖。如圖2所示,基于虛擬視頻流的流媒體服務器測試方法法包括以下步驟:
步驟S210:檢查所述待測流媒體服務器的網絡環境狀態。
具體地,在本發明一實施例中,首先,運行以下命令檢查服務器狀態:
scp show cluster status
下面是部分返回結果示例:
C:\VstrmKit>scp show clu stat Cluster Status Local Node Name XOR12006 Local Cluster Node Id 0 Cluster Size 1 Cluster Id 12006 Master Cluster Node Id 0 Master Node State GREEN Master Node File System State REBUILT Cluster Uptime 0000 Days 00:28:55 Vstrm I/O Size 256KB Vstrm I/O Tick Count 1756746 XOR12006 is running a consistency check Cluster Adjacency Database:XOR12006 is Node Id=0,Node State=GREEN,File System State=REBUILT
之后對連流媒體服務器的網口。
步驟S220:將媒體內容和測試腳本導入到待測流媒體服務器。
步驟S230:在所述待測流媒體服務器上運行所述測試腳本,模擬多個客戶端同時點播所述媒體內容。
步驟S240:記錄所述待測流媒體服務器的最大并發流數。
本實施例的技術方案,通過檢查待測流媒體服務器的網絡環境狀態,保證后續測試準確進行。
實施例三
圖3為本發明第三實施例提供的基于虛擬視頻流的流媒體服務器測試方法的流程圖。如圖3所示,基于虛擬視頻流的流媒體服務器測試方法法包括以下步驟:
步驟S310:將媒體內容和測試腳本導入到待測流媒體服務器。
步驟S320:在所述待測流媒體服務器上運行所述測試腳本,模擬多個客戶端同時點播所述媒體內容。
步驟S330:記錄所述待測流媒體服務器的最大并發流數。
步驟S340:根據所述待測流媒體服務器的所述最大并發流數評估所述待測流媒體服務器的性能,生成測試報告。
進一步地,在測試結束后,生成測試報告,可以在C:\servicedisk\LogFiles\目錄下找到這些txt文件格式的測試報告。檢查測試報告,查看是否有任何設備錯誤,例如,閃存驅動器、問題,同時,你可以檢查SeaView里的SeaFile counters(通過訪問“Vstrm Info>Seafile Ctrs”),查看任何閃存驅動器讀寫操作過慢問題(超過200毫秒)。
本實施例的技術方案,通過流媒體服務器的能承載的最大并發流數來評估待測流媒體服務器的性能,為后續流媒體服務器的改進提供精確的數據支持。
實施例四
圖4為本發明第四實施例提供的基于虛擬視頻流的流媒體服務器測試系統的原理圖。如圖4所示,基于虛擬視頻流的流媒體服務器測試系統包括:
獲取模塊410,用于將媒體內容和測試腳本導入到待測流媒體服務器;
運行模塊420,用于在所述待測流媒體服務器上運行所述測試腳本,模擬多個客戶端同時點播所述媒體內容;以及
記錄模塊430,用于記錄所述待測流媒體服務器的最大并發流數。
檢查模塊440,用于檢查所述待測流媒體服務器的網絡環境狀態。
性能評估模塊450,用于根據所述待測流媒體服務器的所述最大并發流數評估所述待測流媒體服務器的性能,生成測試報告。
進一步地,所述運行模塊420包括:
進程創建單元,用于利用所述測試腳本創建多個進程以模擬所述多個客戶端發送多個點播請求至所述待測流媒體服務器;
網絡帶寬計算單元,用于根據所述多個點播請求計算需要的網絡帶寬;以及
節目推送單元,用于根據所述多個點播請求和所述網絡帶寬推送對應的所述媒體內容。
有利地,本發明通過將媒體內容和測試腳本導入到待測流媒體服務器來創建進程以模擬多個客戶端同時點播所述媒體內容,完成了流媒體服務器的性能測試,解決現有技術中需要進行人工測試帶來的人力成本高和效率低的問題,或者是自動化測試中無法支持龐大的數據流推送的問題,使得流媒體服務器測試更加簡便、高效,節省了大量時間、人力成本。
以上所揭露的僅為本發明一種較佳實施例而已,當然不能以此來限定本發明之權利范圍,本領域普通技術人員可以理解實現上述實施例的全部或部分流程,并依本發明權利要求所作的等同變化,仍屬于發明所涵蓋的范圍。