[自動化測試]網絡重連的測試腳本

0.功能需求

最近在一個安卓客戶端項目上重寫了斷開重連的處理邏輯,需要寫個簡單的壓力測試腳本不斷進行斷網/網絡恢復的操作,大概思路有兩種:

1.安卓機器上

安卓機器上可以通過以下命令控制網絡斷開、連接:

svc wifi enable/disable #wifi開關
svc data enable/disable #移動數據開關

當然網上也有通過settings命令開關飛行模式實現的,不過在我手上的安卓4的盒子上無效

settings put global airplane_mode_on 0/1

:上面命令都需要root權限,此外,安卓shell很多命令都被閹割了,建議安裝busybox享受全功能的shell命令,busybox的安裝參考這篇: 給Android系統安裝busybox

在我的盒子上可以實現wifi的斷開,但是執行打開wifi的命令後,盒子並不會主動連接熱點,估計是系統的bug,無解

2. PC上

手機端不行就折騰pc端,通過pc搭建熱點,控制熱點的開關來模擬網絡通斷,mac上:

sudo ifconfig en0 up/down

上面en0是你mac上用來做熱點的wifi網卡,可以通過下面命令查看

networksetup -listallhardwareports | grep -E ‘(Wi-Fi|AirPort)’ -A 1 | grep -o “en.”

好,簡單的腳本如下,linux的電腦估計也一樣:

#! /bin/bash
# bingoCoder: a script to turn wifi hotpot on/off in mac

function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(($RANDOM+101))
  echo $(($num%$max+$min))
}

# -1 means endless
loop_time=-1
n=0
sleep_time=0
echo "Wifi hotpot on/off test begin"

while [ $n -ne $loop_time ];do
  (( n++ ))
  sleep_time=$(rand 4 60)
  sleep $sleep_time
  time=$(date "+%H%M%S")
  echo "$time turn off wifi"
  sudo ifconfig en0 down
  sleep_time=$(rand 20 50)
  sleep $sleep_time
  time=$(date "+%H%M%S")
  echo "$time turn on wifi"
  sudo ifconfig en0 up
done
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章