本公開涉及計算機應(yīng)用領(lǐng)域,特別涉及一種實現(xiàn)網(wǎng)絡(luò)場景模擬的方法和裝置。
背景技術(shù):
終端中網(wǎng)絡(luò)場景往往較為復(fù)雜,比如,存在著有網(wǎng)切換至無網(wǎng)、無網(wǎng)切換至有網(wǎng)的狀況,在有網(wǎng)條件下還存在多種網(wǎng)絡(luò)類型的相互切換,并且隨著用戶的不同,所發(fā)生與網(wǎng)絡(luò)相關(guān)的切換也各不相同。
而終端中應(yīng)用的很多功能都涉及網(wǎng)絡(luò),而這些功能在開發(fā)過程中,往往由于未考慮終端中的復(fù)雜網(wǎng)絡(luò)場景,因此即便進行了嚴(yán)格的應(yīng)用測試,仍然會在后續(xù)的正常運行中由于復(fù)雜網(wǎng)絡(luò)而引發(fā)各種問題。
具體而言,應(yīng)用的測試,即開發(fā)過程中應(yīng)用的內(nèi)部測試階段,并無法覆蓋終端中的復(fù)雜網(wǎng)絡(luò)場景。也就是說,執(zhí)行應(yīng)用測試所在的網(wǎng)絡(luò)場景,與終端中真實存在的復(fù)雜網(wǎng)絡(luò)場景并不相符,進而必然導(dǎo)致應(yīng)用測試中無法發(fā)現(xiàn)由于復(fù)雜網(wǎng)絡(luò)場景而引發(fā)的各種問題。
因此,亟待解決應(yīng)用測試中網(wǎng)絡(luò)場景與終端中復(fù)雜網(wǎng)絡(luò)場景不相符的缺陷,即亟待實現(xiàn)網(wǎng)絡(luò)場景的模擬。
技術(shù)實現(xiàn)要素:
為了解決相關(guān)技術(shù)中應(yīng)用測試所在網(wǎng)絡(luò)場景與真實存在的復(fù)雜網(wǎng)絡(luò)場景不相符的技術(shù)問題,本公開提供了一種實現(xiàn)網(wǎng)絡(luò)場景模擬的方法和裝置。
一種實現(xiàn)網(wǎng)絡(luò)場景模擬的方法,所述方法包括:
按照配置的限定值進行隨機數(shù)生成,得到處于所述限定值限定范圍的隨機數(shù);
在處于已連接網(wǎng)絡(luò)狀態(tài)時,根據(jù)所述隨機數(shù)與網(wǎng)絡(luò)切換概率對應(yīng)范圍二者之間的關(guān)系生成網(wǎng)絡(luò)連接修改指令;
根據(jù)所述網(wǎng)絡(luò)連接修改指令修改與網(wǎng)絡(luò)連接相關(guān)的返回值,通過所述返回值的修改模擬網(wǎng)絡(luò)場景。
一種實現(xiàn)網(wǎng)絡(luò)場景模擬的裝置,所述裝置包括:
隨機數(shù)生成模塊,用于按照配置的限定值進行隨機數(shù)生成,得到處于所述限定值限定范圍的隨機數(shù);
指令生成模塊,用于在處于已連接網(wǎng)絡(luò)狀態(tài)時,根據(jù)所述隨機數(shù)與網(wǎng)絡(luò)切換概率對應(yīng)范圍二者之間的關(guān)系生成網(wǎng)絡(luò)連接修改指令;
返回值修改模塊,用于根據(jù)所述網(wǎng)絡(luò)連接修改指令修改與網(wǎng)絡(luò)連接相關(guān)的返回值,通過所述返回值的修改模擬網(wǎng)絡(luò)場景。
本公開的實施例提供的技術(shù)方案可以包括以下有益效果:
為實現(xiàn)真實存在的復(fù)雜網(wǎng)絡(luò)場景的模擬,按照配置的限定值進行隨機數(shù)的生成,得到處于限定值限定范圍的隨機數(shù),在處于已連接狀態(tài)時,根據(jù)隨機數(shù)與網(wǎng)絡(luò)切換概率對應(yīng)范圍二者之間的關(guān)系生成網(wǎng)絡(luò)連接修改指令,根據(jù)網(wǎng)絡(luò)連接修改指令修改與網(wǎng)絡(luò)連接相關(guān)的返回值,此時通過返回值的修改便模擬了網(wǎng)絡(luò)場景,與網(wǎng)絡(luò)連接相關(guān)返回值的修改,便隨之模擬了網(wǎng)絡(luò)連接相關(guān)的切換,因此,所模擬的網(wǎng)絡(luò)場景,是在隨機數(shù)和網(wǎng)絡(luò)切換概率的控制下進行網(wǎng)絡(luò)連接相關(guān)的切換,與真實存在的網(wǎng)絡(luò)連接相關(guān)的切換是相類似,進而使得所模擬的網(wǎng)絡(luò)場景是與真實存在的復(fù)雜網(wǎng)絡(luò)場景相符的,保證了網(wǎng)絡(luò)場景模擬的真實性。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并于說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實施例示出的一種實現(xiàn)網(wǎng)絡(luò)場景模擬的方法的流程圖;
圖2是另一示例性實施例示出的一種實現(xiàn)網(wǎng)絡(luò)場景模擬的方法的流程圖;
圖3是根據(jù)圖1對應(yīng)實施例示出的對在處于已連接網(wǎng)絡(luò)狀態(tài)時,根據(jù)隨機數(shù)與網(wǎng)絡(luò)切換概率對應(yīng)范圍二者之間的關(guān)系生成網(wǎng)絡(luò)連接修改指令步驟的細(xì)節(jié)在一個示例性實施例進行描述的流程圖;
圖4是根據(jù)圖1對應(yīng)實施例示出的對在處于已連接網(wǎng)絡(luò)狀態(tài)時,根據(jù)隨機數(shù)與網(wǎng)絡(luò)切換概率對應(yīng)范圍二者之間的關(guān)系生成網(wǎng)絡(luò)連接修改指令步驟的細(xì)節(jié)在另一個示例性實施例進行描述的流程圖;
圖5是根據(jù)一示例性實施例示出的一應(yīng)用測試覆蓋復(fù)雜網(wǎng)絡(luò)場景的流程圖;
圖6是根據(jù)一示例性實施例示出的一種實現(xiàn)網(wǎng)絡(luò)場景模擬的裝置的框圖;
圖7是根據(jù)另一示例性實施例示出的一種實現(xiàn)網(wǎng)絡(luò)場景模擬的裝置的框圖;
圖8是根據(jù)圖6對應(yīng)示例性實施例示出的對指令生成模塊的細(xì)節(jié)在一個示例性實施例進行描述的框圖;
圖9是根據(jù)圖6對應(yīng)示例性實施例示出的對指令生成模塊的細(xì)節(jié)在一個示例性實施例進行描述的框圖;
圖10是根據(jù)一示例性實施例示出的一種裝置的框圖。
具體實施方式
這里將詳細(xì)地對示例性實施例執(zhí)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實施例示出的一種實現(xiàn)網(wǎng)絡(luò)場景模擬的方法的流程圖。該實現(xiàn)網(wǎng)絡(luò)場景模擬的方法,如圖1所示,可以包括以下步驟。
在步驟110中,按照配置的限定值進行隨機數(shù)生成,得到處于限定值限定范圍的隨機數(shù)。
其中,限定值,是一預(yù)先配置的數(shù)值,用于指定生成隨機數(shù)的范圍。按照限定值所執(zhí)行的隨機數(shù)生成所得到的隨機數(shù),必然是在0到限定值這一范圍的。在一個示例性實施例的具體實現(xiàn)中,限定值可以是100,以方便運算。此時,所運算得到的隨機數(shù)是一個100以內(nèi)的數(shù)值。
在一個示例性實施例中,可以為應(yīng)用的測試執(zhí)行此步驟,進而為應(yīng)用的測試模擬網(wǎng)絡(luò)場景,以使得應(yīng)用測試是在模擬的網(wǎng)絡(luò)場景中進行的,應(yīng)用的測試中能夠通過模擬的網(wǎng)絡(luò)場景模擬網(wǎng)絡(luò)切換。
在步驟130中,在處于已連接網(wǎng)絡(luò)狀態(tài)時,根據(jù)隨機數(shù)與網(wǎng)絡(luò)切換概率對應(yīng)范圍二者之間的關(guān)系生成網(wǎng)絡(luò)連接修改指令。
其中,已連接網(wǎng)絡(luò)狀態(tài),是指當(dāng)前處于存在可用網(wǎng)絡(luò)并已連接至可用網(wǎng)絡(luò)的狀態(tài)。預(yù)先配置了網(wǎng)絡(luò)切換概率,網(wǎng)絡(luò)切換概率指示了所進行的網(wǎng)絡(luò)場景模擬中執(zhí)行與網(wǎng)絡(luò)連接相關(guān)的切換操作的概率。
由于網(wǎng)絡(luò)連接所相關(guān)的切換是非常多的,比如,有網(wǎng)至無網(wǎng)的切換、無網(wǎng)至有網(wǎng)的切換、在有網(wǎng)條件下多種網(wǎng)絡(luò)類型相互之間的切換等等,與網(wǎng)絡(luò)連接相關(guān)的切換操作的執(zhí)行,是用于實現(xiàn)某一網(wǎng)絡(luò)連接所相關(guān)的切換的。因此,與網(wǎng)絡(luò)連接相關(guān)的切換操作,非常多,并且在實際情況下,與網(wǎng)絡(luò)連接相關(guān)的切換操作的執(zhí)行是具備隨機性的。
比如,在實際情況下,網(wǎng)絡(luò)連接所相關(guān)的切換,是隨著用戶的需求、或者終端所能夠連接網(wǎng)絡(luò)的情況以及應(yīng)用中需要訪問網(wǎng)絡(luò)的功能等因素的存在而發(fā)生的,而這些因素本身就是隨機存在的,因此,必然導(dǎo)致了實際情況下網(wǎng)絡(luò)連接所相關(guān)的切換是隨機進行的,從而才會導(dǎo)致實際存在的網(wǎng)絡(luò)場景復(fù)雜。
基于此,在隨機數(shù)和網(wǎng)絡(luò)切換概率的控制下所生成的網(wǎng)絡(luò)連接修改指令,將使得后續(xù)所進行的與網(wǎng)絡(luò)連接相關(guān)的返回值的修改具備隨機性,進而保證了其是與真實存在的網(wǎng)絡(luò)相關(guān)的切換相適應(yīng)。
在此應(yīng)當(dāng)說明的是,網(wǎng)絡(luò)切換概率對應(yīng)的范圍,是由網(wǎng)絡(luò)切換概率和配置的限定值確定的。網(wǎng)絡(luò)切換概率和限定值在數(shù)值上的乘積便構(gòu)成了網(wǎng)絡(luò)切換概率對應(yīng)范圍中的上限值,即網(wǎng)絡(luò)切換概率對應(yīng)的范圍,是在0至前述所指的上限值之間的數(shù)值范圍。
通過隨機數(shù)和網(wǎng)絡(luò)切換概率對應(yīng)的范圍,在數(shù)值上對模擬的網(wǎng)絡(luò)場景劃分其所隨機對應(yīng)的網(wǎng)絡(luò)連接狀況,進而生成相應(yīng)的網(wǎng)絡(luò)連接修改指令。
在步驟150中,根據(jù)網(wǎng)絡(luò)連接修改指令修改與網(wǎng)絡(luò)連接相關(guān)的返回值,通過返回值的修改模擬網(wǎng)絡(luò)場景。
其中,網(wǎng)絡(luò)連接修改指令,指示了當(dāng)前所執(zhí)行的網(wǎng)絡(luò)連接相關(guān)的切換。而對于此網(wǎng)絡(luò)連接相關(guān)的切換,其通過對應(yīng)的與網(wǎng)絡(luò)連接相關(guān)的返回值修改實現(xiàn)的。因此,網(wǎng)絡(luò)連接修改指令,指示了所需要修改的返回值。
例如,可以通過修改NetworkInfo.isConnected方法的返回值,將其由true修改為false,即可模擬由有網(wǎng)絡(luò)切換無網(wǎng)絡(luò)的網(wǎng)絡(luò)場景;也可以修改ConnectivityManager.getActiveNetworkInfo方法的返回值為空,便也能夠模擬由有網(wǎng)絡(luò)切換無網(wǎng)絡(luò)的網(wǎng)絡(luò)場景;還可以修改NetworkInfo.getType方法的返回值來切換至其它網(wǎng)絡(luò)類型,進而模擬發(fā)生了網(wǎng)絡(luò)類型切換的網(wǎng)絡(luò)場景,在此不進行一一列舉。
通過如上的過程,在隨機數(shù)和網(wǎng)絡(luò)切換概率的作用下,實現(xiàn)了網(wǎng)絡(luò)場景的模擬,并在這一網(wǎng)絡(luò)場景的模擬中隨機進行了一次與網(wǎng)絡(luò)切換概率相符合的網(wǎng)絡(luò)連接相關(guān)的切換,因此,其是與真實存在的網(wǎng)絡(luò)連接相關(guān)的切換相符的。
在此,可以通過反復(fù)執(zhí)行的隨機數(shù)生成來不斷模擬網(wǎng)絡(luò)場景中隨機進行的多種網(wǎng)絡(luò)相關(guān)的切換,進而實現(xiàn)與真實存在的復(fù)雜網(wǎng)絡(luò)場景相符合的網(wǎng)絡(luò)場景模擬。
圖2是另一示例性實施例示出的一種實現(xiàn)網(wǎng)絡(luò)場景模擬的方法的流程圖。該步驟130之前,如圖2所示,該實現(xiàn)網(wǎng)絡(luò)場景模擬的方法,還可以包括以下步驟。
在步驟210中,觸發(fā)進行連網(wǎng)狀態(tài)的獲取,得到指示連網(wǎng)狀態(tài)的返回值。
其中,連網(wǎng)狀態(tài),包括已連接網(wǎng)絡(luò)狀態(tài)和未連接網(wǎng)絡(luò)狀態(tài)。指示連網(wǎng)狀態(tài)的返回值,在一個示例性實施例的具體實現(xiàn)中,NetworkInfo對象為空,且NetworkInfo.isConnected方法返回的true。
具體的,所觸發(fā)進行的連網(wǎng)狀態(tài)的獲取,包括兩個層面。一是首先確認(rèn)是否存在可用網(wǎng)絡(luò);二是在確認(rèn)存在可用網(wǎng)絡(luò)情況下獲得已連接網(wǎng)絡(luò)狀態(tài)或未連接網(wǎng)絡(luò)狀態(tài)。
在一個示例性實施例的具體實現(xiàn)中,將首先通過hook系統(tǒng)方法ConnectivityManager.getActiveNetworkInfo,來獲得返回值NetworkInfo對象,判斷返回值NetworkInfo對象是否為空,如果為空,則說明無可用網(wǎng)絡(luò),如果不為空,則進一步通過hook系統(tǒng)方法NetworkInfo.isConnected獲得相應(yīng)的返回值,并判斷此返回值是否為true,如果為true,則判定當(dāng)前處于已連接網(wǎng)絡(luò)狀態(tài)。
在步驟230中,根據(jù)指示連網(wǎng)狀態(tài)的返回值判定處于已連接網(wǎng)絡(luò)狀態(tài)。
通過如上的過程,為圖1對應(yīng)實施例中確認(rèn)處于已連接網(wǎng)絡(luò)狀態(tài)提供了具體實現(xiàn),進而使得網(wǎng)絡(luò)場景的模擬是在能夠連接網(wǎng)絡(luò)的基礎(chǔ)上進行的,以保證網(wǎng)絡(luò)場景模擬的可實施。
圖3是根據(jù)圖1對應(yīng)實施例示出的對步驟130的細(xì)節(jié)在一個示例性實施例進行描述的流程圖。網(wǎng)絡(luò)切換概率包括有無連網(wǎng)切換概率,該步驟130,如圖3所示,可以包括以下步驟。
在步驟131中,在處于已連接網(wǎng)絡(luò)狀態(tài)時,判斷隨機數(shù)是否處于有無連網(wǎng)切換概率對應(yīng)的范圍,如果為是,則執(zhí)行步驟132,如果為否,則可不作處理。
其中,在通過圖2對應(yīng)實施例,確認(rèn)當(dāng)前處于已連接網(wǎng)絡(luò)狀態(tài)之后,即可在隨機數(shù)和有無連網(wǎng)切換概率的作用下實現(xiàn)網(wǎng)絡(luò)場景的模擬,模擬的網(wǎng)絡(luò)場景中,進行了有網(wǎng)至無網(wǎng)的切換。
有無連網(wǎng)切換概率,用于指示網(wǎng)絡(luò)場景中有網(wǎng)至無網(wǎng)的切換概率。
與前述描述相類似的,有無連網(wǎng)切換概率對應(yīng)的范圍,是指有無連網(wǎng)切換概率和限定值在數(shù)值上的乘積所限定的范圍,即0至有無連網(wǎng)切換概率和限定值在數(shù)值上的乘積所構(gòu)成的數(shù)值范圍。
當(dāng)前的網(wǎng)絡(luò)場景下,正處于已連接網(wǎng)絡(luò)狀態(tài),如果隨機數(shù)處于有無連網(wǎng)切換概率對應(yīng)的范圍,則執(zhí)行步驟132,即通過生成網(wǎng)絡(luò)連接修改指令,以此來實現(xiàn)相應(yīng)返回值的修改,進而由有網(wǎng)隨機切換至無網(wǎng),實現(xiàn)發(fā)生了有網(wǎng)切換至無網(wǎng)的網(wǎng)絡(luò)場景模擬。
在步驟132中,生成對指示連網(wǎng)狀態(tài)的返回值進行修改的網(wǎng)絡(luò)連接修改指令。
其中,所生成的網(wǎng)絡(luò)連接修改指令,用于修改指示連網(wǎng)狀態(tài)的返回值,例如,前述所說的hook系統(tǒng)方法NetworkInfo.isConnected所對應(yīng)的返回值,將其由true修改為false;或者,將前述hook系統(tǒng)方法ConnectivityManager.getActiveNetworkInfo返回的NetworkInfo對象修改為空,這些返回值的修改,都可實現(xiàn)有網(wǎng)至無網(wǎng)的切換,進而使得模擬的網(wǎng)絡(luò)場景能夠模擬真實存在的隨機切換為有網(wǎng)至無網(wǎng)的狀況。
通過如上所述的過程,實現(xiàn)了網(wǎng)絡(luò)場景中有網(wǎng)至無網(wǎng)的隨機模擬,進而能夠模擬真實存在的有網(wǎng)切換至無網(wǎng)的網(wǎng)絡(luò)場景,進而使應(yīng)用的測試中能夠檢查應(yīng)用在無網(wǎng)絡(luò)時是否會發(fā)生異常。
圖4是根據(jù)圖1對應(yīng)實施例示出的對步驟130的細(xì)節(jié)在另一個示例性實施例進行描述的流程圖。該網(wǎng)絡(luò)切換概率還包括網(wǎng)絡(luò)類型切換概率,則步驟130,如圖4所示,還可以包括以下步驟。
在步驟133中,進一步判斷隨機數(shù)是否處于網(wǎng)絡(luò)切換概率對應(yīng)的范圍,如果為是,則執(zhí)行步驟134,如果為否,則執(zhí)行步驟136。
其中,在圖3對應(yīng)實施例所實現(xiàn)的有網(wǎng)切換至無網(wǎng)的網(wǎng)絡(luò)場景模擬基礎(chǔ)上,還可在網(wǎng)絡(luò)類型切換概率的作用下實現(xiàn)多種網(wǎng)絡(luò)類型切換的網(wǎng)絡(luò)場景模擬。
網(wǎng)絡(luò)類型切換概率,用于指示任意網(wǎng)絡(luò)類型之間發(fā)生切換的概率。在隨機數(shù)和網(wǎng)絡(luò)類型切換概率的作用下,實現(xiàn)網(wǎng)絡(luò)類型之間與網(wǎng)絡(luò)類型切換概率相符合的隨機切換。
網(wǎng)絡(luò)切換概率對應(yīng)的范圍,是在有無連網(wǎng)切換概率對應(yīng)的范圍之上由網(wǎng)絡(luò)切換概率延伸出來的范圍,即獲取有無連網(wǎng)切換概率與網(wǎng)絡(luò)切換概率之和,在此基礎(chǔ)上獲取與限定值之間的乘積,即為網(wǎng)絡(luò)切換概率對應(yīng)范圍的上限值。0至這一上限值便構(gòu)成了網(wǎng)絡(luò)切換概率對應(yīng)的范圍。
在步驟134中,觸發(fā)進行網(wǎng)絡(luò)類型的獲取,得到指示網(wǎng)絡(luò)類型的返回值。
其中,觸發(fā)進行網(wǎng)絡(luò)類型的獲取也將是通過獲取相應(yīng)的返回值實現(xiàn)的。例如,可以通過NetworkInfo.getType()方法獲得此返回值。
可以理解的,網(wǎng)絡(luò)類型,包括移動網(wǎng)絡(luò)、WiFi網(wǎng)絡(luò)等。返回值中指示的數(shù)值,是對應(yīng)于一網(wǎng)絡(luò)類型的,因此,能夠通過獲取的返回值獲知網(wǎng)絡(luò)類型。
通過前述步驟判斷到隨機數(shù)據(jù)處于網(wǎng)絡(luò)切換概率對應(yīng)的范圍,則說明可進行網(wǎng)絡(luò)類型的隨機切換,因此,需要執(zhí)行當(dāng)前步驟獲得指示網(wǎng)絡(luò)類型的返回值,以便于基于此返回值來生成相應(yīng)的網(wǎng)絡(luò)連接修改指令。
在步驟135中,生成對指示網(wǎng)絡(luò)類型的返回值進行修改的網(wǎng)絡(luò)連接修改指令。
其中,根據(jù)返回值指示的網(wǎng)絡(luò)類型,生成將網(wǎng)絡(luò)類型切換為其它另一網(wǎng)絡(luò)類型的網(wǎng)絡(luò)連接修改指令,在執(zhí)行此網(wǎng)絡(luò)修改指令進行返回值的修改之后,即可使得當(dāng)前進行測試的應(yīng)用認(rèn)為網(wǎng)絡(luò)場景中發(fā)生了網(wǎng)絡(luò)類型的切換,進而檢查此應(yīng)用在發(fā)生網(wǎng)絡(luò)類型的切換時是否發(fā)生異常。
在步驟136中,保持網(wǎng)絡(luò)場景。
通過如上所述的過程,模擬了網(wǎng)絡(luò)場景中網(wǎng)絡(luò)類型的隨機切換,使得網(wǎng)絡(luò)場景的模擬與真實存在的復(fù)雜網(wǎng)絡(luò)場景相符,與真實存在的復(fù)雜網(wǎng)絡(luò)場景相類似的,也會發(fā)生網(wǎng)絡(luò)類型的隨機切換。
通過如上所述的網(wǎng)絡(luò)場景模擬,使得應(yīng)用的測試,能夠覆蓋復(fù)雜網(wǎng)絡(luò)場景,進而提高應(yīng)用測試中發(fā)現(xiàn)網(wǎng)絡(luò)問題的概率,即提高應(yīng)用的運行中網(wǎng)絡(luò)切換導(dǎo)致問題的概率,有助于幫助開發(fā)人員定位問題。
以一應(yīng)用測試的過程為例,結(jié)合具體應(yīng)用場景,描述該實現(xiàn)網(wǎng)絡(luò)場景模擬的方法。例如,圖5是根據(jù)一示例性實施例示出的一應(yīng)用測試覆蓋復(fù)雜網(wǎng)絡(luò)場景的流程圖。
為此應(yīng)用的測試,將設(shè)定網(wǎng)絡(luò)切換概率,此網(wǎng)絡(luò)切換概率,包括兩種概率值,一為有無連網(wǎng)切換概率P1,二為網(wǎng)絡(luò)類型切換概率P2,并配置限定值為110。
則如圖5所示的,計算一個100以內(nèi)的隨機數(shù),即執(zhí)行步驟310。此隨機數(shù),將用于為應(yīng)用的測試模擬網(wǎng)絡(luò)場景中的一次網(wǎng)絡(luò)切換,這一網(wǎng)絡(luò)切換,根據(jù)隨機數(shù)的大小,可能是有網(wǎng)至無網(wǎng)的切換,也可以是網(wǎng)絡(luò)類型的切換。
執(zhí)行步驟320至330,調(diào)用hook系統(tǒng)方法ConnectivityManager.getActiveNetworkInfo得到返回值NetworkInfo對象,判斷NetworkInfo對象是否為空,如果為空,則說明無網(wǎng)絡(luò),此時,可結(jié)束整個流程。
如果NetworkInfo對象不為空,則執(zhí)行步驟340,判斷hook系統(tǒng)方法NetworkInfo.isConnected的返回值是否為true,如果為true,則說明當(dāng)前是處于已連接網(wǎng)絡(luò)狀態(tài)的。
在處于已連接網(wǎng)絡(luò)狀態(tài)時,即可進行網(wǎng)絡(luò)切換。在此應(yīng)當(dāng)說明的是,如果網(wǎng)絡(luò)切換概率僅有有無連網(wǎng)切換概率,則模擬有網(wǎng)至無網(wǎng)的切換;如果網(wǎng)絡(luò)切換概率還包括了網(wǎng)絡(luò)類型切換概率,則也可隨機模擬網(wǎng)絡(luò)類型的切換。
在圖5中,通過步驟350,判斷隨機數(shù)是否落在100*P1范圍內(nèi),來確定是隨機進行有網(wǎng)至無網(wǎng)的切換,還是隨機進行網(wǎng)絡(luò)類型的切換。
在隨機數(shù)是否落在100*P1范圍時,執(zhí)行步驟360,通過修改返回值來模擬網(wǎng)絡(luò)場景中發(fā)生了有網(wǎng)至無網(wǎng)的切換,進而能夠在這一網(wǎng)絡(luò)場景中確認(rèn)應(yīng)用是否會由于有網(wǎng)至無網(wǎng)的切換產(chǎn)生問題。
如果隨機數(shù)未落在100*P1范圍,則執(zhí)行步驟370,進一步判斷隨機數(shù)是否落在100*(P1+P2)范圍內(nèi),如果是,則可在網(wǎng)絡(luò)場景中模擬網(wǎng)絡(luò)類型的切換,即執(zhí)行步驟380,進而在此網(wǎng)絡(luò)場景中確認(rèn)應(yīng)用是否會由于網(wǎng)絡(luò)類型的切換產(chǎn)生問題。
至此,便實現(xiàn)了復(fù)雜網(wǎng)絡(luò)場景的模擬,并具備非常高的真實性,進而使得在此基礎(chǔ)上應(yīng)用測試的實現(xiàn)覆蓋復(fù)雜網(wǎng)絡(luò)場景。
下述為本公開裝置實施例,可以用于執(zhí)行本公開上述實現(xiàn)網(wǎng)絡(luò)場景模擬的方法實施例。對于本公開裝置實施例中未披露的細(xì)節(jié),請參照本公開實現(xiàn)網(wǎng)絡(luò)場景模擬的方法實施例。
圖6是根據(jù)一示例性實施例示出的一種實現(xiàn)網(wǎng)絡(luò)場景模擬的裝置的框圖。該實現(xiàn)網(wǎng)絡(luò)場景模擬的裝置,執(zhí)行圖1所示的實現(xiàn)網(wǎng)絡(luò)場景模擬的方法的全部步驟。如圖6所示,該實現(xiàn)網(wǎng)絡(luò)場景模擬的裝置包括但不限于:隨機數(shù)生成模塊510、指令生成模塊530和返回值修改模塊550。
隨機數(shù)生成模塊510,用于按照配置的限定值進行隨機數(shù)生成,得到處于限定值限定范圍的隨機數(shù)。
指令生成模塊530,用于在處于已連接網(wǎng)絡(luò)狀態(tài)時,根據(jù)隨機數(shù)與網(wǎng)絡(luò)切換概率對應(yīng)范圍二者之間的關(guān)系生成網(wǎng)絡(luò)連接修改指令。
返回值修改模塊550,用于根據(jù)網(wǎng)絡(luò)連接修改指令修改與網(wǎng)絡(luò)連接相關(guān)的返回值,通過返回值的修改模擬網(wǎng)絡(luò)場景。
圖7是根據(jù)另一示例性實施例示出的一種實現(xiàn)網(wǎng)絡(luò)場景模擬的裝置的框圖。該實現(xiàn)網(wǎng)絡(luò)場景模擬的裝置,如圖7所示,還包括但不限于:連網(wǎng)返回值獲得模塊610和連網(wǎng)狀態(tài)判定模塊630。
連網(wǎng)返回值獲得模塊610,用于觸發(fā)進行連網(wǎng)狀態(tài)的獲取,得到指示連網(wǎng)狀態(tài)的返回值。
連網(wǎng)狀態(tài)判定模塊630,用于根據(jù)指示連網(wǎng)狀態(tài)的返回值判定處于已連接網(wǎng)絡(luò)狀態(tài)。
圖8是根據(jù)圖6對應(yīng)示例性實施例示出的對指令生成模塊的細(xì)節(jié)在一個示例性實施例進行描述的框圖。該指令生成模塊530,如圖8所示,可以包括但不限于:連網(wǎng)切換范圍判斷單元531和連網(wǎng)指令生成單元532。
連網(wǎng)切換范圍判斷單元531,用于在處于已連接網(wǎng)絡(luò)狀態(tài)時,判斷隨機數(shù)是否處于有無連網(wǎng)切換概率對應(yīng)的范圍,如果為是,則觸發(fā)連網(wǎng)返回值修改單元532。
連網(wǎng)指令生成單元532用于生成對指示連網(wǎng)狀態(tài)的返回值進行修改的網(wǎng)絡(luò)連接修改指令。
圖9是根據(jù)圖6對應(yīng)示例性實施例示出的對指令生成模塊的細(xì)節(jié)在一個示例性實施例進行描述的框圖。網(wǎng)絡(luò)切換概率包括網(wǎng)絡(luò)類型切換概率,該指令生成模塊530,如圖9所示,還可以包括但不限于:類型切換范圍判斷單元533、類型返回值獲得單元534和類型指令生成單元535。
類型切換范圍判斷單元533,用于如果隨機數(shù)未處于有無連網(wǎng)切換概率對應(yīng)的范圍,則進一步判斷隨機數(shù)是否處于網(wǎng)絡(luò)切換概率對應(yīng)的范圍,如果為是,則觸發(fā)類型返回值獲得單元534,如果為否,則保持網(wǎng)絡(luò)場景。
類型返回值獲得單元534用于觸發(fā)進行網(wǎng)絡(luò)類型的獲取,得到指示網(wǎng)絡(luò)類型的返回值。
類型指令生成單元535,用于生成對指示網(wǎng)絡(luò)類型的返回值進行修改的網(wǎng)絡(luò)連接修改指令。
圖10是根據(jù)一示例性實施例示出的一種裝置700的框圖。例如,700可以是各種終端。
參照圖10,裝置700可以包括以下一個或多個組件:處理組件702,存儲器704,電源組件706,多媒體組件708,音頻組件710,傳感器組件714以及通信組件716。
處理組件702通??刂蒲b置700的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作以及記錄操作相關(guān)聯(lián)的操作等。處理組件702可以包括一個或多個處理器718來執(zhí)行指令,以完成下述的方法的全部或部分步驟。此外,處理組件702可以包括一個或多個模塊,便于處理組件702和其他組件之間的交互。例如,處理組件702可以包括多媒體模塊,以方便多媒體組件708和處理組件702之間的交互。
存儲器704被配置為存儲各種類型的數(shù)據(jù)以支持在裝置700的操作。這些數(shù)據(jù)的示例包括用于在裝置700上操作的任何應(yīng)用程序或方法的指令。存儲器704可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。存儲器704中還存儲有一個或多個模塊,該一個或多個模塊被配置成由該一個或多個處理器718執(zhí)行,以完成下述圖3、4和圖5任一所示方法中的全部或者部分步驟。
電源組件706為裝置700的各種組件提供電力。電源組件706可以包括電源管理系統(tǒng),一個或多個電源,及其他與為裝置700生成、管理和分配電力相關(guān)聯(lián)的組件。
多媒體組件708包括在所述裝置700和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關(guān)的持續(xù)時間和壓力。屏幕還可以包括有機電致發(fā)光顯示器(OLED)。
音頻組件710被配置為輸出和/或輸入音頻信號。例如,音頻組件710包括一個麥克風(fēng)(MIC),當(dāng)裝置700處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風(fēng)被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器704或經(jīng)由通信組件716發(fā)送。在一些實施例中,音頻組件710還包括一個揚聲器,用于輸出音頻信號。
傳感器組件714包括一個或多個傳感器,用于為裝置700提供各個方面的狀態(tài)評估。例如,傳感器組件714可以檢測到裝置700的打開/關(guān)閉狀態(tài),組件的相對定位,傳感器組件714還可以檢測裝置700或裝置700一個組件的位置改變以及裝置700的溫度變化。在一些實施例中,該傳感器組件714還可以包括磁傳感器,壓力傳感器或溫度傳感器。
通信組件716被配置為便于裝置700和其他設(shè)備之間有線或無線方式的通信。裝置700可以接入基于通信標(biāo)準(zhǔn)的無線網(wǎng)絡(luò),如WiFi。在一個示例性實施例中,通信組件716經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實施例中,所述通信組件716還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍牙(BT)技術(shù)和其他技術(shù)來實現(xiàn)。
在示例性實施例中,裝置700可以被一個或多個應(yīng)用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行下述方法。
可選的,本公開還提供一種終端,該終端可以執(zhí)行圖1、圖2、圖3和圖4任一所示的實現(xiàn)網(wǎng)絡(luò)場景模擬的方法的全部或者部分步驟。所述裝置包括:
處理器;
用于存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為執(zhí)行:
按照配置的限定值進行隨機數(shù)生成,得到處于所述限定值限定范圍的隨機數(shù);
在處于已連接網(wǎng)絡(luò)狀態(tài)時,根據(jù)所述隨機數(shù)與網(wǎng)絡(luò)切換概率對應(yīng)范圍二者之間的關(guān)系生成網(wǎng)絡(luò)連接修改指令;
根據(jù)所述網(wǎng)絡(luò)連接修改指令修改與網(wǎng)絡(luò)連接相關(guān)的返回值,通過所述返回值的修改模擬網(wǎng)絡(luò)場景。
該實施例中的裝置的處理器執(zhí)行操作的具體方式已經(jīng)在有關(guān)該實現(xiàn)網(wǎng)絡(luò)場景模擬的方法的實施例中執(zhí)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
在示例性實施例中,還提供了一種存儲介質(zhì),該存儲介質(zhì)為計算機可讀存儲介質(zhì),例如可以為包括指令的臨時性和非臨時性計算機可讀存儲介質(zhì)。該存儲介指例如包括指令的存儲器704,上述指令可由裝置700的處理器718執(zhí)行以完成上述實現(xiàn)網(wǎng)絡(luò)場景模擬的方法方法。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍執(zhí)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。