安卓自動化測試添加用例執(zhí)行回放

腦洞

最近腦洞有點兒大钟些,最開始是想給自己的測試平臺添加手動執(zhí)行用例的功能,又覺得沒有一個很好的展示蒋困,所以想著要實時展示手機上的內(nèi)容,輸出到web頁面敬辣,但是覺得有點難啊雪标。

想了一下,還是換個方式吧溉跃,每個case執(zhí)行完畢村刨,都可以看到實時的錄像。這樣也許可行撰茎,哈哈哈嵌牺!

準備條件

  • 一臺安卓機
  • appium環(huán)境

基礎知識

  • adb命令

    adb大家應該很熟悉,簡單的說就是個連接手機和電腦的工具龄糊,哈哈哈逆粹,簡單粗暴。

    我們常用的adb命令有:

    • adb devices
      查看已經(jīng)連接上的安卓設備

    • adb logcat
      查看安卓日志

    具體的大家可以自己去百度下炫惩。

不過這里要講的是adb錄屏的命令~

我們連上安卓手機后僻弹, 在cmd窗口輸入命令:
adb shell screenrecord /sdcard/test.mp4

image.png

這時候其實手機上的內(nèi)容已經(jīng)開始錄制了~

我為了偷懶,就照搬這位兄弟的博客了~~!傳送門在此

image.png

注意

這里的adb命令開始錄制以后他嚷,不管是否正常結束蹋绽,都會保存文件芭毙,所以我們可以把錄制時間放長一點,到時候關閉就好了卸耘。

思路

因為用例是以一個class為單位的退敦,就算這個class有很多個test開頭的測試用例函數(shù),所以我這里是以一個class類為單位存儲視頻的鹊奖。

第一步

用例在setUp的時候苛聘,開啟錄制~

第二步

用例在tearDown的時候, 結束錄制~

第三步

用例結束錄制以后忠聚,使用adb命令將mp4文件拉取到本地硬盤上,供web頁面展示唱捣,或者將本地文件放入測試報告里作為超鏈接訪問两蟀。(但是此種方法不被Chrome瀏覽器支持)

開始勞作

import unittest
from time import sleep


class TestCase(unittest.TestCase)

    @classmethod
    def setUpClass(cls):
        print("[{}]--正在執(zhí)行登陸初始化操作: {}".format(datetime.now().strftime(
            "%Y-%m-%d %H:%M:%S"), cls.__name__))
        # 錄屏
        cls.replay = subprocess.Popen(r"adb shell screenrecord "
                             r"/sdcard/{}.mp4 --time-limit 600".format(cls.__name__),
                             creationflags=subprocess.CREATE_NEW_CONSOLE)

    def test_01(self):
        pass    # 這里其實最好多一些操作,不然視頻一下就結束了震缭,看不到效果

    @classmethod
    def tearDownClass(cls):
        # 終止錄像
        cls.replay.terminate()
        # 這里我的cls.conf是個配置文件, 獲取到錄像保存的路徑然后mp4的名字是以用例class命名的
        replay_path = os.path.join(cls.conf.get_value("replay_path"), "{}.mp4".format(cls.__name__))
        sleep(2)
        # 這里的pull是指從sdcard獲取文件到本地硬盤,
        subprocess.Popen(r"adb pull /sdcard/{}.mp4 {}".format(cls.__name__, replay_path),
                             creationflags=subprocess.CREATE_NEW_CONSOLE)
        # 等待視頻拉取完畢
        sleep(6)


注意:

  • 第一個sleep
    為了等用例停止錄制后有個緩沖時間~
  • 第二個sleep
    為了pull的時候等文件完全pull完畢赂毯,不然下一個case開始的時候又會調(diào)用adb,這個pull還沒結束拣宰,第二個adb又開始了党涕,導致拉取的文件異常,無法播放巡社。
  • subprocess
    這個是Python調(diào)用控制臺命令的方法膛堤,后面的CREATE_NEW_CONSOLE是新起一個命令窗口。

優(yōu)化:

  • sleep

應該有更好的辦法解決, 暫時還沒有考慮到更好的辦法~

  • 手機垃圾文件清理

暫時還沒有做

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乌昔,一起剝皮案震驚了整個濱河市芝此,隨后出現(xiàn)的幾起案子加酵,更是在濱河造成了極大的恐慌,老刑警劉巖燕耿,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異姜胖,居然都是意外死亡誉帅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門右莱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚜锨,“玉大人,你說我怎么就攤上這事隧出√ぶ荆” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵胀瞪,是天一觀的道長针余。 經(jīng)常有香客問我饲鄙,道長,這世上最難降的妖魔是什么圆雁? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任忍级,我火速辦了婚禮,結果婚禮上伪朽,老公的妹妹穿的比我還像新娘轴咱。我一直安慰自己,他們只是感情好烈涮,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布朴肺。 她就那樣靜靜地躺著,像睡著了一般坚洽。 火紅的嫁衣襯著肌膚如雪戈稿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天讶舰,我揣著相機與錄音鞍盗,去河邊找鬼。 笑死跳昼,一個胖子當著我的面吹牛般甲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鹅颊,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼敷存,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挪略?” 一聲冷哼從身側響起历帚,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杠娱,沒想到半個月后挽牢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡摊求,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年禽拔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片室叉。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡睹栖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茧痕,到底是詐尸還是另有隱情野来,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布踪旷,位于F島的核電站曼氛,受9級特大地震影響豁辉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舀患,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一徽级、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧聊浅,春花似錦餐抢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至顽冶,卻和暖如春苦蒿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渗稍。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留团滥,地道東北人竿屹。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像灸姊,于是被迫代替她去往敵國和親拱燃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,124評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理力惯,服務發(fā)現(xiàn)碗誉,斷路器,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • #夏至# 以簡單的節(jié)氣為名父晶,向這個夏天問好哮缺。然后你應該是溫柔的樣子,所以我可以安靜離開甲喝。劇情設定尝苇,早該如此。...
    長安雨泠閱讀 245評論 0 0
  • “五胡亂華”的這段歷史非常亂,但是直撤,只要你跟著我的思路走非竿,你就能很清楚的理清順序。 先就是中原地區(qū)的三國內(nèi)戰(zhàn)(魏谋竖、...
    蜀山筆俠閱讀 452評論 0 0
  • 李笑來《通往財富自由之路》學習筆記 已經(jīng)習慣了每一個清晨红柱,有一個人生的導師承匣,準時出現(xiàn)在我的面前,給我的生活和學習之...
    huifang963閱讀 186評論 0 0