一種測試最大telnet用戶數的方法
【專利摘要】本發明涉及通信產品測試領域,尤其涉及交換機所支持最大telnet用戶數的測試方法。一種測試最大telnet用戶數的方法,應用于一服務器端與客戶端之間,具體步驟如下:給定一預置條件,預置條件包括服務器端所支持的最大telnet用戶數,服務器端依據預置條件與客戶端建立套接字連接;服務器端與客戶端通過一自動連接模塊逐個建立數目小于等于最大telnet用戶數的套接字連接;當套接字需要建立的連接數大于最大telnet用戶數時,則自動停止建立連接。本發明的測試方法實現了建立telnet連接、查看內存和CPU占用率的自動化,解決了傳統手動測試最大telnet用戶數耗時、費力、效率低的問題。
【專利說明】—種測試最大telnet用戶數的方法
【技術領域】
[0001]本發明涉及通信產品測試領域,尤其涉及交換機所支持最大telnet用戶數的測試方法。
【背景技術】
[0002]Telnet協議是TCP/IP協議族中一個簡單的遠程終端協議,是Internet遠程登陸服務的標準協議和主要方式,它的作用是實現遠程管理功能。本地計算機上使用telnet程序連接到服務器,用戶在telnet程序中輸入命令,服務器根據命令進行相關操作,從而實現本地計算機對服務器的管理控制。
[0003]telnet連接的建立主要是通過客戶/服務器方式實現的,telnet連接建立流程圖如圖1所示:步驟l),telnet服務器I創建并啟用TCP監聽器監聽端口 ;步驟2),客戶端2根據IP地址和端口向服務器I發出連接請求;步驟3),服務器I發現連接請求后,查看自己的telnet會話數是否超過自身所允許的最大連接數,步驟4),沒有超過就新建會話加入會話鏈表,并為telnet會話分配內存且啟用一個子進程,子進程用來處理會話命令;步驟5),服務器I告知客戶端2telnet連接建立成功;客戶端2接著就可以向服務器I發起會話。
[0004]由于客戶端和服務器每建立一條telnet連接,服務器就會為該連接分配一個內存空間并啟動子進程。以交換機作為telnet連接的服務器為例,當建立大量的telnet連接時,就會消耗掉交換機大量的內存資源,當這些連接同時運作時,CPU使用率會很高。很多情況下交換機系統不夠強大,當內存和CPU占用率均過高,超過交換機最大負荷時,會導致系統直接崩潰、交換機死機。因此,需要對交換機的最大telnet用戶數做出限制,以防止telnet連接過多,導致交換機內存資源被耗盡崩潰死機。
[0005]現有測試最大telnet用戶數的方法是通過在計算機上手動打開大量的登錄窗口(如SecureCRT或Dos窗口)來一條一條的建立telnet連接,在建立telnet連接的過程中定期查看內存和CPU占用率。
[0006]現有的測試最大telnet用戶數的方法主要缺點如下:
[0007](I)測試所需時間過長:每條telnet連接都要手動建立,平均建一條telnet連接要花10s,則建300條telnet連接要花3000s (將近一個小時),導致建立大量telnet連接時花費的時間過長;
[0008](2)操作復雜、工作量大:每個telnet連接都要分別開一個登錄窗口,當需要建立300條telnet連接時,就必須要開300個登錄窗口,操作復雜且統計困難,導致工作量非常大;
[0009](3)需頻繁查看內存和CPU占用率:手動建立telnet連接的同時還要保證在盡量短的間隔時間內定期查看內存以及CPU占用率,操作不易實現。
[0010]綜上所述,現有的測試最大telnet用戶數的方法不管是建立telnet連接還是查看內存資源和CPU占用率都需手動實現,實現過程復雜、工作量大,使得操作繁瑣、效率低下。
【發明內容】
[0011]本發明的目的在于,提供一種測試最大telnet用戶數的方法,解決以上技術問題。
[0012]本發明所解決的技術問題可以采用以下技術方案來實現:
[0013]一種測試最大telnet用戶數的方法,應用于一服務器端與客戶端之間,其中,具體步驟如下:
[0014]步驟Si,給定一預置條件,所述預置條件包括所述服務器端所支持的最大telnet用戶數,所述服務器端依據所述預置條件與所述客戶端建立套接字連接;
[0015]步驟s2,所述服務器端與所述客戶端通過一自動連接模塊逐個建立數目小于等于最大telnet用戶數的套接字連接;
[0016]步驟S3,判斷所述套接字建立的連接數達到最大telnet用戶數時,則自動停止建立連接。
[0017]優選地,所述服務器端采用交換機,和/或所述客戶端采用計算機。
[0018]優選地,所述客戶端上設有用于輸入所述預置條件的輸入界面。
[0019]優選地,所述輸入界面采用工具命令語言腳本實現。
[0020]優選地,所述預置條件還包括登錄信息、連接端口信息、和/或交換機IP地址信
肩、O
[0021]優選地,建立套接字連接的步驟如下:
[0022]步驟sll,所述服務器端創建并啟動監聽器,所述服務器端的套接字綁定到預置條件中設置的端口,監聽客戶端的套接字,判斷是否有客戶端的套接字的請求;
[0023]步驟sl2,所述客戶端的套接字發起連接請求,所述服務器端的套接字接受并響應請求,建立通信連接;
[0024]步驟sl3,所述客戶端寫入請求時,服務器端處理請求并把處理結果通過套接字送回給所述客戶端,完成一個套接字通信。
[0025]優選地,在所述步驟s2及步驟S3中,所述客戶端每隔一設定時間周期讀取所述服務器端的內存資源占用情況和CPU使用率。
[0026]優選地,所述設定時間周期為2s。
[0027]優選地,所述自動連接模塊每建立一條套接字連接,建立的telnet用戶數增一。
[0028]由于采用以上技術方案,本發明的有益效果主要體現在以下幾個方面:
[0029](I)測試所需時間短:平均建立一條telnet連接遠不到Is,建300條telnet連接也只需一分鐘左右,和現有技術相比大大節省了測試時間;
[0030](2)操作簡單、減少了工作量:無需手動開啟多個顯示界面,只要在預置界面輸入正確的預置條件,點擊開始后就自動建立大量的telnet連接,有效的減少了工作量;
[0031](3)易于查看內存和CPU占用率:可以在telnet連接建立的同時實現2s —次自動查看內存和CPU占用率,明顯提高測試效率。
[0032]綜上所述,本發明的測試方法實現了建立telnet連接、查看內存和CPU占用率的自動化,解決了傳統手動測試最大telnet用戶數耗時、費力、效率低的問題。【專利附圖】
【附圖說明】
[0033]圖1為telnet連接建立流程示意圖;
[0034]圖2為本發明的套接字通信流程圖;
[0035]圖3為本發明的預置界面示意圖;
[0036]圖4為本發明的測試拓撲圖;
[0037]圖5為本發明的測試流程圖。
【具體實施方式】
[0038]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0039]需要說明的是,在不沖突的情況下,本發明中的實施例及實施例中的特征可以相
互組合。
[0040]下面結合附圖和具體實施例對本發明作進一步說明,但不作為本發明的限定。
[0041]參照圖4、圖5,一種測試最大telnet用戶數的方法,應用于一服務器端I與客戶端2之間,具體步驟如下:
[0042]步驟si,給定一預置條件,預置條件包括服務器端I所支持的最大telnet用戶數,服務器端I依據預置條件與客戶端2建立套接字連接;
[0043]步驟s2,服務器端I與客戶端2通過一自動連接模塊逐個建立數目小于等于最大telnet用戶數的套接字連接;
[0044]步驟S3,判斷套接字建立的連接數達到最大telnet用戶數時,如果連接限制功能生效,則自動停止建立連接;如果連接限制功能不生效,則繼續建立套接字連接,直至內存耗盡,不再進行連接。
[0045]上述的預置條件通過一預置界面輸入,參照圖3,預置條件包括連接端口信息,如Console連接配置信息,包括COM號、波特率;和/或Telnet連接配置信息,包括交換機IP地址信息、登錄信息(如登錄用戶名、登錄密碼)及最大連接數信息;上述的服務器端I采用交換機。圖3為預置界面的一種表現形式,圖3所示的預置界面中間的四個按鈕用于實現具體測試操作,分別是利用率顯示、開始、停止及斷開連接;按鈕下面為兩個顯示窗口,左下角的窗口用于顯示交換機內存和CPU占用率;右下角的窗口有頁面I和頁面2兩部分,頁面I用于顯示telnet連接數,頁面2用于顯示telnet登錄日志。
[0046]如果交換機本身所支持的最大telnet用戶數為200個,Console 口與計算機相連的端口為C0M1,交換機波特率為19200,IP地址為192.168.1.1,用戶名和密碼均為admin,那么通過建立大于200個telnet連接來查看交換機telnet數限制功能是否生效,本方案建立300個telnet連接來達到測試效果,具體設置如圖3所示。
[0047]在上述的步驟s2及步驟S3中,客戶端2每隔一設定時間周期向服務器端I發送查看命令,讀取服務器端I的內存資源占用情況和CPU使用率。優選地,設定時間周期為2s。
[0048]本發明針對最大telnet用戶數的測試,利用計算機作為客戶端2,交換機作為服務器端I,上述的自動連接模塊通過TCL (Tool Command Language,工具命令語言)腳本作為測試工具,進行最大telnet用戶數的測試。通過在計算機上運行TCL腳本來建立多個套接字(socket)連接從而實現多條telnet連接的自動建立,另外在TCL腳本上設置定期自動每隔2s查看內存和CPU情況。TCL腳本所實現的telnet連接是自動逐條建立的,當所建telnet連接數小于交換機自身所允許的最大telnet連接數時,交換機能夠進行正常的通信。當所建telnet連接數達到交換機自身所允許的最大telnet連接數時,交換機就不再響應其它的telnet連接請求,自動停止建立telnet連接,以確保內存資源不被耗盡,CPU能正常運作,交換機能正常通信。
[0049]本發明是以交換機作為服務器端I來進行測試的,測試操作通過TCL腳本來具體實現,利用TCL腳本建立多個套接字通信來建立多條telnet連接,交換機為每條telnet連接分配一個內存空間,連接數超過交換機本身所允許的最大telnet用戶數會使得交換機內存資源耗盡系統崩潰死機。本發明利用TCL腳本來執行具體的測試操作,實現快速的對最大telnet用戶數進行測試;提出了一種高效、快速的測試方法。
[0050]套接字(socket)連接,客戶端2套接字首先描述它要連接的服務器端I的套接字,指出服務器端I套接字的地址和telnet的端口號得到一個套接字。套接字通信流程圖如圖2所示,
[0051]步驟sll,服務器端I創建并啟動監聽器,服務器端I的套接字綁定到預置條件中設置的端口,監聽客戶端2的套接字,判斷是否有客戶端2套接字的請求;
[0052]步驟sl2,客戶端2套接字發起連接請求,服務器端I套接字接受并響應請求,建立通信連接;
[0053]步驟sl3,客戶端2寫入請求,服務器處理請求并把處理結果通過套接字送回給客戶端2,這樣完成一個套接字通信;通信完成之后關閉此套接字連接。
[0054]具體測試步驟如下:
[0055](I)將計算機或終端電腦的IP與交換機IP設置在同一個網段,分別設為192.168.1.15和192.168.1.1,參見圖4所示的測試拓撲圖;
[0056](2)計算機上打開TCL腳本,在TCL界面輸入正確的交換機IP地址:192.168.1.1,telnet最大連接數:300,用戶名和密碼:admin ;如圖3所示。
[0057](3)點擊“利用率顯示”按鈕查看內存和CPU情況,腳本自動執行每隔2s查看一次內存和CPU情況,查看信息顯示在圖3所示左邊窗口內;
[0058](4)點擊“開始”按鈕,腳本將自動建立大量的telnet連接,直到達到交換機本身所支持的最大連接數200條或內存耗盡時停止;
[0059](5)在右邊窗口內選中“頁面1”,查看到所建的telnet總條數,選中“頁面2”,查
看登錄的日志信息。
[0060]上述的步驟(3)中腳本啟動一個計時器后,自動循環執行2s查看一次內存和CPU占用率,并將內存和CPU信息顯示到圖3所示的左邊窗口內。
[0061]上述的步驟(4)中,所設的telnet最大連接數300條超過交換機所支持的最大數目200條。建立telnet連接時,TCL腳本先獲取telnet最大連接數,接著將當前所建的telnet連接數設為n=0, socket端口號設置為23以建立telnet連接,建立第一條后η加I即η=1,然后通過循環操作來完成多個telnet連接的自動建立,當所建telnet數目達到交換機本身所支持的最大數200時,停止建立,以防止交換機內存耗盡死機影響交換機通信。如果交換機軟件有問題,最大telnet用戶數限制功能不生效,所建telnet連接數到200條后,將繼續建立后面的telnet連接,這樣會造成內存耗盡、CPU超負荷,最后系統崩潰死機。本發明方案利用TCL腳本很好的實現了對最大telnet用戶數的測試。TCL腳本通過創建兩個線程來實現本方案的測試操作,兩個線程分別是建立連接和內存及CPU的查看,具體所實現的測試原理圖如下圖5所示。
[0062]在本發明中,TCP協議是通信標準,整個通信連接的建立都是依據TCP協議標準完成的。Socket實際上是提供一個通信端口,socket通過建立面向連接的虛電路為telnet連接提供了數據流套接字的通信方式,telnet利用socket建立與交換機之間的連接。本發明的測試方法利用TCL腳本同時創建多條socket連接實現多個telnet連接通信,不僅如此本發明還利用TCL腳本定期自動查看交換機的內存資源占用情況和CPU使用率。與現有技術相比,本發明不管是建立telnet連接還是查看內存和CPU情況都是腳本自動實現的,無需人工復雜操作,不僅提高了測試效率而且還有效的減少了測試人員的工作量。
[0063]本發明的測試方法通過腳本自動建立telnet連接,也可以用于路由器和MDU型ONU的最大telnet用戶數的測試。
[0064]以上所述僅為本發明較佳的實施例,并非因此限制本發明的實施方式及保護范圍,對于本領域技術人員而言,應當能夠意識到凡運用本發明說明書及圖示內容所作出的等同替換和顯而易見的變化所得到的方案,均應當包含在本發明的保護范圍內。
【權利要求】
1.一種測試最大telnet用戶數的方法,應用于一服務器端與客戶端之間,其特征在于,具體步驟如下: 步驟Si,給定一預置條件,所述預置條件包括所述服務器端所支持的最大telnet用戶數,所述服務器端依據所述預置條件與所述客戶端建立套接字連接; 步驟s2,所述服務器端與所述客戶端通過一自動連接模塊逐個建立數目小于等于最大telnet用戶數的套接字連接; 步驟s3,判斷所述套接字建立的連接數達到最大telnet用戶數時,則自動停止建立連接。
2.根據權利要求1所述的一種測試最大telnet用戶數的方法,其特征在于,所述服務器端采用交換機,和/或所述客戶端采用計算機。
3.根據權利要求1所述的一種測試最大telnet用戶數的方法,其特征在于,所述客戶端上設有用于輸入所述預置條件的輸入界面。
4.根據權利要求3所述的一種測試最大telnet用戶數的方法,其特征在于,所述輸入界面采用工具命令語言腳本實現。
5.根據權利要求1所述的一種測試最大telnet用戶數的方法,其特征在于,所述預置條件還包括登錄信息、連接端口信息、和/或交換機IP地址信息。
6.根據權利要求1所述的一種測試最大telnet用戶數的方法,其特征在于,建立套接字連接的步驟如下: 步驟sll,所述服務器端創建并啟動監聽器,所述服務器端的套接字綁定到預置條件中設置的端口,監聽客戶端的套接字,判斷是否有客戶端的套接字的請求; 步驟sl2,所述客戶端的套接字發起連接請求,所述服務器端的套接字接受并響應請求,建立通信連接; 步驟sl3,所述客戶端寫入請求時,服務器端處理請求并把處理結果通過套接字送回給所述客戶端,完成一個套接字通信。
7.根據權利要求6所述的一種測試最大telnet用戶數的方法,其特征在于,在所述步驟s2及步驟s3中,所述客戶端每隔一設定時間周期讀取所述服務器端的內存資源占用情況和CPU使用率。
8.根據權利要求7所述的一種測試最大telnet用戶數的方法,其特征在于,所述設定時間周期為2s。
9.根據權利要求1所述的一種測試最大telnet用戶數的方法,其特征在于,所述自動連接模塊每建立一條套接字連接,建立的telnet用戶數增一。
【文檔編號】H04L29/06GK103490945SQ201310347828
【公開日】2014年1月1日 申請日期:2013年8月9日 優先權日:2013年8月9日
【發明者】歐春霞 申請人:上海斐訊數據通信技術有限公司