本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域的數(shù)據(jù)統(tǒng)計(jì)技術(shù),尤其涉及一種流量統(tǒng)計(jì)方法、裝置及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)的發(fā)展,客戶端推送信息產(chǎn)生的流量消耗成為用戶關(guān)注的對(duì)象之一,于是急需一種流量統(tǒng)計(jì)方法,用于統(tǒng)計(jì)客戶端推送信息所產(chǎn)生的流量消耗。
目前客戶端產(chǎn)生流量消耗的推送信息種類主要有三種:離線前推送信息、離線暫停推送信息、離線開機(jī)推送信息?,F(xiàn)有技術(shù)統(tǒng)計(jì)上述推送信息消耗流量大小的方法為:通過借助第三方抓包工具來實(shí)現(xiàn)手動(dòng)抓取客戶端發(fā)送的相關(guān)請(qǐng)求及響應(yīng),(如:抓包工具charles、fiddler、wireshark)進(jìn)行手動(dòng)抓取推送信息請(qǐng)求與返回的數(shù)據(jù),然后手動(dòng)計(jì)算所消耗的流量大小,從而統(tǒng)計(jì)所消耗的流量。現(xiàn)有的流量統(tǒng)計(jì)方法操作復(fù)雜度較高,并且借助第三方抓包工具手動(dòng)抓取數(shù)據(jù)包計(jì)算消耗流量的操作是無法與自動(dòng)化測(cè)試結(jié)合使用的。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明實(shí)施例期望提供一種流量統(tǒng)計(jì)方法、裝置及系統(tǒng),以解決現(xiàn)有的流量統(tǒng)計(jì)方法操作復(fù)雜度較高、無法與自動(dòng)化測(cè)試結(jié)合使用的。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例提供一種流量統(tǒng)計(jì)方法,所述方法包括:
獲取目標(biāo)設(shè)備客戶端發(fā)送的推送信息請(qǐng)求,所述推送信息請(qǐng)求包括:目標(biāo)服務(wù)器的地址以及請(qǐng)求類型;
根據(jù)所述推送信息請(qǐng)求獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
根據(jù)所述推送信息請(qǐng)求及所述響應(yīng)數(shù)據(jù)統(tǒng)計(jì)流量大小。
上述方案中,所述獲取目標(biāo)設(shè)備客戶端發(fā)送的推送信息請(qǐng)求包括:
獲取終端設(shè)備的IP地址,綁定目標(biāo)設(shè)備;
啟動(dòng)監(jiān)聽程序,監(jiān)聽所述目標(biāo)設(shè)備上客戶端發(fā)送的推送信息請(qǐng)求。
上述方案中,所述根據(jù)所述推送信息請(qǐng)求獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)包括:
根據(jù)所述推送信息請(qǐng)求,獲取所述目標(biāo)服務(wù)器的IP地址;
連接所述目標(biāo)服務(wù)器,將所述推送信息請(qǐng)求發(fā)送給所述目標(biāo)服務(wù)器;
根據(jù)所述推送信息請(qǐng)求的請(qǐng)求類型,獲取針對(duì)不同請(qǐng)求類型所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)。
上述方案中,所述根據(jù)所述推送信息請(qǐng)求的請(qǐng)求類型,獲取針對(duì)不同請(qǐng)求類型所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)包括:
判斷所述請(qǐng)求類型是否為離線前推送信息請(qǐng)求,若是離線前推送信息請(qǐng)求,則計(jì)算所述離線前推送信息請(qǐng)求的第一請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線前推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第一響應(yīng)數(shù)據(jù);創(chuàng)建第一文件,將所述離線前推送信息的第一預(yù)設(shè)字段錄入第一文件;
否則,判斷所述請(qǐng)求類型是否為離線暫停推送信息請(qǐng)求,若是離線暫停推送信息請(qǐng)求,則計(jì)算述離線暫停推送信息請(qǐng)求的第二請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線暫停推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第二響應(yīng)數(shù)據(jù);創(chuàng)建第二文件,將所述離線暫停推送信息的第一預(yù)設(shè)字段錄入所述第二文件;
否則當(dāng)所述請(qǐng)求類型非離線前推送信息請(qǐng)求及離線暫停推送信息請(qǐng)求時(shí),判斷所述請(qǐng)求類型是否為離線開機(jī)圖推送信息請(qǐng)求,若是離線開機(jī)圖推送信息請(qǐng)求,則計(jì)算所述離線開機(jī)圖推送信息請(qǐng)求的第三請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線開機(jī)圖推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第三響應(yīng)數(shù)據(jù);將所述離線開機(jī)圖推送信息的第一預(yù)設(shè)字段錄入所述第二文件。
上述方案中,所述方法還包括:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求時(shí),判斷所述第一文件中錄入的第一預(yù)設(shè)字段是否包含所述推送信息請(qǐng)求的HTTP地址,如果包含所述HTTP地址,則獲取并分析所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
當(dāng)所述響應(yīng)數(shù)據(jù)為第一預(yù)設(shè)閾值時(shí),創(chuàng)建第三文件;
當(dāng)所述響應(yīng)數(shù)據(jù)為第二預(yù)設(shè)閾值時(shí),創(chuàng)建第四文件,并將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第四文件。
上述方案中,所述方法還包括:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求,且所述第一文件中錄入的第一預(yù)設(shè)字段不包含所述HTTP地址時(shí),判斷所述第三文件的第一預(yù)設(shè)字段是否包含所述HTTP地址,如果包含所述HTTP地址,將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第四文件。
上述方案中,所述方法還包括:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求,且所述第一文件中錄入的第一預(yù)設(shè)字段不包含所述HTTP地址以及所述第三文件的第一預(yù)設(shè)字段不包含所述HTTP地址時(shí),判斷所述第二文件中錄入的第一預(yù)設(shè)字段是否包含所述HTTP地址,如果包含所述HTTP地址,則獲取并分析所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
當(dāng)所述響應(yīng)數(shù)據(jù)為所述第二預(yù)設(shè)閾值時(shí),創(chuàng)建第五文件,并將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第五文件。
上述方案中,所述根據(jù)所述推送信息請(qǐng)求及所述響應(yīng)數(shù)據(jù)統(tǒng)計(jì)流量大小包括:
分別統(tǒng)計(jì)所述第一返回?cái)?shù)據(jù)、所述第二返回?cái)?shù)據(jù)以及所述第三返回?cái)?shù)據(jù)的長(zhǎng)度;
分別統(tǒng)計(jì)所述第四文件以及所述第五文件的數(shù)據(jù)大小;
計(jì)算所述第一請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第二請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第三請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第一返回?cái)?shù)據(jù)長(zhǎng)度、所述第二返回?cái)?shù)據(jù)長(zhǎng)度、所述第三返回?cái)?shù)據(jù)長(zhǎng)度、所述第四文件的數(shù)據(jù)大小以及所述第五文件的數(shù)據(jù)大小總和,得到流量大小。
本發(fā)明實(shí)施例還提供一種流量統(tǒng)計(jì)裝置,所述裝置包括:
獲取模塊,用于獲取目標(biāo)設(shè)備客戶端發(fā)送的推送信息請(qǐng)求,所述推送信息請(qǐng)求包括:目標(biāo)服務(wù)器的地址以及請(qǐng)求類型;
所述獲取模塊還用于根據(jù)所述推送信息請(qǐng)求獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
統(tǒng)計(jì)模塊,用于根據(jù)所述推送信息請(qǐng)求及所述響應(yīng)數(shù)據(jù)統(tǒng)計(jì)流量大小。
上述方案中,所述獲取模塊具體用于:
獲取終端設(shè)備的IP地址,綁定目標(biāo)設(shè)備;
啟動(dòng)監(jiān)聽程序,監(jiān)聽所述目標(biāo)設(shè)備上客戶端發(fā)送的推送信息請(qǐng)求。
上述方案中,所述獲取模塊具體用于:
根據(jù)所述推送信息請(qǐng)求,獲取所述目標(biāo)服務(wù)器的IP地址;
連接所述目標(biāo)服務(wù)器,將所述推送信息請(qǐng)求發(fā)送給所述目標(biāo)服務(wù)器;
根據(jù)所述推送信息請(qǐng)求的請(qǐng)求類型,獲取針對(duì)不同請(qǐng)求類型所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)。
上述方案中,所述獲取模塊具體用于:
判斷所述請(qǐng)求類型是否為離線前推送信息請(qǐng)求,若是離線前推送信息請(qǐng)求,則計(jì)算所述離線前推送信息請(qǐng)求的第一請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線前推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第一響應(yīng)數(shù)據(jù);創(chuàng)建第一文件,將所述離線前推送信息的第一預(yù)設(shè)字段錄入第一文件;
否則,判斷所述請(qǐng)求類型是否為離線暫停推送信息請(qǐng)求,若是離線暫停推送信息請(qǐng)求,則計(jì)算述離線暫停推送信息請(qǐng)求的第二請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線暫停推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第二響應(yīng)數(shù)據(jù);創(chuàng)建第二文件,將所述離線暫停推送信息的第一預(yù)設(shè)字段錄入所述第二文件;
否則當(dāng)所述請(qǐng)求類型非離線前推送信息請(qǐng)求及離線暫停推送信息請(qǐng)求時(shí),判斷所述請(qǐng)求類型是否為離線開機(jī)圖推送信息請(qǐng)求,若是離線開機(jī)圖推送信息請(qǐng)求,則計(jì)算所述離線開機(jī)圖推送信息請(qǐng)求的第三請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線開機(jī)圖推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第三響應(yīng)數(shù)據(jù);將所述離線開機(jī)圖推送信息的第一預(yù)設(shè)字段錄入所述第二文件。
上述方案中,所述獲取模塊還用于:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求時(shí),判斷所述第一文件中錄入的第一預(yù)設(shè)字段是否包含所述推送信息請(qǐng)求的HTTP地址,如果包含所述HTTP地址,則獲取并分析所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
當(dāng)所述響應(yīng)數(shù)據(jù)為第一預(yù)設(shè)閾值時(shí),創(chuàng)建第三文件;
當(dāng)所述響應(yīng)數(shù)據(jù)為第二預(yù)設(shè)閾值時(shí),創(chuàng)建第四文件,并將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第四文件。
上述方案中,所述獲取模塊還用于:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求,且所述第一文件中錄入的第一預(yù)設(shè)字段不包含所述HTTP地址時(shí),判斷所述第三文件的第一預(yù)設(shè)字段是否包含所述HTTP地址,如果包含所述HTTP地址,將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第四文件。
上述方案中,所述獲取模塊還用于:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求,且所述第一文件中錄入的第一預(yù)設(shè)字段不包含所述HTTP地址以及所述第三文件的第一預(yù)設(shè)字段不包含所述HTTP地址時(shí),判斷所述第二文件中錄入的第一預(yù)設(shè)字段是否包含所述HTTP地址,如果包含所述HTTP地址,則獲取并分析所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
當(dāng)所述響應(yīng)數(shù)據(jù)為所述第二預(yù)設(shè)閾值時(shí),創(chuàng)建第五文件,并將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第五文件。
上述方案中,所述統(tǒng)計(jì)模塊用于:
分別統(tǒng)計(jì)所述第一返回?cái)?shù)據(jù)、所述第二返回?cái)?shù)據(jù)以及所述第三返回?cái)?shù)據(jù)的長(zhǎng)度;
分別統(tǒng)計(jì)所述第四文件以及所述第五文件的數(shù)據(jù)大??;
計(jì)算所述第一請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第二請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第三請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第一返回?cái)?shù)據(jù)長(zhǎng)度、所述第二返回?cái)?shù)據(jù)長(zhǎng)度、所述第三返回?cái)?shù)據(jù)長(zhǎng)度、所述第四文件的數(shù)據(jù)大小以及所述第五文件的數(shù)據(jù)大小總和,得到流量大小。
本實(shí)施例還提供一種流量統(tǒng)計(jì)系統(tǒng),包括客戶端、服務(wù)器以及上述的流量統(tǒng)計(jì)裝置,所述客戶端用于向所述服務(wù)器發(fā)送推送信息請(qǐng)求,所述服務(wù)器用于根據(jù)所述推送信息請(qǐng)求返回響應(yīng)數(shù)據(jù)。
本發(fā)明實(shí)施例提供了一種流量統(tǒng)計(jì)方法、裝置及系統(tǒng),該方法通過獲取目標(biāo)設(shè)備客戶端發(fā)送的推送信息請(qǐng)求以及目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),根據(jù)推送信息請(qǐng)求及響應(yīng)數(shù)據(jù)統(tǒng)計(jì)流量大小。該方法能夠自動(dòng)統(tǒng)計(jì)出客戶端發(fā)送各種推送信息請(qǐng)求時(shí)所消耗的流量大小,無需手動(dòng)抓取信息請(qǐng)求及響應(yīng)數(shù)據(jù),大大減少了推送信息流量測(cè)試的操作復(fù)雜度,且可以與自動(dòng)化測(cè)試結(jié)合使用。
附圖說明
圖1為本發(fā)明提供的流量統(tǒng)計(jì)方法實(shí)施例一的流程示意圖;
圖2為本發(fā)明提供的流量統(tǒng)計(jì)方法實(shí)施例二的流程示意圖;
圖3為本發(fā)明提供的流量統(tǒng)計(jì)方法實(shí)施例三的流程示意圖;
圖4為本發(fā)明提供的流量統(tǒng)計(jì)方法實(shí)施例四的流程示意圖;
圖5為本發(fā)明提供的流量統(tǒng)計(jì)裝置實(shí)施例一的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
本發(fā)明實(shí)施例提供的流量統(tǒng)計(jì)方法,適用于客戶端播放器播放過程中推送信息的流量統(tǒng)計(jì),例如客戶端在播放離線前推送信息、離線暫停時(shí)推送信息、離線開機(jī)圖推送信息等場(chǎng)景的流量統(tǒng)計(jì)。
圖1為本發(fā)明提供的流量統(tǒng)計(jì)方法實(shí)施例一的流程示意圖,如圖1所示,本實(shí)施例的執(zhí)行主體為設(shè)置于客戶端的流量統(tǒng)計(jì)模塊,或者該流量統(tǒng)計(jì)模塊還可以設(shè)置于服務(wù)器上,該方法包括:
步驟101:獲取目標(biāo)設(shè)備客戶端發(fā)送的推送信息請(qǐng)求;
其中,所述推送信息請(qǐng)求包括:目標(biāo)服務(wù)器的地址以及請(qǐng)求類型。
需要說明的是,目標(biāo)設(shè)備客戶端是指需要統(tǒng)計(jì)的終端設(shè)備上的播放器客戶端,該目標(biāo)設(shè)備客戶端用于發(fā)送推送信息請(qǐng)求;終端設(shè)備例如可以為個(gè)人電腦、手機(jī)、IPad等,播放器包括但不限于優(yōu)酷播放器、暴風(fēng)影音等;目標(biāo)服務(wù)器用于接收推送信息請(qǐng)求,并進(jìn)行數(shù)據(jù)的處理響應(yīng)。流量統(tǒng)計(jì)模塊截獲客戶端發(fā)送的推送信息請(qǐng)求,該推送信息請(qǐng)求包括目標(biāo)服務(wù)器的地址以及請(qǐng)求的類型,還包括其他用于傳輸請(qǐng)求消息的數(shù)據(jù)報(bào)文字段等,以便目標(biāo)服務(wù)器接收該推送信息請(qǐng)求并返回響應(yīng)數(shù)據(jù)。
步驟102:根據(jù)推送信息請(qǐng)求獲取目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)。
在本步驟中,流量統(tǒng)計(jì)模塊截獲到該推送信息請(qǐng)求后,分析處理截獲的請(qǐng)求信息,并發(fā)送截獲的請(qǐng)求給目標(biāo)服務(wù)器,最后根據(jù)請(qǐng)求的類型,分別獲取服務(wù)器返回的基于不同請(qǐng)求類型的響應(yīng)數(shù)據(jù)。具體的,抓到推送信息請(qǐng)求后,首先,創(chuàng)建一個(gè)對(duì)象(如:flag)作為標(biāo)識(shí)符,數(shù)值為0,之后建立一個(gè)循環(huán),持續(xù)等待請(qǐng)求后返回?cái)?shù)據(jù)。如果返回了數(shù)據(jù)則將flag的值設(shè)置為1并且將循環(huán)時(shí)返回的所有數(shù)據(jù)保存,如果沒有數(shù)據(jù)返回則跳出循環(huán)。如此,可以計(jì)算本次請(qǐng)求返回的所有響應(yīng)數(shù)據(jù)。需要說明的是,在該過程中,流量統(tǒng)計(jì)模塊還統(tǒng)計(jì)不同請(qǐng)求類型的推送信息請(qǐng)求的數(shù)據(jù)長(zhǎng)度。
步驟103:根據(jù)推送信息請(qǐng)求及響應(yīng)數(shù)據(jù)統(tǒng)計(jì)流量大小。
在本步驟中,根據(jù)前面統(tǒng)計(jì)的不同類型的推送信息請(qǐng)求的數(shù)據(jù)長(zhǎng)度以及服務(wù)器返回的響應(yīng)數(shù)據(jù)長(zhǎng)度,可以獲取本次推送信息請(qǐng)求的總流量大小。
本實(shí)施例的流量統(tǒng)計(jì)方法,通過獲取目標(biāo)設(shè)備客戶端發(fā)送的推送信息請(qǐng)求以及目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),根據(jù)推送信息請(qǐng)求及響應(yīng)數(shù)據(jù)統(tǒng)計(jì)流量大小。該方法能夠自動(dòng)統(tǒng)計(jì)出客戶端發(fā)送各種推送信息請(qǐng)求時(shí)所消耗的流量大小,無需手動(dòng)抓取信息請(qǐng)求及響應(yīng)數(shù)據(jù),大大減少了推送信息流量測(cè)試的操作復(fù)雜度,且可以與自動(dòng)化測(cè)試結(jié)合使用。
圖2為本發(fā)明提供的流量統(tǒng)計(jì)方法實(shí)施例二的流程示意圖,如圖2所示,在實(shí)施例一的基礎(chǔ)上,步驟101獲取目標(biāo)設(shè)備客戶端發(fā)送的推送信息請(qǐng)求包括:
步驟1011:獲取終端設(shè)備的IP地址,綁定目標(biāo)設(shè)備。
步驟1012:?jiǎn)?dòng)監(jiān)聽程序,監(jiān)聽目標(biāo)設(shè)備上客戶端發(fā)送的推送信息請(qǐng)求。
該實(shí)施例可以通過各終端的IP地址來綁定目標(biāo)設(shè)備,從而有效監(jiān)聽目標(biāo)設(shè)備客戶端的推送信息請(qǐng)求。
圖3為本發(fā)明提供的流量統(tǒng)計(jì)方法實(shí)施例三的流程示意圖,如圖3所示,在實(shí)施例一的基礎(chǔ)上,步驟102包括:
步驟1021:根據(jù)推送信息請(qǐng)求,獲取目標(biāo)服務(wù)器的IP地址。
步驟1022:連接目標(biāo)服務(wù)器,將推送信息請(qǐng)求發(fā)送給目標(biāo)服務(wù)器。
步驟1023:根據(jù)推送信息請(qǐng)求的請(qǐng)求類型,獲取針對(duì)不同請(qǐng)求類型目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)。
該實(shí)施例中,流量統(tǒng)計(jì)模塊截獲客戶端發(fā)送的任意請(qǐng)求,分析處理截獲的請(qǐng)求信息,獲取目標(biāo)服務(wù)器的IP地址;創(chuàng)建socket連接到目標(biāo)服務(wù)器,發(fā)送截獲的請(qǐng)求給目標(biāo)服務(wù)器,并分別根據(jù)不同的請(qǐng)求類型獲取目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)。
進(jìn)一步的,在實(shí)施例三的基礎(chǔ)上,步驟1023包括:
判斷所述請(qǐng)求類型是否為離線前推送信息請(qǐng)求,若是離線前推送信息請(qǐng)求,則計(jì)算所述離線前推送信息請(qǐng)求的第一請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線前推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第一響應(yīng)數(shù)據(jù);創(chuàng)建第一文件,將所述離線前推送信息的第一預(yù)設(shè)字段錄入第一文件;
否則,判斷所述請(qǐng)求類型是否為離線暫停推送信息請(qǐng)求,若是離線暫停推送信息請(qǐng)求,則計(jì)算述離線暫停推送信息請(qǐng)求的第二請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線暫停推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第二響應(yīng)數(shù)據(jù);創(chuàng)建第二文件,將所述離線暫停推送信息的第一預(yù)設(shè)字段錄入所述第二文件;
否則當(dāng)所述請(qǐng)求類型非離線前推送信息請(qǐng)求及離線暫停推送信息請(qǐng)求時(shí),判斷所述請(qǐng)求類型是否為離線開機(jī)圖推送信息請(qǐng)求,若是離線開機(jī)圖推送信息請(qǐng)求,則計(jì)算所述離線開機(jī)圖推送信息請(qǐng)求的第三請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線開機(jī)圖推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第三響應(yīng)數(shù)據(jù);將所述離線開機(jī)圖推送信息的第一預(yù)設(shè)字段錄入所述第二文件。
進(jìn)一步的,所述方法還包括:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求時(shí),判斷所述第一文件中錄入的第一預(yù)設(shè)字段是否包含所述推送信息請(qǐng)求的超文本傳輸協(xié)議HTTP地址,如果包含所述HTTP地址,則獲取并分析所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
當(dāng)所述響應(yīng)數(shù)據(jù)為第一預(yù)設(shè)閾值時(shí),創(chuàng)建第三文件;
當(dāng)所述響應(yīng)數(shù)據(jù)為第二預(yù)設(shè)閾值時(shí),創(chuàng)建第四文件,并將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第四文件。
進(jìn)一步的,所述方法還包括:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求,且所述第一文件中錄入的第一預(yù)設(shè)字段不包含所述HTTP地址時(shí),判斷所述第三文件的第一預(yù)設(shè)字段是否包含所述HTTP地址,如果包含所述HTTP地址,將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第四文件。
進(jìn)一步的,所述方法還包括:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求,且所述第一文件中錄入的第一預(yù)設(shè)字段不包含所述HTTP地址以及所述第三文件的第一預(yù)設(shè)字段不包含所述HTTP地址時(shí),判斷所述第二文件中錄入的第一預(yù)設(shè)字段是否包含所述HTTP地址,如果包含所述HTTP地址,則獲取并分析所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
當(dāng)所述響應(yīng)數(shù)據(jù)為所述第二預(yù)設(shè)閾值時(shí),創(chuàng)建第五文件,并將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第五文件。
進(jìn)一步的,在上述實(shí)施例的基礎(chǔ)上,步驟103包括:
分別統(tǒng)計(jì)所述第一返回?cái)?shù)據(jù)、所述第二返回?cái)?shù)據(jù)以及所述第三返回?cái)?shù)據(jù)的長(zhǎng)度;
分別統(tǒng)計(jì)所述第四文件以及所述第五文件的數(shù)據(jù)大??;
計(jì)算所述第一請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第二請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第三請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第一返回?cái)?shù)據(jù)長(zhǎng)度、所述第二返回?cái)?shù)據(jù)長(zhǎng)度、所述第三返回?cái)?shù)據(jù)長(zhǎng)度、所述第四文件的數(shù)據(jù)大小以及所述第五文件的數(shù)據(jù)大小總和,得到流量大小。
圖4為本發(fā)明提供的流量統(tǒng)計(jì)方法實(shí)施例四的流程示意圖,如圖4所示,該方法包括以下步驟:
(1)截獲客戶端發(fā)送的任意請(qǐng)求,分析處理截獲的請(qǐng)求信息,獲取目標(biāo)服務(wù)器的ip地址
(2)創(chuàng)建socket連接到目標(biāo)服務(wù)器,發(fā)送截獲的請(qǐng)求給目標(biāo)服務(wù)器
(3)執(zhí)行第(2)步的同時(shí),判斷該請(qǐng)求是否是離線前推送信息的請(qǐng)求,如果是,則計(jì)算該離線前推送信息請(qǐng)求的數(shù)據(jù)長(zhǎng)度。如果不是,則判斷該請(qǐng)求是否是離線暫停推送信息的請(qǐng)求,如果是,則計(jì)算該離線暫停推送信息請(qǐng)求的數(shù)據(jù)長(zhǎng)度。如果不是,則判斷該請(qǐng)求是否是離線開機(jī)圖推送信息的請(qǐng)求,如果是,則計(jì)算該離線開機(jī)圖推送信息請(qǐng)求的數(shù)據(jù)長(zhǎng)度。
(4)第(3)步抓到離線前推送信息請(qǐng)求后,首先,創(chuàng)建一個(gè)對(duì)象(如:flag)作為標(biāo)識(shí)符,數(shù)值為0,之后建立一個(gè)循環(huán),持續(xù)等待推送信息請(qǐng)求后返回?cái)?shù)據(jù)。如果返回了數(shù)據(jù)則將flag的值設(shè)置為1并且將循環(huán)時(shí)返回的所有數(shù)據(jù)賦給全局變量self.preroll,如果沒有數(shù)據(jù)返回則跳出循環(huán)。
(5)第(4)步執(zhí)行完畢跳出循環(huán)后,如果flag取值為1,則計(jì)算本次返回的離線前推送信息的個(gè)數(shù),在流量測(cè)試工具的根目錄下創(chuàng)建RSvideolist.txt及monitorlist.txt,遍歷每個(gè)離線前推送信息數(shù)據(jù)中的RS字段值,將該值寫入到RSvideolist.txt中。遍歷每個(gè)離線前推送信息數(shù)據(jù)中的SUS、SU及SUE字段值,將三個(gè)字段的值記錄到monitorlist.txt中。
(6)計(jì)算本次離線前推送信息請(qǐng)求返回?cái)?shù)據(jù)后,全局變量self.proerll的大小。
(7)執(zhí)行第(3)步時(shí)如果判斷請(qǐng)求非離線推送信息請(qǐng)求,則判斷RSvideolist.txt中存放的RS字段值中是否包含本次請(qǐng)求的http地址,如果包含則分析本次請(qǐng)求的返回?cái)?shù)據(jù),如果返回?cái)?shù)據(jù)的響應(yīng)是302,則找到location的字段值,創(chuàng)建videoreal.txt文件,將值寫到videoreal.txt文件中。如果返回?cái)?shù)據(jù)響應(yīng)是200,則創(chuàng)建RSvideoflow.txt,找到content-length字段,將其字段的取值寫入到RSvideoflow.txt中。
(8)執(zhí)行第(3)步時(shí)如果判斷請(qǐng)求既不是離線推送信息請(qǐng)求,也不包含在RSvideolist.txt中,那么要判斷是否包含在videoreal.txt文件中,如果包含,則找到content-length字段,將其字段的取值寫入到RSvideoflow.txt中。
(9)第(3)步抓到離線暫停推送信息請(qǐng)求后,首先,創(chuàng)建一個(gè)對(duì)象(如:flag)作為標(biāo)識(shí)符,數(shù)值為0,之后建立一個(gè)循環(huán),持續(xù)等待推送信息請(qǐng)求后返回?cái)?shù)據(jù)。如果返回了數(shù)據(jù)則將flag的值設(shè)置為1并且將循環(huán)時(shí)返回的所有數(shù)據(jù)賦給全局變量self.pause,如果沒有數(shù)據(jù)返回則跳出循環(huán)。
(10)第(9)步執(zhí)行完畢跳出循環(huán)后,如果flag取值為1,則計(jì)算本次返回的離線暫停推送信息的個(gè)數(shù),在流量測(cè)試工具的根目錄下創(chuàng)建RSpiclist.txt,遍歷每個(gè)離線暫停推送信息數(shù)據(jù)中的RS字段值,將該值寫入到RSpiclist.txt中,遍歷每個(gè)離線暫停推送信息數(shù)據(jù)中的SUS字段值,將字段的值記錄到monitorlist.txt中。
(11)計(jì)算本次離線暫停推送信息請(qǐng)求返回?cái)?shù)據(jù)后,全局變量self.pause的大小。
(12)執(zhí)行第(3)步時(shí)如果判斷請(qǐng)求非離線推送信息請(qǐng)求,則判斷RSpiclist.txt中存放的RS字段值中是否包含本次請(qǐng)求的http地址,如果包含則分析本次請(qǐng)求的返回?cái)?shù)據(jù),如果返回?cái)?shù)據(jù)響應(yīng)是200,則創(chuàng)建RSflow.txt,找到content-length字段,將其字段的取值寫入到RSflow.txt中。
(13)第(3)步抓到離線開機(jī)圖推送信息請(qǐng)求后,首先,創(chuàng)建一個(gè)對(duì)象(如:flag)作為標(biāo)識(shí)符,數(shù)值為0,之后建立一個(gè)循環(huán),持續(xù)等待推送信息請(qǐng)求后返回?cái)?shù)據(jù)。如果返回了數(shù)據(jù)則將flag的值設(shè)置為1并且將循環(huán)時(shí)返回的所有數(shù)據(jù)賦給全局變量self.display,如果沒有數(shù)據(jù)返回則跳出循環(huán)。
(14)第(13)步執(zhí)行完畢跳出循環(huán)后,如果flag取值為1,則計(jì)算本次返回的離線開機(jī)圖推送信息的個(gè)數(shù),遍歷每個(gè)離線開機(jī)圖推送信息數(shù)據(jù)中的RS字段值,將該值寫入到RSpiclist.txt中,遍歷每個(gè)離線開機(jī)圖推送信息數(shù)據(jù)中的SUS字段值,將字段的值記錄到monitorlist.txt中。
(15)計(jì)算本次離線開機(jī)圖推送信息請(qǐng)求返回?cái)?shù)據(jù)后,全局變量self.display的大小。
圖5為本發(fā)明提供的流量統(tǒng)計(jì)裝置實(shí)施例一的結(jié)構(gòu)示意圖,如圖5所示,所述裝置包括:
獲取模塊11,用于獲取目標(biāo)設(shè)備客戶端發(fā)送的推送信息請(qǐng)求,所述推送信息請(qǐng)求包括:目標(biāo)服務(wù)器的地址以及請(qǐng)求類型;
所述獲取模塊11還用于根據(jù)所述推送信息請(qǐng)求獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
統(tǒng)計(jì)模塊12,用于根據(jù)所述推送信息請(qǐng)求及所述響應(yīng)數(shù)據(jù)統(tǒng)計(jì)流量大小。
進(jìn)一步的,所述獲取模塊11具體用于:
獲取終端設(shè)備的網(wǎng)絡(luò)協(xié)議IP地址,綁定目標(biāo)設(shè)備;
啟動(dòng)監(jiān)聽程序,監(jiān)聽所述目標(biāo)設(shè)備上客戶端發(fā)送的推送信息請(qǐng)求。
進(jìn)一步的,所述獲取模塊11具體用于:
根據(jù)所述推送信息請(qǐng)求,獲取所述目標(biāo)服務(wù)器的IP地址;
連接所述目標(biāo)服務(wù)器,將所述推送信息請(qǐng)求發(fā)送給所述目標(biāo)服務(wù)器;
根據(jù)所述推送信息請(qǐng)求的請(qǐng)求類型,獲取針對(duì)不同請(qǐng)求類型所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)。
進(jìn)一步的,所述獲取模塊11具體用于:
判斷所述請(qǐng)求類型是否為離線前推送信息請(qǐng)求,若是離線前推送信息請(qǐng)求,則計(jì)算所述離線前推送信息請(qǐng)求的第一請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線前推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第一響應(yīng)數(shù)據(jù);創(chuàng)建第一文件,將所述離線前推送信息的第一預(yù)設(shè)字段錄入第一文件;
否則,判斷所述請(qǐng)求類型是否為離線暫停推送信息請(qǐng)求,若是離線暫停推送信息請(qǐng)求,則計(jì)算述離線暫停推送信息請(qǐng)求的第二請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線暫停推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第二響應(yīng)數(shù)據(jù);創(chuàng)建第二文件,將所述離線暫停推送信息的第一預(yù)設(shè)字段錄入所述第二文件;
否則當(dāng)所述請(qǐng)求類型非離線前推送信息請(qǐng)求及離線暫停推送信息請(qǐng)求時(shí),判斷所述請(qǐng)求類型是否為離線開機(jī)圖推送信息請(qǐng)求,若是離線開機(jī)圖推送信息請(qǐng)求,則計(jì)算所述離線開機(jī)圖推送信息請(qǐng)求的第三請(qǐng)求數(shù)據(jù)長(zhǎng)度;持續(xù)獲取所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù),直到不再獲取到所述離線開機(jī)圖推送信息請(qǐng)求,統(tǒng)計(jì)獲取到的所有響應(yīng)數(shù)據(jù),得到第三響應(yīng)數(shù)據(jù);將所述離線開機(jī)圖推送信息的第一預(yù)設(shè)字段錄入所述第二文件。
進(jìn)一步的,所述獲取模塊11還用于:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求時(shí),判斷所述第一文件中錄入的第一預(yù)設(shè)字段是否包含所述推送信息請(qǐng)求的超文本傳輸協(xié)議HTTP地址,如果包含所述HTTP地址,則獲取并分析所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
當(dāng)所述響應(yīng)數(shù)據(jù)為第一預(yù)設(shè)閾值時(shí),創(chuàng)建第三文件;
當(dāng)所述響應(yīng)數(shù)據(jù)為第二預(yù)設(shè)閾值時(shí),創(chuàng)建第四文件,并將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第四文件。
進(jìn)一步的,所述獲取模塊11還用于:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求,且所述第一文件中錄入的第一預(yù)設(shè)字段不包含所述HTTP地址時(shí),判斷所述第三文件的第一預(yù)設(shè)字段是否包含所述HTTP地址,如果包含所述HTTP地址,將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第四文件。
進(jìn)一步的,所述獲取模塊11還用于:
當(dāng)所述請(qǐng)求類型為非離線推送信息請(qǐng)求,且所述第一文件中錄入的第一預(yù)設(shè)字段不包含所述HTTP地址以及所述第三文件的第一預(yù)設(shè)字段不包含所述HTTP地址時(shí),判斷所述第二文件中錄入的第一預(yù)設(shè)字段是否包含所述HTTP地址,如果包含所述HTTP地址,則獲取并分析所述目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù);
當(dāng)所述響應(yīng)數(shù)據(jù)為所述第二預(yù)設(shè)閾值時(shí),創(chuàng)建第五文件,并將所述推送信息請(qǐng)求的第二預(yù)設(shè)字段錄入所述第五文件。
進(jìn)一步的,所述統(tǒng)計(jì)模塊12用于:
分別統(tǒng)計(jì)所述第一返回?cái)?shù)據(jù)、所述第二返回?cái)?shù)據(jù)以及所述第三返回?cái)?shù)據(jù)的長(zhǎng)度;
分別統(tǒng)計(jì)所述第四文件以及所述第五文件的數(shù)據(jù)大小;
計(jì)算所述第一請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第二請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第三請(qǐng)求數(shù)據(jù)長(zhǎng)度、所述第一返回?cái)?shù)據(jù)長(zhǎng)度、所述第二返回?cái)?shù)據(jù)長(zhǎng)度、所述第三返回?cái)?shù)據(jù)長(zhǎng)度、所述第四文件的數(shù)據(jù)大小以及所述第五文件的數(shù)據(jù)大小總和,得到流量大小。
本發(fā)明實(shí)施例還提供一種流量統(tǒng)計(jì)系統(tǒng),包括客戶端、服務(wù)器以及上述的流量統(tǒng)計(jì)裝置,所述客戶端用于向所述服務(wù)器發(fā)送推送信息請(qǐng)求,所述服務(wù)器用于根據(jù)所述推送信息請(qǐng)求返回響應(yīng)數(shù)據(jù)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。