[自动化测试]网络重连的测试脚本

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值