一種無線信息獲取的自動化測試裝置及方法與流程
2023-09-23 09:22:40

本發明涉及一種自動化測試方法及系統,特別是涉及一種無線信息獲取的自動化測試裝置及方法。
背景技術:
隨著越來越多的手機廠商、運營商、開發商加入android陣營,android市場的應用數量增長迅速。然而,這都離不開測試,因此android自動化測試的需求愈加迫切。
目前自動化測試手機的工具有很多,例如:monkey、monkeyrunner、instrumentation、uiautomator、appium等。這些工具都可以用來模擬按鍵按下、抬起、屏幕點擊、滾動等事件,但對於手機無線流量、ping丟包率、ping時延、連接速率、信號強度等信息的測試不太適用。
技術實現要素:
為克服上述現有技術存在的不足,本發明之目的在於提供一種無線信息獲取的自動化測試裝置及方法,以達到在pc端就可實現手機無線流量、ping丟包率、ping時延、連接速率、信號強度等無線信息自動化測試的目的。
為達上述目的,本發明提出一種無線信息獲取的自動化測試裝置,設置於行動裝置端,用於與客戶端進行數據傳輸,包括:
連接建立單元,用於接收客戶端的建立連接請求,發送相應的響應信息至客戶端以與客戶端建立連接;
無線信息獲取單元,於接收到客戶端的無線信息獲取請求,對該無線信息獲取請求進行處理,利用所述自動化測試裝置提供的多個接口獲取相應的無線信息;
無線信息反饋單元,用於將獲取的無線信息反饋至該客戶端;
所述無線信息包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等的部分或全部。
進一步地,所述無線信息獲取單元通過多個接口獲取的無線信息包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等的部分或全部。
進一步地,所述無線信息獲取單元進一步包括:
無線連接信息獲取單元,用於該無線信息獲取請求為無線連接信息獲取請求時,則進行處理以獲取無線連接信息;
下行無線流量獲取單元,用於該無線信息獲取請求為下行無線流量獲取請求時,則進行處理以獲取下行無線流量;
上行無線流量獲取單元,用於該無線信息獲取請求為上行無線流量獲取請求時,則進行處理以獲取上行無線流量;
ping網絡延遲/丟包率獲取單元,用於該無線信息獲取請求為ping網絡延遲或丟包率獲取請求時,則對其進行處理以獲取ping網絡延遲或丟包率。
進一步地,該下行無線流量獲取單元首先獲取從該自動化測試裝置連接上無線後接收的總流量,並於下一秒之後再次獲取接收到的總流量,然後將兩次的值相減,獲得該下行無線流量。
進一步地,該上行無線流量獲取單元首先獲取從該自動化測試裝置連接上無線後發送的總流量,並於下一秒之後再次獲取發送的總流量,然後將兩次的值相減,獲得該上行無線流量。
進一步地,所述客戶端包括:
連接關閉單元,用於向自動化測試裝置發送關閉連接請求,並於接收到自動化測試裝置的響應信息後關閉與自動化測試裝置的連接,結束測試;
廣播發送單元,用於向自動化測試裝置發送廣播,所述自動化測試裝置接收該客戶端發送的廣播,通過過濾器篩選廣播,並根據廣播執行相應的動作;所述相應的動作包括無線的使能和無線的連接。
為達到上述目的,本發明還提供一種無線信息獲取的自動化測試方法,包括如下步驟:
步驟一,接收客戶端發送的連接請求,對連接請求進行響應以與客戶端建立連接;
步驟二,接收客戶端發送的無線信息獲取請求,利用所述自動化測試裝置提供的多個接口獲取相應的無線信息;
步驟三,將獲取的無線信息反饋至客戶端;
所述無線信息包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等的部分或全部。
進一步地,步驟二進一步包括:
若該無線信息獲取請求為無線連接信息獲取請求時,則對其進行處理以獲取無線連接信息;
若該無線信息獲取請求為下行無線流量獲取請求時,則對其進行處理以獲取下行無線流量;
若該無線信息獲取請求為上行無線流量獲取請求時,則對其進行處理以獲取上行無線流量;
若該無線信息獲取請求為ping網絡延遲或丟包率獲取請求時,則對其進行處理以獲取ping網絡延遲或丟包率。
進一步地,所述獲取下行流量的步驟為首先獲取從該自動化測試裝置連接上無線後接收的總流量,並於下一秒之後再次獲取接收到的總流量,然後將兩次的值相減,獲得該下行無線流量。
進一步地,所述獲取上行流量的步驟為首先獲取從該自動化測試裝置連接上無線後發送的總流量,並於下一秒之後再次獲取發送的總流量,然後將兩次的值相減,獲得該上行無線流量。
進一步地,在步驟一前,客戶端向自動化測試裝置發送廣播,所述自動化測試裝置接收該客戶端發送的廣播,通過過濾器篩選廣播,並根據廣播執行相應的動作,所述相應的動作包括無線的使能和無線的連接;
步驟四、向自動化測試裝置發送關閉連接請求,並於接收到自動化測試裝置的響應信息後關閉與自動化測試裝置的連接,結束測試。
與現有技術相比,本發明一種無線信息獲取的自動化測試裝置及方法通過利用設置於手機端的自動化測試裝置設置多個接口,分別用來獲取手機無線流量、ping丟包率、ping時延、連接速率、信號強度,並利用設置於pc端的無線客戶端與手機端的自動化測試裝置進行通信,調用接口實現獲取相關無線信息,實現測試手機連接的無線路由器的性能和功能的目的,進而達到在pc端就可以監聽手機無線流量、無線信號強度和連接速率、獲取ping網絡延遲和ping丟包率的目的,並且在pc端就可以控制手機無線的連接和開關。
附圖說明
圖1為本發明一種無線信息獲取的自動化測試裝置的系統架構圖;
圖2為本發明具體實施例中無線信息獲取單元102的細部結構圖
圖3為本發明之自動化測試裝置所應用之測試系統的系統架構圖;
圖4為本發明具體實施例中客戶端20的細部結構圖;
圖5為本發明具體實施例中自動化測試裝置與無線客戶端的socket交互流程圖;
圖6為本發明具體實施例中安卓手機的自動化測試裝置獲取無線信息的流程圖;
圖7為本發明具體實施例中無線客戶端發送廣播、自動化測試裝置端監聽廣播執行無線開關與連接的流程圖;;
圖8為本發明一種無線信息獲取的自動化測試方法的步驟流程圖;
圖9為本發明具體實施例之自動化測試方法的步驟流程圖。
具體實施方式
以下通過特定的具體實例並結合附圖說明本發明的實施方式,本領域技術人員可由本說明書所揭示的內容輕易地了解本發明的其它優點與功效。本發明亦可通過其它不同的具體實例加以施行或應用,本說明書中的各項細節亦可基於不同觀點與應用,在不背離本發明的精神下進行各種修飾與變更。
圖1為本發明一種無線信息獲取的自動化測試裝置的系統架構圖。如圖1所示,本發明一種無線信息獲取的自動化測試裝置,應用於行動裝置端,包括:連接建立單元101、無線信息獲取單元102以及無線信息反饋單元103。
其中,連接建立單元101,用於接收客戶端的建立連接請求,發送相應的響應信息至客戶端以與客戶端建立連接;無線信息獲取單元102,用於接收到客戶端的無線信息獲取請求,對該無線信息獲取請求進行處理,獲取相應的無線信息,這裡的無線信息包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等的部分或全部;無線信息反饋單元103,用於將獲取的無線信息反饋至客戶端,在本發明具體實施例中,客戶端設置於pc電腦端,這樣在pc端就可以監聽手機無線流量、無線信號強度和連接速率、獲取ping網絡延遲和ping丟包率
具體地,如圖2所示,無線信息獲取單元102進一步包括:
無線連接信息獲取單元1020,用於該無線信息獲取請求為無線連接信息獲取請求時,則進行處理以獲取無線連接信息;以該自動化測試裝置設置於安卓手機為例,當客戶端通過socket將字符串」conninfo」發送給安卓手機上的自動化測試裝置後,無線連接信息獲取單元1020則會調用android.net.wifi.wifimanager的方法getconnectioninfo來獲取無線連接信息,例如無線信號強度、無線名稱、無線mac地址、無線連接速率等。
下行無線流量獲取單元1021,用於該無線信息獲取請求為下行無線流量獲取請求時,則首先獲取從自動化測試裝置連接上無線後接收的總流量,並於下一秒之後再次獲取此值,然後將兩次的值相減,獲得下行無線流量,具體地,當客戶端通過socket將字符串」rxbytes」發送給安卓手機上的自動化測試裝置後,下行無線流量獲取單元1021則會調用android.net.trafficstats類的gettotalrxbytes來獲取從手機連接上無線後接收的總流量,並於下一秒之後再次獲取此值,然後將兩次值相減,即獲得下行無線流量。
上行無線流量獲取單元1022,用於該無線信息獲取請求為上行無線流量獲取請求時,則首先獲取從自動化測試裝置連接上無線後發送的總流量,並於下一秒之後再次獲取此值,然後將兩次的值相減,獲得上行無線流量,當客戶端通過socket將字符串」txbytes」發送給安卓手機上的自動化測試裝置後,上行無線流量獲取單元1022則會調用android.net.trafficstats類的gettotaltxbytes來獲取從手機連接上無線後發送的總流量,並於一秒之後再次獲取此值,然後將兩值相減,即獲得上行無線流量。
ping網絡延遲/丟包率獲取單元1023,用於該無線信息獲取請求為ping網絡延遲或丟包率獲取請求時,則對其進行處理以獲取ping網絡延遲或丟包率。在本發明具體實施例中,ping網絡延遲/丟包率獲取單元1023可調用python的subprocesspopen庫和手機的adb命令接口adbping*.*.*.*來獲取ping網絡延遲,或調用python的subprocesspopen庫和手機的adb命令接口adbping*.*.*.*來獲取ping丟包率。
圖3為本發明之自動化測試裝置所應用之測試系統的系統架構圖。本發明所應用之測試系統,包括:客戶端20以及自動化測試裝置21。
其中,客戶端20,設置於pc電腦端,用於向自動化測試裝置21發送連接請求,並於接收到自動化測試裝置21的響應信息時與自動化測試裝置21建立連接,在與自動化測試裝置21建立連接後,向自動化測試裝置21發送無線信息獲取請求以請求獲取自動化測試裝置21的無線信息,接收自動化測試裝置21反饋的無線信息,這裡的無線信息包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等中的部分或全部,在本發明具體實施例中,客戶端20設置於pc電腦端,其可以為無線客戶端,較佳地,客戶端20還用於向自動化測試裝置21發送關閉連接請求,並於接收到自動化測試裝置21的響應信息後關閉與自動化測試裝置21的連接,結束測試。客戶端20還用於向自動化測試裝置21發送廣播,由自動化測試裝置21即廣播接收者通過過濾器來篩選廣播,並根據監聽到的廣播執行相應的動作,在本發明具體實施例中,廣播則定義為無線的使能和無線的連接,這樣在pc電腦端就可以控制行動裝置如手機無線的連接和開關。
自動化測試裝置21,用於向客戶端20發送響應信息以與客戶端20建立連接,於接收到無線信息獲取請求時,對該請求進行處理,獲取包含無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等中的部分或全部的無線信息,並將其反饋至客戶端20。
圖4為本發明具體實施例中客戶端20的細部結構圖。如圖4所示,客戶端20進一步包括:無線連接請求單元201,用於向自動化測試裝置發送連接請求,並於接收到自動化測試裝置的響應信息時與自動化測試裝置建立連接,在本發明具體實施例中,自動化測試裝置設置於行動裝置例如手機端;無線信息請求單元202,在與自動化測試裝置建立連接後,向自動化測試裝置發送無線信息獲取請求,以請求獲取自動化測試裝置的無線信息,這裡的無線信息包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等中的部分或全部;回應數據獲取單元203,用於接收自動化測試裝置反饋的無線信息,也就是說,自動化測試裝置於接收到無線信息請求單元202發送的無線信息獲取請求時,即處理該無線信息獲取請求,獲取包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等中的部分或全部的無線信息,並將其反饋至回應數據獲取單元203,這樣就可以根據獲得的無線信息監聽手機無線流量、無線信號強度和連接速率、獲取ping網絡延遲和ping丟包率。
較佳地,客戶端20還包括連接關閉單元,用於向自動化測試裝置發送關閉連接請求,並於接收到自動化測試裝置的響應信息後關閉與自動化測試裝置的連接,結束測試。
較佳地,該客戶端20還包括廣播發送單元,用於向自動化測試裝置發送廣播,自動化測試裝置接收到廣播後,先通過過濾器篩選廣播,然後根據廣播執行相應的動作,在本發明具體實施例中,廣播則定義為無線的使能和無線的連接。
圖5為本發明具體實施例中自動化測試裝置與無線客戶端的socket交互流程圖。在本發明具體實施例中,自動化測試裝置設置於安卓手機上,其提供的接口有無線網絡流量獲取、無線連接速率獲取、無線信號強度獲取、無線的開與關、無線的連接、ping網絡的延遲和丟包率的獲取,無線客戶端設置於pc電腦端,客戶端與安卓手機上的自動化測試裝置之間建立socket通信。
安裝在安卓手機端的自動化測試裝置監聽指定的埠,等待運行在pc的無線客戶端連接,於建立連接之後,自動化測試裝置會一直讀取無線客戶端發來的請求(請求無線數據),自動化測試裝置會處理請求,通過多個接口獲取無線信息,並將無線信息回復給無線客戶端,無線客戶端讀取反饋的無線信息之後會繼續發送請求給自動化測試裝置,一直循環往復,直到無線客戶端發送關閉連接請求,整個交互結束。
圖6為本發明具體實施例中安卓手機的自動化測試裝置獲取無線信息的流程圖,當pc上的無線客戶端通過socket將字符串」conninfo」發送給安卓手機上的自動化測試裝置後,自動化測試裝置就會調用android.net.wifi.wifimanager的方法getconnectioninfo來獲取無線連接信息,這裡的無線連接信息包括無線信號強度、無線名稱、無線mac地址、無線連接速率等。
當pc上的無線客戶端通過socket將字符串」rxbytes」發送給安卓手機上的自動化測試裝置後,自動化測試裝置就會調用android.net.trafficstats類的gettotalrxbytes來獲取從手機連接上無線後接收的總流量,下一秒之後再次獲取此值,然後相減,即為下行無線流量。
當pc上的無線客戶端通過socket將字符串」txbytes」發送給安卓手機上的自動化測試裝置後,自動化測試裝置就會調用android.net.trafficstats類的gettotaltxbytes來獲取從手機連接上無線後發送的總流量,一秒之後再次獲取此值,然後相減,即為上行無線流量。
另外,pc端的無線客戶端通過adbshellambroadcast發送廣播,安卓手機上的自動化測試裝置即廣播接收者通過過濾器中action來篩選廣播。這些廣播定義為無線的使能和無線的連接。安卓手機監聽到廣播後就會去執行相應的動作。圖7為本發明具體實施例中無線客戶端發送廣播、自動化測試裝置端監聽廣播執行無線開關與連接的流程圖。安卓手機上的自動化測試裝置運行後會監聽廣播,這些廣播定義為」wifi-enable」、「wifi-disable」、「wifi-connect」,具體地,
pc端的無線客戶端通過adb命令」adbambroadcast-awifi-enable」來控制安卓手機上的自動化測試裝置去通過android.net.wifi.wifimanager的方法setwifienabled(true)來開啟無線。
pc端的無線客戶端通過adb命令」adbambroadcast-awifi-disable」來控制安卓手機上的自動化測試裝置去通過android.net.wifi.wifimanager的方法setwifienabled(false)來關閉無線。
pc端的無線客戶端通過adb命令」adbambroadcast-awifi-connect」來控制安卓手機上的自動化測試裝置去通過android.net.wifi.wifimanager的方法enablenetwork(netid,true)來連接無線。
圖8為本發明一種無線信息獲取的自動化測試方法的步驟流程圖。如圖8所示,本發明一種無線信息獲取的自動化測試方法,應用於自動化測試裝置,包括如下步驟:
步驟801,利用自動化測試裝置接收客戶端發送的連接請求,對連接請求進行響應以與客戶端建立連接。在本發明具體實施例中,自動化測試裝置設置於行動裝置例如手機端,客戶端設置於pc端;
步驟802,該自動化測試裝置接收客戶端發送的無線信息獲取請求,根據請求通過多個接口獲取自動化測試裝置的無線信息,這裡的無線信息包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等中的部分或全部;
步驟803,將獲取的相應的無線信息反饋至客戶端以獲得該無線信息。這裡的無線信息包括無線流量、ping網絡的丟包率、ping網絡時延、無線連接速率以及無線信號強度等的部分或全部。
具體地,步驟802進一步包括:
若該無線信息獲取請求為無線連接信息獲取請求時,則對其進行處理以獲取無線連接信息,該無線連接信息包括無線信號強度、無線名稱、無線mac地址、無線連接速率等的部分或全部;以自動化測試裝置設置於安卓手機為例,當接收到客戶端通過socket發送的無線信息獲取請求為字符串」conninfo」時,則調用android.net.wifi.wifimanager的方法getconnectioninfo來獲取無線連接信息,例如無線信號強度、無線名稱、無線mac地址、無線連接速率等。
若該無線信息獲取請求為下行無線流量獲取請求時,則首先獲取從自動化測試裝置連接上無線後接收的總流量,並於下一秒之後再次獲取此值,然後將兩次的值相減,獲得下行無線流量。也就是說,當接收到客戶端通過socket發送的無線信息獲取請求為字符串」rxbytes」時,則調用android.net.trafficstats類的gettotalrxbytes來獲取從手機連接上無線後接收的總流量,並於下一秒之後再次獲取此值,然後將兩次值相減,即獲得下行無線流量。
若該無線信息獲取請求為上行無線流量獲取請求時,則首先獲取從自動化測試裝置連接上無線後發送的總流量,並於下一秒之後再次獲取此值,然後將兩次的值相減,獲得上行無線流量。也就是說,當接收到客戶端通過socket發送的無線信息獲取請求為字符串」txbytes」時,則調用android.net.trafficstats類的gettotaltxbytes來獲取從手機連接上無線後發送的總流量,並於一秒之後再次獲取此值,然後將兩值相減,即獲得上行無線流量。
若該無線信息獲取請求為ping網絡延遲獲取請求時,則調用python的subprocesspopen庫和手機的adb命令接口adbping*.*.*.*來獲取ping網絡延遲,並保存本地。
若該無線信息獲取請求為ping丟包率獲取請求時,則調用python的subprocesspopen庫和手機的adb命令接口adbping*.*.*.*來獲取ping丟包率,並保存於本地。
較佳地,於步驟803之後,還包括:
所述客戶端接收自動化測試裝置反饋的無線信息,並返回至步驟802,直至測試結束。
較佳地,本發明之無線信息獲取的自動化測試方法還包括如下步驟:
接收客戶端發送的連接關閉請求,並對該連接關閉請求進行響應以關閉與客戶端的連接,結束測試。
較佳地,於步驟802之前,本發明之無線信息獲取的自動化測試方法,還包括如下步驟:
接收向客戶端發送的廣播;
根據廣播執行相應的動作。在本發明具體實施例中,與接收到客戶端的廣播後,首先會通過過濾器中action來篩選廣播,篩選後再根據廣播執行相應的動作。這裡廣播則定義為無線的使能和無線的連接。
圖9為本發明具體實施例之自動化測試方法的步驟流程圖。在本發明具體實施例中,該自動化測試裝置設置於安卓手機端,無線客戶端設置於pc端,如圖9所示,該自動化測試方法如下:
1、無線客戶端與手機端的自動化測試裝置建立連接,建立socket通信;
2、判斷手機電量是否低於5%,若低於5%,則結束測試,否則進入3;
3、確定當前時間time1;
4、無線客戶端通過adbshellambroadcast發送廣播控制設置自動化測試裝置的手機無線使能;
5、無線客戶端通過adbshellambroadcast發送廣播控制設置自動化測試裝置的手機連接無線;
6、手機端的自動化測試裝置調用python的subprocesspopen庫和手機的adb命令接口adbping*.*.*.*來獲取ping網絡延遲,並保存本地;
7、手機端的自動化測試裝置調用python的subprocesspopen庫和手機的adb命令接口adbping*.*.*.*來獲取ping丟包率,並保存本地;
8、pc端的無線客戶端通過socket發送字符串」rxbytes」給手機的自動化測試裝置,自動化測試裝置獲取下行流量,並保存本地;
9、pc端的無線客戶端通過socket發送字符串」txbytes」給手機的自動化測試裝置,自動化測試裝置獲取上行流量,並保存本地;
10、pc端的無線客戶端通過socket發送字符串」conninfo」給手機的自動化測試裝置,獲取無線信號強度和連接速率
11、記下當前時間time2,等待60s-time2-time1,並返回至2,在本發明具體實施例中,計算循環開始到循環結束用了多少秒,為了保證整個循環保持在1分鐘內,所以用60s減去用時,然後等待這麼長時間。
綜上所述,本發明一種無線信息獲取的自動化測試裝置及方法通過利用設置於手機端的自動化測試裝置設置多個接口,分別用來獲取手機無線流量、ping丟包率、ping時延、連接速率、信號強度,並利用設置於pc端的無線客戶端與手機端的自動化測試裝置進行通信,調用接口實現獲取相關無線信息,實現測試手機連接的無線路由器的性能和功能的目的,進而達到在pc端就可以監聽手機無線流量、無線信號強度和連接速率、獲取ping網絡延遲和ping丟包率的目的,並且在pc端就可以控制手機無線的連接和開關。
任何本領域技術人員均可在不違背本發明的精神及範疇下,對上述實施例進行修飾與改變。因此,本發明的權利保護範圍,應如權利要求書所列。