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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

《自拍教程47》Python adb重启设备100次

發布時間:2023/12/10 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《自拍教程47》Python adb重启设备100次 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

做Android手機/電視機/車載系統穩定性測試,
需要進行100次的系統重啟,確保啟動過程中,不出現卡死起不來,
或者起來后Home界面異常等情況。
還有涉及首次使用開機激活界面的測試,要確保每次系統重啟,
只要設備沒激活,就得每次都彈出激活界面。

準備階段
  • adb reboot 或者adb shell reboot 命令, 可以實現手機軟重啟
  • adb wait-for-device可以實現等待,等待重啟后的手機重新adb連接
  • os.system可以調用以上 adb 命令行工具
  • 100次,需要一個for循環語句。

  • Python批處理腳本形式

    Python只需要用os.system()函數,
    即可快速實現調用各類命令行命令。

    # coding=utf-8import osfor i in range(1, 101):os.system("adb wait-for-device")os.system("adb reboot")print("系統第%s輪軟重啟中...請稍候!" % i)os.system("pause")

    os.system(“pause”),建議盡量加上,其含義是暫停程序執行,
    等待用戶查看腳本執行結果,避免運行完畢后直接自動關閉腳本執行cmd窗口。

    Python面向過程函數形式

    找到可以封裝成一個函數塊的小代碼塊兒, 用函數封裝起來.
    函數的命名一般建議用"動詞", 所以我們命名為: “reboot”,
    封裝好后, reboot()函數調用即可。

    # coding=utf-8import osdef reboot(): # 封裝for i in range(1, 101):os.system("adb wait-for-device")os.system("adb reboot")print("系統第%s輪軟重啟中...請稍候!" % i)reboot() # 調用 os.system("pause")

    以上是最簡單的函數,即將代碼塊打個包,用一個函數封裝起來。
    另外一種形式如下:

    # coding=utf-8import osdef reboot(cycle): # 封裝for i in range(1, cycle + 1):os.system("adb wait-for-device")os.system("adb reboot")print("系統第%s輪軟重啟中...請稍候!" % i)reboot(100) # 調用并傳參 os.system("pause")

    以上這種是更高端的,帶參數輸入的函數形式的函數,
    其可以控制重啟次數,想重啟100次,直接傳參100即可。

    Python面向對象類形式
  • 以"一切皆可歸類"的思想, 先抽象化出一個類來,
    類名一般建議用"名詞", 所以我們命名為"Rebooter",
    代表重啟器, 且一般要駝峰式(首字母大寫)來規范類的命名。
  • 養成良好的類的初始化(__init__)的習慣,
    初始化過程中, 可以pass(什么都不做)。
  • 這個Rebooter類, 目前只需要一個重啟的函數(動作功能)就足夠了,
    函數的命名一般建議用"動詞", 所以我們命名為: “reboot” 。
  • 類是一個抽象的事物, 必須實例化成具體的對象后,
    才能進行調用, 所以我們實例化并命名成了r_obj, 表明是一個對象.
  • 實例化成具體對象后, 對象就可以調用reboot這個函數了。
  • # coding=utf-8import osclass Rebooter():def __init__(self):passdef reboot(self, cycle):for i in range(1, cycle):os.system("adb wait-for-device")os.system("adb reboot")print("系統第%s輪軟重啟中...請稍候!" % i)r_obj = Rebooter() # 實例化一個對象 r_obj.reboot(100) # 用對象來調用函數。os.system("pause")
    代碼運行方式

    確保Android設備,通過USB與電腦連接了,
    以上代碼的3種實現形式都可以直接運行,
    比如保存為adb_reboot_100.py并放在桌面,
    每次需要截圖的時候,雙擊運行adb_reboot_100.py,
    就可以開始執行腳本了。

    腳本優化方向

    實際自動化測試中,肯定不止這么簡單,還需要考慮:

  • 設備找到后,要考慮用demsg命令截取系統啟動的kernel log
  • 系統起來后,還需要考慮adb logcat截取App層的log。
  • 系統起來后,還需要考慮adb shell screencap截取Home界面的圖片。
  • 每一輪都需要命名一個文件夾,里邊的log的命名都需要有時間戳等。
  • 軟重啟是指通過命令實現重啟,
    硬重啟是通過摳電池或者拔掉切斷電源后再上電,實現斷電后重啟。
    如何用Python實現硬重啟呢? 后續課程會講到。

  • 更多更好的原創文章,請訪問官方網站:www.zipython.com
    自拍教程(自動化測試Python教程,武散人編著)
    原文鏈接:https://www.zipython.com/#/detail?id=d42a3e82a8814691839042ba3984b26a
    也可關注“武散人”微信訂閱號,隨時接受文章推送。

    總結

    以上是生活随笔為你收集整理的《自拍教程47》Python adb重启设备100次的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。