案例故事: Android App或者系统测试过程中,涉及需要断网异常测试(无网络情况下,App或系统是否提示正常,运行正常),
联网测试(网络恢复的情况下,App或系统是否提示正常,运行正常), 目前基本上设备都具备wifi,4G两种网络,需要考虑两种网络全部断开, 或者两种网络全部连上,并需要考虑优先使用哪种网络。
准备阶段
android 自带的svc命令,可以实现网络管理。
- adb shell svc wifi disable 可以关闭wifi
- adb shell svc wifi enable 可以打开wifi
- adb shell svc wifi prefer 即wifi+4G一起打开的情况下,可以优先使用wifi通讯
- adb shell svc data disable 可以关闭4G数据通讯
- adb shell svc data enable 可以打开4G数据通讯
- adb shell svc data prefer 即wifi+4G一起打开的情况下,可以优先使用4G通讯
- 由于测试100次,可以考虑使用random模块实现随机wifi优先或者4G优先。
Python批处理脚本形式
记住批处理脚本的精髓:批量顺序执行语句。
判断字符串值是否相同,尽量多用is 及 is not, 少用== 及 !=
# coding=utf-8
import os
import time
import random
# 反复断网联网100次
for i in range(100):
print("正在进行第%s轮断网 + 联网测试" % i)
os.system("adb shell svc wifi disable")
os.system("adb shell svc data disable")
time.sleep(12) # App需要断网后10秒之后才会弹出无网络体现,所以建议等待12秒
os.system("adb shell svc wifi enable")
os.system("adb shell svc data enable")
perfer = random.choice(["wifi", "4G"])
if perfer is "wifi":
print("优先启用wifi网络")
os.system("adb shell svc wifi