Python和Nose實現移動應用的自動化測試

今天跟你們聊的是Python和Nose實現移動應用的自動化測試,但願對大家有幫助,有說的很差的地方,還請多多指教!python

採用Appium進行自動化的功能性測試最酷的一點是,你可使用具備最適合你的測試工具的任何一門語言來寫你的測試代碼。你們選擇最多的一個測試編程語言就是Python。 使用Appium和Python爲iOS和Android應用編寫測試代碼很是容易。ios

在這篇博文中咱們將詳細講解使用Appium下的Python編寫的測試的例子代碼對一個iOS的樣例應用進行測試所涉及的各個步驟,而對Android應用進行測試所需的步驟與此很是相似。git

開始,先自https://github.com/appium/appiumfork並clone Appium,而後按照安裝指南,在你的機器上安裝好Appium。github

我還須要安裝Appium的全部依賴並對樣例apps進行編譯。在Appium的工做目錄下運行下列命令便可完成此任務:web

$ ./reset.sh --ios面試

  編譯完成後,就能夠運行下面的命令啓動Appium了:編程

$ grunt appiumapp

  如今,Appium已經運行起來了,而後就切換當前目錄到sample-code/examples/python。接着使用pip命令安裝全部依賴庫(若是不是在虛擬環境virtualenv之下,你就須要使用sudo命令):dom

$ pip install -r requirements.txtiphone

  接下來運行樣例測試:

$ nosetests simple.py

若是對軟件測試、接口測試、自動化測試、面試經驗交流。感興趣能夠加軟件測試交流:1085991341,還會有同行一塊兒技術交流。

既然安裝完所需軟件並運行了測試代碼,大體瞭解了Appium的工做過程,如今讓咱們進一步詳細看看剛纔運行的樣例測試代碼。該測試先是啓動了樣例應用,而後在幾個輸入框中填寫了一些內容,最後對運行結果和所指望的結果進行了比對。首先,咱們建立了測試類及其setUp方法:

classTestSequenceFunctions(unittest.TestCase):

defsetUp(self):

app=os.path.join(os.path.dirname(__file__),

'../../apps/TestApp/build/Release-iphonesimulator',

'TestApp.app')

app=os.path.abspath(app)

self.driver=webdriver.Remote(

command_executor='http://127.0.0.1:4723/wd/hub',

desired_capabilities={

'browserName':'iOS',

'platform':'Mac',

'version':'6.0',

'app': app

})

self._values=[]

  「desired_capabilities」參數用來指定運行平臺(iOS 6.0)以及咱們想測試的應用。接下來咱們還添加了一個tearDown方法,在每一個測試完成後發送了退出命令:

deftearDown(self):

self.driver.quit()

  最後,咱們定義了用於填寫form的輔助方法和主測試方法:

def_populate(self):

# populate text fields with two random number

elems=self.driver.find_elements_by_tag_name('textField')

foreleminelems:

rndNum=randint(0,10)

elem.send_keys(rndNum)

self._values.append(rndNum)

deftest_ui_computation(self):

# populate text fields with values

self._populate()

# trigger computation by using the button

buttons=self.driver.find_elements_by_tag_name("button")

buttons[0].click()

# is sum equal ?

texts=self.driver.find_elements_by_tag_name("staticText")

self.assertEqual(int(texts[0].text),self._values[0]+self._values[1])

  就是這樣啦!Appium的樣例測試代碼中還有許多Python的例子。若是你對使用Nose和Python來運行Appium測試有任何問題或見解,煩請告知。以上內容但願對你有幫助,有被幫助到的朋友歡迎點贊,評論。

相關文章
相關標籤/搜索