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

7. 如何把錄制變成腳本
7.1 首先要點擊inspector窗口的Record按鈕
7.2 選擇你需要的編程語言
7.3 再繼續重復你需要做的UI操作
7.4 最后就是把代碼拷貝出去
8. 如何重錄測試
8.1 關掉inspector,
8.2 代碼需要稍微的修改,Python的代碼錄出來居然有語法錯誤,這里給個例子,對照看就好了(當然必要的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 運行代碼,查看測試結果
B. 如果是真機測試
真機測試其實遇到了些問題,我大概說一下我的步驟
1. 配置應用的BundleID和設備的UDID
BundleID不知道怎么看的請用itools
UDID不知道怎么找的請用iTunes或itools
應用必須是你自己的開發者賬號簽名過的
2. Launch Appium
3. 點擊inspector的按鈕,接下來應用會顯示在iPad上,但是過一會就會閃退(我試了好幾個應用都有這個問題),我已經給Appium報告了一個bug,看看會不會有回復吧。
如果有人在真機上成功使用inspector的,也請留言分享一下
posted on 2014-05-08 16:42 順其自然EVO 閱讀(16021) 評論(1) 編輯 收藏 所屬分類: 測試學習專欄 、selenium and watir webdrivers 自動化測試學習