日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python实现自动断网_《自拍教程62》Python adb反复断网联网测试

發(fā)布時(shí)間:2023/12/14 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现自动断网_《自拍教程62》Python adb反复断网联网测试 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

案例故事: Android App或者系統(tǒng)測試過程中,涉及需要斷網(wǎng)異常測試(無網(wǎng)絡(luò)情況下,App或系統(tǒng)是否提示正常,運(yùn)行正常),

聯(lián)網(wǎng)測試(網(wǎng)絡(luò)恢復(fù)的情況下,App或系統(tǒng)是否提示正常,運(yùn)行正常), 目前基本上設(shè)備都具備wifi,4G兩種網(wǎng)絡(luò),

需要考慮兩種網(wǎng)絡(luò)全部斷開, 或者兩種網(wǎng)絡(luò)全部連上,并需要考慮優(yōu)先使用哪種網(wǎng)絡(luò)。

準(zhǔn)備階段

android 自帶的svc命令,可以實(shí)現(xiàn)網(wǎng)絡(luò)管理。

adb shell svc wifi disable 可以關(guān)閉wifi

adb shell svc wifi enable 可以打開wifi

adb shell svc wifi prefer 即wifi+4G一起打開的情況下,可以優(yōu)先使用wifi通訊

adb shell svc data disable 可以關(guān)閉4G數(shù)據(jù)通訊

adb shell svc data enable 可以打開4G數(shù)據(jù)通訊

adb shell svc data prefer 即wifi+4G一起打開的情況下,可以優(yōu)先使用4G通訊

由于測試100次,可以考慮使用random模塊實(shí)現(xiàn)隨機(jī)wifi優(yōu)先或者4G優(yōu)先。

Python批處理腳本形式

記住批處理腳本的精髓:批量順序執(zhí)行語句。

判斷字符串值是否相同,盡量多用is 及 is not, 少用== 及 !=

# coding=utf-8

import os

import time

import random

# 反復(fù)斷網(wǎng)聯(lián)網(wǎng)100次

for i in range(100):

print("正在進(jìn)行第%s輪斷網(wǎng) + 聯(lián)網(wǎng)測試" % i)

os.system("adb shell svc wifi disable")

os.system("adb shell svc data disable")

time.sleep(12) # App需要斷網(wǎng)后10秒之后才會彈出無網(wǎng)絡(luò)體現(xiàn),所以建議等待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("優(yōu)先啟用wifi網(wǎng)絡(luò)")

os.system("adb shell svc wifi perfer")

else:

print("優(yōu)先啟用4G網(wǎng)絡(luò)")

os.system("adb shell svc data perfer")

time.sleep(15) # wifi連接需要時(shí)間,4G撥號上網(wǎng)也需要時(shí)間,App識別網(wǎng)絡(luò)并進(jìn)行通信也需要時(shí)間,所以建議等待15秒

os.system("pause")

Python面向過程函數(shù)形式

面向過程函數(shù)的編程思維應(yīng)該是這樣的:

你需要多少個(gè)功能(函數(shù)),才能做成這個(gè)事。

最好把功能(函數(shù))都盡量封裝好,只暴露一些的參數(shù)接口即可。

# coding=utf-8

import os

import time

import random

def enable_network():

'''同時(shí)打開wifi,4G網(wǎng)絡(luò)'''

os.system("adb shell svc wifi enable")

os.system("adb shell svc data enable")

def disable_network():

'''同時(shí)關(guān)閉wifi,4G網(wǎng)絡(luò)'''

os.system("adb shell svc wifi disable")

os.system("adb shell svc data disable")

def perfer_network(network):

'''選擇以哪種網(wǎng)絡(luò)優(yōu)先,是wifi網(wǎng)絡(luò),還是4G網(wǎng)絡(luò)'''

network = network.lower() # 全部轉(zhuǎn)換成小寫

if network is "wifi":

print("優(yōu)先啟用wifi網(wǎng)絡(luò)")

os.system("adb shell svc wifi perfer")

elif network is "4g":

print("優(yōu)先啟用4G網(wǎng)絡(luò)")

