在windows平台通過tidevice+airtest搭建ios自動化框架


 概述:

tidevice 是阿里的內部的一個小組用來做 iOS 自動化用的工具。最近終於開源了出來,類似android下的adb。

 

價值:

不依賴 xcode 啟動 WebDriverAgent完成設備連接,因為不依賴 Xcodebuild,所以就算你只有 Windows 或者 Linux 也能跑起來 iOS 自動化。

 

作用:

  • 截圖
  • App安裝(支持遠程安裝),啟動,停止,查看
  • 啟動 WebDriverAgent
  • 性能采集(類似 PerfDog)不過這塊暫時只有 API 可以用。
  • 功能還在不停的擴展中

 

命令:

tidevice list #查看設備
tidevice screenshot screenshot.jpg #截圖
tidevice launch com.apple.Preferences #啟動程序
tidevice kill
com.apple.Preferences .....停止程序
tidevice applist #查看第三方包名
tidevice
-u $UDID xctest -B $BUNDLE_ID #運行WebDriverAgent
tidevice reboot #重啟設備
tidevice install https:
//.....ipa #遠程安裝
tidevice info #查看設備信息
tidevice -u 設備uid uninstall 包名 .........卸載應用

#多台手機時可指定uid
tidevice -u 設備uid install C:\Users\Administrator\Desktop\test.ipa #指定設備安裝



tidevice詳細:https://testerhome.com/topics/27758

 

 

部署步驟:

1.難點:如何安裝WebDriverAgent到手機

需要下載WebDriverAgent項目編譯到手機

https://github.com/AirtestProject/iOS-Tagent/blob/master/Introduction/README_zh.md

https://www.cnblogs.com/chen-xia/p/14266014.html

備注:

  •     部署iOS測試平台需要蘋果開發者證書,現在使用個人Apple ID登陸即可,不需要另外注冊付費開發者賬號
  •     個人版的免費證書,每隔7天左右,要手動更新開發者證書;
  •     需要手動的在iPhone中選擇信任證書,通用->設備管理->選擇信任;
  •     最多支持3台設備;

建議:使用公司的企業賬號或個人收費賬號測試(企業賬號可以綁定100台也不需要更新證書),不然很頭疼

 

2.啟動WebDriverAgent

tidevice  -B  $BUNDLE_ID ................通過包名啟動WebDriverAgent(單台)

tidevice -u  設備id  xctest  -B  $BUNDLE_ID ............................通過包名啟動WebDriverAgent(指定一台)

 

 

3.檢查設備代理狀態(xx表示手機ip)

http://xx.xx.xx.xx:8100/status

 

 

4.使用airtest

輸入 http://xx.xx.xx.xx:8100/  點擊connet即可連接

 

 

 

##——————————————————————————————————————————————————————————————————————————————————

使用記錄:

#!/usr/bin/env python
# encoding: utf-8
__author__ = "晨晨"

import os


#________________________________________tidevice基礎封裝______________________________________________
class Package_name(object):

    def __init__(self,device_id,name_list=None):
        self.device_id=device_id
        self.name_list=name_list


    def __call__(self, *args, **kwargs):
        '''列出設備的三方包名列表'''
        bb=os.popen('tidevice -u '+self.device_id+' applist').readlines()
        self.name_list=[ i[:i.find(' '):] for i in bb]
        return self.name_list


    def  is_no_package3_name(self,packeage_name):
        '''判斷手機是否安裝了xx包名'''
        return  True if  packeage_name  in self.name_list else False


    def  device_info(self):
        '''獲取設備信息_dict格式'''
        bb=os.popen('tidevice -u '+self.device_id+' info').readlines()
        self.name_list=([''.join([i for i in price.replace("  ",'').split('\n')]) for price in bb])
        self.name_list.pop()
        json_a={}
        for i in self.name_list:
            aa=((i[:i.find(':'):]))
            bb=(i[i.find(':')+1:].lstrip())
            json_a[aa] = bb
        return json_a




if __name__=='__main__':
    test=Package_name('9592617d97b1d558ad4ced4a31cd0442762ffc05')
    print('以列表方式列出包名',test())

    print('判斷設備是否安裝xx包',test.is_no_package3_name('com.tencent.xin'))
    print('設備基礎信息:',test.device_info())

 

 

 相關連接:

https://testerhome.com/articles/29124 .............................................tidevice搭建airtest環境

https://mp.weixin.qq.com/s/xgDnZdMdy5E5af-54ZMXow ..................tidevice相關用法

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM