Macaca是一套完整的自動化測試解決方案,優(yōu)點(diǎn)是跨平臺,同時(shí)支持移動端和PC端。舉個栗子~移動端我們常用Appium,Web端常用Selenium進(jìn)行自動化測試,當(dāng)測試中同時(shí)涉及到移動端和Web端時(shí),我們必須使用兩個平臺去實(shí)現(xiàn)。使用Macaca就不用這么麻煩啦,在這一個平臺上就可以實(shí)現(xiàn)。
這里只在macaca下使用python進(jìn)行web端測試
一、Macaca安裝
官網(wǎng)上有詳細(xì)的安裝步驟,環(huán)境要求如下:
1)需要安裝Node.js,去Node.js的官網(wǎng)直接下載安裝就可以了。
2)Macaca Cli,客戶端安裝
? ? npm i -g macaca-cli
看到下面的畫面就是安裝成功啦

二、用python進(jìn)行web端測試
下載官網(wǎng)的例子(https://github.com/macaca-sample/sample-python),先安裝electron的驅(qū)動,和requirement.txt里的wd.py(官方描述是:Python WebDriver client implemented most of the APIs in the WebDriver Protocol.)
? ? npm install -g macaca-cli macaca-electron
? ? pip install -r requirements.txt
安裝requirements中的wd.py時(shí),遇到個報(bào)錯,提示operation not permitted,但已經(jīng)用了sudo進(jìn)行安裝。問題類似于http://stackoverflow.com/questions/31900008/oserror-errno-1-operation-not-permitted-when-installing-scrapy-in-osx-10-11 中的描述(我當(dāng)時(shí)沒截圖),然后也使用其中的方法解決掉了。使用命令:
? ? sudo pip install -r requirements.txt --ignore-installed six
然后運(yùn)行測試
? ? macaca server
注意:這里輸入上面這條命令后,需要再開一個窗口輸入下面的命令。相當(dāng)于一個窗口模擬服務(wù)端顯示相關(guān)消息,另一個模擬客戶端發(fā)送請求。
? ? python tests/macaca-desktop-sample.test.py
運(yùn)行成功后界面如下:

左邊的窗口是運(yùn)行了macaca server后的窗口。右邊的紅框中的兩點(diǎn)表示兩個用例都成功(如果失敗會顯示E)。
來看一下這個python腳本中寫的什么用例,打開這個macaca-desktop-sample.test.py文件,可以看到用例如下。

第一個是設(shè)置窗口大小,再輸入url。第二個是在網(wǎng)站上找到kw元素(通過firefox或chrome中的元素定位可以知道這個kw是搜索框的id,su是搜索按鈕的id),輸入macaca,點(diǎn)擊搜索。等待3秒。通過assert斷言驗(yàn)證搜索結(jié)果。再在當(dāng)前頁面搜索框文字后加上elementByXPath,點(diǎn)擊搜索。
另外可以看到代碼中desired_cap中browserName為electron,在官網(wǎng)描述中還可以支持Chrome,Safari。下面換成Chrome進(jìn)行測試,將代碼中browserName改為Chrome。
然后需要安裝chrome的驅(qū)動(跟前面安裝macaca-electron一樣)
? ? CHROMEDRIVER_VERSION=2.29 npm i macaca-chrome -g
這里需要注意:
1)一定必須加上版本號!要安裝與Chrome版本對應(yīng)的chromedriver,不然會報(bào)錯。chromedriver的版本可以在下面的網(wǎng)址看到,與Chrome版本的對應(yīng)關(guān)系可以在版本文件夾下的notes.txt中第一行就可以看到。我用的是Chrome v58,所以安裝了2.29的chromedriver。
http://chromedriver.storage.googleapis.com/index.html
2)直接安裝chromedriver是不行的!安裝macaca-chromedriver也是不行的!必須安裝macaca-chrome。因?yàn)槁窂綍灰粯?,會?bào)錯。
安裝完成后,再次運(yùn)行macaca-desktop-sample.test.py,就可以看到會打開Chrome瀏覽器啦~
搞定~