os.system("adb shell svc 4G perfer")

else:

print("只支持2種網(wǎng)絡(luò),wifi或者4G")

# 反復(fù)斷網(wǎng)聯(lián)網(wǎng)100次

for i in range(100):

print("正在進(jìn)行第%s輪斷網(wǎng) + 聯(lián)網(wǎng)測試" % i)

disable_network()

time.sleep(12) # App需要斷網(wǎng)后10秒之后才會彈出無網(wǎng)絡(luò)體現(xiàn),所以建議等待12秒

enable_network()

perfer = random.choice(["wifi", "4G"])

perfer_network(perfer)

time.sleep(15) # wifi連接需要時(shí)間,4G撥號上網(wǎng)也需要時(shí)間,App識別網(wǎng)絡(luò)并進(jìn)行通信也需要時(shí)間,所以建議等待15秒

os.system("pause")

Python面向?qū)ο箢愋问?/p>

面向?qū)ο箢惖木幊趟季S應(yīng)該是這樣的:

如果給你一個(gè)空白的世界,在這個(gè)世界里你需要哪些種類的事物,

這些種類的事物都具備哪些共有的屬性與方法,

這些種類(類)的事物(對象),和其他種類(其他類)的事物(其他對象)有什么關(guān)系。

盡量把這些類封裝好,只暴露對外的屬性(變量)和方法(函數(shù))即可。

# coding=utf-8

import os

import time

import random

class NetworkManger(object):

'''網(wǎng)絡(luò)管理器,其只需要3個(gè)方法即可'''

def __init__(self):

pass

def enable_network(self):

'''同時(shí)打開wifi,4G網(wǎng)絡(luò)'''

os.system("adb shell svc wifi enable")

os.system("adb shell svc data enable")

def disable_network(self):

'''同時(shí)關(guān)閉wifi,4G網(wǎng)絡(luò)'''

os.system("adb shell svc wifi disable")

os.system("adb shell svc data disable")

def perfer_network(self, network):

'''選擇以哪種網(wǎng)絡(luò)優(yōu)先,是wifi網(wǎng)絡(luò),還是4G網(wǎng)絡(luò)'''

network = network.lower() # 全部轉(zhuǎn)換成小寫

if network is "wifi":

print("優(yōu)先啟用wifi網(wǎng)絡(luò)")

os.system("adb shell svc wifi perfer")

elif network is "4g":

print("優(yōu)先啟用4G網(wǎng)絡(luò)")

os.system("adb shell svc 4G perfer")

else:

print("只支持2種網(wǎng)絡(luò),wifi或者4G")

# 新實(shí)例化類的對象

n_obj = NetworkManger()

# 再反復(fù)斷網(wǎng)聯(lián)網(wǎng)100次

for i in range(100):

print("正在進(jìn)行第%s輪斷網(wǎng) + 聯(lián)網(wǎng)測試" % i)

n_obj.disable_network()

time.sleep(12) # App需要斷網(wǎng)后10秒之后才會彈出無網(wǎng)絡(luò)體現(xiàn),所以建議等待12秒

n_obj.enable_network()

perfer = random.choice(["wifi", "4G"])

n_obj.perfer_network(perfer)

time.sleep(15) # wifi連接需要時(shí)間,4G撥號上網(wǎng)也需要時(shí)間,App識別網(wǎng)絡(luò)并進(jìn)行通信也需要時(shí)間,所以建議等待15秒

os.system("pause")

運(yùn)行方式

確保Android設(shè)備通過USB線與電腦連接了,adb設(shè)備有效連接,

以上代碼的3種實(shí)現(xiàn)形式都可以直接運(yùn)行,比如保存為network_test.py并放在桌面,

打開你需要測試的App或跳轉(zhuǎn)到你需要測試的系統(tǒng)的某個(gè)界面下,

建議python network_test.py運(yùn)行,當(dāng)然也可以雙擊運(yùn)行。

總結(jié)

以上是生活随笔為你收集整理的python实现自动断网_《自拍教程62》Python adb反复断网联网测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。