Web自動化--Macaca-python

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安裝

https://macacajs.github.io

官網(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瀏覽器啦~

搞定~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容