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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS自动化测试

發布時間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS自动化测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Appium 在 iOS 下工具的變革

  • iOS 9 之前一直以 instruments 下的 UIAutomation 為驅動底層技術(弊端由于 instruments 的限制,單臺 mac 只能對應單臺設備);
  • iOS 9.3 時代推出 XCUITest 工具,用以替代 UIAutomation;
  • iOS 10 時代蘋果直接廢棄了 UIAutomation、Facebook 推出 WebDriverAgent(實現的 server 能夠支持單臺 mac 對應多個設備);
  • Appium 在 iOS 9.3 后全面采用 WebDriverAgent 的方案。

從圖中可以看出:

  • Client 端是 Appium 之前本身提供的;
  • Server 端是:WebDriverAgent 和 Instruments;( Appium 直接把 WebDriverAgent 整個集成進來,Instruments 是為了支持 iOS 9.3 之前的系統)
  • 最右邊是一個手機
    • 之前 Server 是和 bootstrap.jar 通信,這里 WebDriverAgent 提供了 WebDriverAgentRunner(類似 bootstrap.jar 的功能),WebDriverAgent 與之通信;
    • WebDriverAgentRunner 是一個應用,Client 和 server 運行了之后,WebDriverAgentRunner 會被裝到手機上,這個應用會接收來自 Server 的指令,并連接底層的 XCTest.framwork,并告訴 XCTest.framwork 操作手機進行自動化。

1.2.3 必裝的軟件

Xcode、command line tool、libimobiledevice、ios-deploy、carthage、WebDriverAgent、Appium。

  • libimobiledevice / ideviceinstaller 庫,相當于 android 的 adb,是 Appium 底層用到的工具之一,用于獲取 iOS 設備信息。
  • 其常用命令如下:

    • 查看當前所連接的設備

      idevice_id -l # 顯示當前所連接設備的 udid
      instruments -s devices # 列出所有設備,包括真機、模擬器、mac

    • 安裝應用

      ideviceinstaller -u [udid] -i [xxx.ipa] # xxx.ipa 為應用在本地的路徑

    • 卸載應用

      ideviceinstaller -u [udid] -U [bundleId]

    • 查看設備已安裝的應用

      ideviceinstaller -u [udid] -l # 查看設備安裝的第三方應用
      ideviceinstaller -u [udid] -l -o list_user # 同上,查看設備安裝的第三方應用
      ideviceinstaller -u [udid] -l -o list_system # 查看設備安裝的系統應用
      ideviceinstaller -u [udid] -l -o list_all # 查看設備安裝的所有應用

    • 獲取設備信息

      ideviceinfo -u [udid] # 獲取設備信息
      ideviceinfo -u [udid] -k DeviceName # 獲取設備名稱 同命令 idevicename
      idevicename # 同上
      ideviceinfo -u [udid] -k ProductVersion # 獲取設備版本 10.3.3
      ideviceinfo -u [udid] -k ProductType # 獲取設備類型 iPhone 8,1
      ideviceinfo -u [udid] -k ProductName # 獲取設備系統名稱

    • 其他系統文件信息

      ideviceinfo # 獲取設備所有信息
      idevicesyslog # 獲取設備日志
      idevicecrashreport -e test # 獲取設備 crashlog,test 是文件夾需新建
      idevicediagnostics # 管理設備狀態 - 重啟、關機、睡眠等

  • ios-deploy 常用命令

    ios-deploy -c # 查看當前鏈接的設備
    ios-deploy --[xxx.app] # 安裝 APP
    ios-deploy --id [udid] --uninstall_only --bundle_id [bundleId] # 卸載應用
    ios-deploy --id [udid] --list_bundle_id # 查看所有應用
    ios-deploy --id [udid] --exists --bundle_id # 查看應用是否安裝

  • carthage,項目依賴管理,主要是 WebDriverAgent 使用,WebDriverAgent 是用它做項目依賴的;

    公司 iOS 項目也使用 carthage,類似于 java 的 maven;

  • ios-deploy、ideviceinstaller 類似 android 的 adb;

  • authroize-ios,iOS 授權工具,主要用于模擬器中一些權限的授權;

    npm install -g authroze-ios sudo authroze-ios
  • ?

    ?

  • 1.2.5.2 準備腳本

    • iOS 項目的 Desired_caps
    Desired_caps:{ ’platformName’:’iOS’, ‘platformVersion’:’10.3.3’, ‘devideName’:’iPhone 7 Plus’, ‘udid’:’’, #如果是真機的話必須提供 ‘app’:’~/appPath/app.app’, #app路徑,如果只填bundleId,那就是通過id啟動已有的App }
    • iOS 的元素定位
      • Appium Desktop - Inspect (推薦)
      • WebDriverAgent - Inspector

    這里說說 Appium Desktop - Inspect 是怎么使用的。
    - 打開并啟動 Appium Desktop,點擊軟件右上角第一個按鈕 “ start inspector session”;
    - 會出現彈窗,彈窗里配置好 Desired_caps。

    • 定位方式推薦:AccessbilityId

    總結

    以上是生活随笔為你收集整理的IOS自动化测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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