一種模擬用戶無線上網(wǎng)行為的方法
【技術領域】
[0001]本發(fā)明屬于無線網(wǎng)絡技術領域,尤其涉及一種模擬用戶無線上網(wǎng)行為的方法。
【背景技術】
[0002]路由器在生產(chǎn)過程中需要檢測其能承載多少個用戶(即無線終端)同時進行無線上網(wǎng),因此需要模擬多個真實的用戶進行無線上網(wǎng)?,F(xiàn)在一般有三種方法來模擬用戶無線上網(wǎng)行為。第一種方法是采用儀表,但是很多公司因為無法承受如此高昂的費用所以沒辦法使用。第二種方法是在電腦上安裝許多虛擬機,每個虛擬機占用一個無線網(wǎng)卡,來模擬無線客戶端,但是安裝虛擬機勢必會影響電腦主機的性能,裝的越多,電腦主機的性能越差,從而也會影響測試的進行。第三種方法是使用測試工具(比如L0ADRUNNER),但是多個用戶都是虛擬出來的,并不是真實的,與實際應用還是有一定的差距。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術問題在于提供一種模擬用戶無線上網(wǎng)行為的方法,旨在能夠模擬真實的用戶進行無線上網(wǎng),簡單、方便且成本低。
[0004]本發(fā)明是這樣實現(xiàn)的,一種模擬用戶無線上網(wǎng)行為的方法,其包括如下步驟:提供多個無線網(wǎng)卡及一個代理服務器,每個無線網(wǎng)卡代表一個真實的無線客戶端,該代理服務器能夠綁定該無線網(wǎng)卡并實現(xiàn)上網(wǎng)功能;將該多個無線網(wǎng)卡均連接到一個能夠上外網(wǎng)的無線網(wǎng)絡;創(chuàng)建第一腳本及第二腳本;通過導入該第一腳本實現(xiàn)自動發(fā)出上網(wǎng)請求的子進程及實現(xiàn)自動并發(fā)上網(wǎng)請求的多進程;及通過導入該第二腳本將每個上網(wǎng)請求分別綁定到一個無線網(wǎng)卡上,然后該代理服務器與自動發(fā)出上網(wǎng)請求的多個請求客戶端及該外網(wǎng)進行交互。
[0005]本發(fā)明與現(xiàn)有技術相比,有益效果在于:本發(fā)明的模擬用戶無線上網(wǎng)行為的方法,在電腦上連接多個無線網(wǎng)卡,每個無線網(wǎng)卡分別代表一個真實的無線客戶端;代理服務器能夠?qū)崿F(xiàn)將客戶端發(fā)送的多個上網(wǎng)請求分別綁定到相應的網(wǎng)卡上去,并實現(xiàn)上網(wǎng)功能,從而能夠模擬多個真實的用戶進行無線上網(wǎng),簡單、方便且成本低。
【附圖說明】
[0006]圖1本發(fā)明實施例提供的模擬用戶無線上網(wǎng)行為的方法的流程圖。
[0007]圖2是圖1的模擬用戶無線上網(wǎng)行為的方法中自動發(fā)出上網(wǎng)請求的子進程的流程圖。
[0008]圖3是圖1的模擬用戶無線上網(wǎng)行為的方法中自動并發(fā)上網(wǎng)請求的多進程的流程圖。
[0009]圖4是代理服務器與請求客戶端和外網(wǎng)交互的結構圖。
[0010]圖5是第一TCP客戶端與瀏覽器的映射關系圖。
[0011]圖6是第二TCP客戶端與無線網(wǎng)卡的映射關系圖。
[0012]圖7是代理服務器與請求客戶端和外網(wǎng)交互的流程圖。
[0013]圖8是圖1的模擬用戶無線上網(wǎng)行為的方法中的第一部分步驟的流程圖。
[0014]圖9是圖1的模擬用戶無線上網(wǎng)行為的方法中的第二部分步驟的流程圖。
【具體實施方式】
[0015]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0016]如圖1所示,本發(fā)明實施例提供的模擬用戶無線上網(wǎng)行為的方法,其包括如下步驟:
[0017]S1:提供多個無線網(wǎng)卡及一個代理服務器,每個無線網(wǎng)卡代表一個真實的無線客戶端。
[0018]S2:將該多個無線網(wǎng)卡均連接到同一個能夠上外網(wǎng)的無線網(wǎng)絡。
[0019]S3:創(chuàng)建第一腳本及第二腳本,該第一腳本用于實現(xiàn)自動并發(fā)上網(wǎng)請求,該第二腳本用于將上網(wǎng)請求綁定無線網(wǎng)卡并轉(zhuǎn)發(fā)上網(wǎng)請求。
[°02°] S4:將該第一腳本通過導入python語言的selenium庫實現(xiàn)自動發(fā)出上網(wǎng)請求的子進程,然后引用python語言的多進程技術實現(xiàn)自動并發(fā)上網(wǎng)請求,即實現(xiàn)自動上網(wǎng)請求的多進程。該Python語言是一種解釋型、面向?qū)ο蟆討B(tài)數(shù)據(jù)類型的高級程序設計語言。該Selenium是一個Web應用程序自動化測試工具,由ThoughtWorks公司的開發(fā)和測試員團隊開發(fā)。
[0021]具體的,圖2為自動發(fā)出上網(wǎng)請求的子進程,其包括如下子步驟:
[0022]S401:自動設置一瀏覽器的代理服務器地址及端口號。在本實施例中,該瀏覽器的代理服務器地址為運行該代理服務器腳本的主機的網(wǎng)絡之間互連的協(xié)議(InternetProtocol,IP)地址,端口號為該代理服務器設置的端口號。
[0023]S402:自動打開該瀏覽器。
[0024]S403:自動請求指定的統(tǒng)一資源定位符(Uniform Resource Locator,URL),并進行上網(wǎng)操作。
[0025]S404:檢測上網(wǎng)是否成功。
[0026]S405:若上網(wǎng)成功,則該子進程直接結束。
[0027]S406:若上網(wǎng)失敗,則等待直到超時為止。
[0028]圖3為自動并發(fā)上網(wǎng)請求的多進程,其包括如下步驟:
[0029]S411:創(chuàng)建多個自動發(fā)出上網(wǎng)請求的子進程。
[0030 ] S412:控制該多個自動發(fā)出上網(wǎng)請求的子進程同時發(fā)出上網(wǎng)請求。請求的URL可以一致也可以不一致。
[0031]S413:控制父進程阻塞式等待所有自動發(fā)出上網(wǎng)請求的子進程結束,直到所有自動發(fā)出上網(wǎng)請求的子進程全部結束為止。
[0032]S5:將該第二腳本通過導入python語言的SeIenium庫,以控制該代理服務器將每個上網(wǎng)請求分別綁定到一個無線網(wǎng)卡上,然后該代理服務器與該多個自動發(fā)出上網(wǎng)請求的多個請求客戶端及外網(wǎng)進行交互,從而將該多個請求客戶端的上網(wǎng)請求轉(zhuǎn)發(fā)到外網(wǎng),同時還將該外網(wǎng)的數(shù)據(jù)傳輸給該多個請求客戶端。
[0033]具體的,如圖4所示,步驟S5包括如下子步驟:
[0034]S51:建立該代理服務器與該請求客戶端和外網(wǎng)之間的交互連接關系。在本實施例中,通過套接字技術實現(xiàn)該代理服務器與該請求客戶端和外網(wǎng)之間的交互。圖5為代理服務器與請求客戶端和外網(wǎng)(即因特網(wǎng))交互的結構圖。在代理服務器內(nèi)建立一個套接字服務器端(Socket Server)及一個套接字客戶端(Socket Client)。將該套接字服務器端設定為第一傳輸控制協(xié)議(Transmi ss 1n Control Pro toco I,TCP)服務器端,將該因特網(wǎng)(Internet)設定為第二TCP服務器端,將該多個請求客戶端(Request Client)分別設定為多個第一TCP客戶端,將該套接字客戶端(Socket Client)設定為第二TCP客戶端。該請求客戶端與該套接字服務器端組成一個套接字,在建立TCP鏈接之后進行通信。該因特網(wǎng)與該套接字客戶端組成一個套接字,在建立TCP鏈接之后進行通信。由于該第一TCP服務器端和該第二 TCP客戶端同時在該第二腳本里,所以能夠互相傳輸數(shù)據(jù)。
[0035]S52:創(chuàng)建多個第一 TCP客戶端與多個瀏覽器之間的第一映射表。圖6是第一 TCP客戶端與瀏覽器的映射關系圖。由于需要并發(fā)進行上網(wǎng)請求,所以有多個第一TCP客戶端,每個第一 TCP客戶端代表一個上網(wǎng)請求,就相當于一個瀏覽器在發(fā)送上網(wǎng)請求,所以能夠?qū)⒚總€第一 TCP客戶端映射成一個瀏覽器,形成該第一映射表。
[0036]S53:創(chuàng)建多個第二 TCP客戶端與該多個無線網(wǎng)卡之間第二映射表。圖7是第二 TCP客戶端與無線網(wǎng)卡的映射關系圖。第二TCP客戶端的作用就是轉(zhuǎn)發(fā)第一TCP服務器端接收到的從第一 TCP客戶端發(fā)送來的數(shù)據(jù)包,并將該數(shù)據(jù)包綁定到一個無線網(wǎng)卡上,這樣就相當于不同的上網(wǎng)請求是從不同的無線網(wǎng)卡出去并連接到外網(wǎng)的。由于該第二TCP客戶端需要綁定多個不同的無線網(wǎng)卡,所以要建立多個第二 TCP客戶端,這里第二 TCP客戶端和無線網(wǎng)卡也是對應關系,形成第二映射表。
[0037]S54:將該代理服務器與該請求客戶端和該外網(wǎng)進行交互,從而將該多個請求客戶端的上網(wǎng)請求轉(zhuǎn)發(fā)到外網(wǎng),同時還將該外網(wǎng)的數(shù)據(jù)傳輸給該多個請求客戶端。代理服務器與請求客戶端和外網(wǎng)交互的流程圖包括第一子步驟及第二部分步驟。該第一部分步驟是請求報文的數(shù)據(jù)包從該第一 TCP服務器端(即請求客戶端)傳輸?shù)降诙?TCP服務器端(外網(wǎng))。該第二部分步驟是請求報文的數(shù)據(jù)包從第二 TCP服務器端(外網(wǎng))傳輸?shù)皆摰谝?TCP服務器端(即請求客戶端)。
[0038]如圖8所示,該第一部分步驟包括如下子步驟:
[0039]S541:根據(jù)第一 TCP客戶端(瀏覽器)發(fā)出的請求報文,記錄該請求報文的數(shù)據(jù)包的源端口號。
[0040]S542:在第一映射表中查找該源端口號是否有對應的第一TCP服務器端。
[0041 ] S543:若在第一映