基於Appium+WDA+Python搭建IOS自動化測試全紀錄(三):真機demo執行

weixin_34337265發表於2018-01-15

前期回顧:
基於Appium+WDA+Python搭建IOS自動化測試全紀錄(二):模擬器demo執行
基於Appium+WDA+Python搭建IOS自動化測試全紀錄(一):環境搭建

在模擬器將demo跑通之後,就要在真機上測試啦,模擬器總是要為真機服務的。

證照問題

在真機上主要是涉及到簽名及證照的問題,一下blog寫的特別好,然而其實我也沒有看懂,RSA演算法神馬的早在密碼學課程上還給老師了。
iOS App 簽名的原理
主要在此簡單記錄一下證照的配置吧。
在xcode中找到build Setting配置部分(之所以把這張圖放出來是因為我最開始找不到這個配置,萌新啥都找不到):

1094385-1ad7fd8414daedc8.png
WX20180115-203847@2x.png

更改一下三個欄位對應的內容:
Code Siging identify 證照裡面對應的開發者
Product Bundle Identify 對應的bundleID
Provisioning Profile 包含了 證照 / Entitlements 等資料,並由蘋果後臺私鑰簽名的資料包。
資料包是.mobileprovision檔案格式結尾 在終端中輸入如下命令即可看到裡面的資訊

security cms -D -i xxxxx.mobileprovision

改完之後 我們開發的程度就可以裝到真機上啦,這個時候選擇在真機上執行,就可以啦。

Appium中wda真機配置

測試app裝到真機上之後,還要考慮如何開啟py指令碼,在真機上進行測試。
這裡需要注意兩點:

  • webDriverAgent的配置
  • py指令碼的配置有變化
    關於WebDriverAgentgithub地址這個還沒了解太多,所以在這裡先不介紹了。簡單來說appium的服務中帶有webDriverAgent,在模擬器上我們開啟appium服務,會發現模擬機上會同步裝上WebRriverAgentRunner的app,這個是appium能在ios上測試的關鍵條件,但是在真機上,卻不能直接裝上。
    因為需要證照啊!!!
    不能直接從github上下載進行證照配置,要改appium中node_modules中的webDriverAgent。
    先找到appium的位置
find / -name appium   // /usr/local/lib/node_modules/appium 

最後找到的地址大概如下:

/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

放到xcode中進行簽名證照配置,注意雖然我們開啟的是WebDriverAgent資料夾,但是我們要配置的是WebdDriverAgentRunner 在其Build Settings中進行與證照有關的配置

Code Siging identify  證照裡面對應的開發者
Product Bundle Identify  對應的bundleID
Provisioning Profile    包含了 證照 / Entitlements 等資料,並由蘋果後臺私鑰簽名的資料包。

配置完畢後還需要再WebdDriverAgentRunner中新增一個RoutingHTTPServer.frameork


1094385-8559492188f853ec.png
WX20180115-222415@2x.png

點選新增之後->add Other
在如下路徑可以查詢到該framework

/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Carthage/Build/iOS

找的一定是appium檔案路徑下的!
上邊關於wda並沒有做過多說明,因為還不怎麼了解等了解了再補充相關知識

py指令碼

py指令碼主要是配置有更改,主體檔案請見開頭(二)模擬器demod的blog
在真機上配置更改如下:

 desired_capabilities={
                'bundleId': //這個是和證照有關聯的
                'platformName': 'iOS',
                'platformVersion': '9.3.2',
                'deviceName': 'iPhone5 slave15',
                'automationName':'XCUITest',
                "clearSystemFiles" : True,
                'udid'://模擬器的時候我們用uuid,但是真機上請用udid
            })

然後啟動appium 發現真機上裝上了廁所app 裝上了WebDriverAgentRunner 然後用python執行指令碼就ok拉!


以上為從搭建環境-》模擬器跑demo-》真機跑demo的簡單記錄,不涉及到原理方面的講解,如有錯誤之處還請提出。

【之後還有跳一跳的安卓環境搭建
wda的inspector相關環境還沒記錄~】

[Tbc]

個人部落格:
進擊的程式茗

相關文章