qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          Appium IOS 自動化測試初探

           手機(jī)平臺的自動化測試工具很多,之前研究過了安卓和蘋果的原生自動化測試框架,經(jīng)一些同事介紹,貌似Appium是個不錯的工具。
            想記錄一下研究的結(jié)果,也算是篇干貨的文章
            在網(wǎng)上也看了一些視頻,個人認(rèn)為這個自動化測試的特點(diǎn)就是
            1. 多編程語言支持
            相對于傳統(tǒng)的IOS UIautomation只能支持js語言,Appium起到了一個翻譯的作用,它其實(shí)是一個CS架構(gòu),服務(wù)器和IOS模擬器或真機(jī)直接通訊,客戶端和服務(wù)器之間用HTTP協(xié)議進(jìn)行交互,所以客戶端用什么語言其實(shí)不重要。下面會有一個python編程的實(shí)際例子。
            2. 遠(yuǎn)程測試支持
            正如上面說的,客戶端和服務(wù)器之間用HTTP協(xié)議通訊,那么也就是說,客戶端可以和服務(wù)器在同一臺機(jī)器或者不同的機(jī)器。
            3. 較好的錄制功能
            Appium提供了一個很好的錄制工具,可以讓程序員一步一步的把步驟進(jìn)行精確的錄制
            4. 單步調(diào)試
            程序員可以利用高級腳本語言,比如Python對被測程序進(jìn)行單步調(diào)試,比如一條命令對應(yīng)一個UI動作
            如何使用appium,基于2014年5月份發(fā)布的appium 1.0來說,大約是這樣的,
            你必須要有xcode進(jìn)行自動化測試的基礎(chǔ),如果沒有的話,請先補(bǔ)習(xí)
            A. 如果是模擬器測試
            1. 選擇應(yīng)用安裝包的位置
            2. 再選擇期望的模擬器平臺,IOS版本,再點(diǎn)Launch就可以了
            3. Launch之后會發(fā)現(xiàn)什么都沒有,其實(shí)Appium已經(jīng)運(yùn)行了,請注意運(yùn)行的窗口中有沒有錯誤
            4. 下面就是錄測試用例,點(diǎn)擊一個藍(lán)色的底,白色的i的按鈕
            5. 過一段時間后就會出現(xiàn)inspector的窗口
            6. 下面是一個例子,比如我要點(diǎn)一個按鈕,
            6.1 首先現(xiàn)在左邊的樹形窗口里面找到一個按鈕的位置,有點(diǎn)類似Firebug找網(wǎng)頁控件
            6.2 然后在下面的動作框選擇你想要的動作,點(diǎn)擊就是Tap,然后你會發(fā)現(xiàn)這個按鈕真的被點(diǎn)擊了(這是一個單步調(diào)試很直觀的例子)


           7. 如何把錄制變成腳本
            7.1 首先要點(diǎn)擊inspector窗口的Record按鈕
            7.2 選擇你需要的編程語言
            7.3 再繼續(xù)重復(fù)你需要做的UI操作
            7.4 最后就是把代碼拷貝出去
            8. 如何重錄測試
            8.1 關(guān)掉inspector,
            8.2 代碼需要稍微的修改,Python的代碼錄出來居然有語法錯誤,這里給個例子,對照看就好了(當(dāng)然必要的python庫必須安裝)
          from selenium.webdriver.firefox.webdriver import WebDriver
          from selenium.webdriver.common.action_chains import ActionChains
          import time
          import os
          import selenium
          success = True
          desired_caps = {}
          desired_caps['browserName'] = 'iOS'
          desired_caps['platform'] = 'Mac'
          desired_caps['version'] = '6.1'
          desired_caps['device'] = 'iPad'
          desired_caps['app'] = os.path.abspath('/Users/marshall/Library/Developer/Xcode/DerivedData/TestAutomation-empzzpwyyxctxidnwdsrtlssueqi/Build/Products/Debug-iphonesimulator/TestAutomation.app')
          wd = selenium.webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)
          wd.implicitly_wait(60)
          def is_alert_present(wd):
          try:
          wd.switch_to_alert().text
          return True
          except:
          return False
          try:
          wd.find_element_by_name("First").click()
          wd.find_element_by_name("Second").click()
          finally:
          wd.quit()
          if not success:
          raise Exception("Test failed.")
            8.3 運(yùn)行代碼,查看測試結(jié)果
            B. 如果是真機(jī)測試
            真機(jī)測試其實(shí)遇到了些問題,我大概說一下我的步驟
            1. 配置應(yīng)用的BundleID和設(shè)備的UDID
            BundleID不知道怎么看的請用itools
            UDID不知道怎么找的請用iTunes或itools
            應(yīng)用必須是你自己的開發(fā)者賬號簽名過的
            2. Launch Appium
            3. 點(diǎn)擊inspector的按鈕,接下來應(yīng)用會顯示在iPad上,但是過一會就會閃退(我試了好幾個應(yīng)用都有這個問題),我已經(jīng)給Appium報告了一個bug,看看會不會有回復(fù)吧。
            如果有人在真機(jī)上成功使用inspector的,也請留言分享一下

          posted on 2014-05-08 16:42 順其自然EVO 閱讀(16021) 評論(1)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄selenium and watir webdrivers 自動化測試學(xué)習(xí)

          評論

          # re: Appium IOS 自動化測試初探[未登錄] 2016-06-02 17:32 飛飛

          4. 下面就是錄測試用例,點(diǎn)擊一個藍(lán)色的底,白色的i的按鈕,沒找見這個按鈕啊?求回復(fù)  回復(fù)  更多評論   

          <2014年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 和静县| 玉溪市| 平罗县| 綦江县| 安西县| 驻马店市| 临桂县| 鲜城| 鄂托克前旗| 彭阳县| 平顺县| 论坛| 英吉沙县| 宜君县| 万州区| 黄石市| 湖北省| 安庆市| 根河市| 崇信县| 潜江市| 临潭县| 揭阳市| 平山县| 宝鸡市| 睢宁县| 边坝县| 阿拉善盟| 雅江县| 武安市| 泰和县| 利川市| 边坝县| 彭阳县| 格尔木市| 黔西| 民勤县| 安龙县| 崇左市| 醴陵市| 宿州市|