使用 iMacros 來自動化日常的工作

這裡介紹的 iMacros 是一個 Firefox 的擴展,主要是藉由編輯宏(Macros)來操控瀏覽器,來實現以往需要使用滑鼠鍵盤的人手操作。擴展的用途很容易想像:只要是需要使用瀏覽器,又想要自動操作的,都可以使用這個擴展來方便工作。 比較經常用的大體上可以分為 2 類,分別是用來進行自動測試以及簡便日常作業的處理,所以對 iMacros 的利用,都是在簡化繁瑣的日常作業。

安裝地址:iMacros for Firefox

界面介紹

  • 在附加組件欄的啟動按鈕,按下後可以切換菜單會在左邊出現/消失。
  • 這裡的 #Current.iim 是個保留字,代表當前的腳本,iim 是腳本檔案的附檔名。當前腳本的意思,就是說每當我們錄製新的腳本的時候,錄製的內容都會被保存在這裡,每次按下錄製的按鈕後,會先清空這個檔案里的內容,然後記錄當前正在錄製的內容。如果想要保存錄製完成的內容,必須將這個當前腳本,另存為其他名稱。
  • 這裡的 3 個 Tab 分別整理了 3 個大類的功能。運行:播放腳本,已經播放時候的細節。記錄:錄製的細節,功能的核心所在。Manage: 對腳本進行管理等等。
  • iMacros 提供了很多選項讓使用者根據需求進行設置。

功能介紹

對於一個 Web 開發人員來說,用來做各種業務場景測試應該是一個很好的工具。可以嘗試各種 Test Case,在進行各種維護開發,版本升級的時候,除了對修改過的代碼進行 UT 測試之外,利用這個工具來做對業務流程的測試,將會很有效率。

舉個例子,比方說是用戶註冊,登錄功能,對於使用者來說都是填寫幾個欄位後進行提交,完成了註冊後,就可以使用取得的 ID 和密碼來進行接下來的登錄。 這時,如果要填寫的欄位很多,每次修改一次程序,都需要新建用戶來進行一次測試。只要安排這樣的一個腳本, 就可以每次在調試的時候運行一次就可以了。

除了透過界面的運行、暫停、停止、Loop 次數的設定之外,藉由編輯宏,還可以進一步對於響應時間的測量,每一個 Click 之間設定停止時間等等進行詳細控制。 iMacros 腳本允許我們保存畫面截屏(可以選擇各種常用的格式)和保存畫面 HTML 等的方式來對每個畫面進行保存。在保存圖片或頁面的時候,命名的規則也可以在腳本裡面進行設定,比方說以時間命名,以畫面名稱命名,或是綜合命名等等。

iMacros 提供了讀取 CSV 文件,在編製 iMacros 腳本的時候,也可以使用一些變數來對數據進行傳遞與控制。入門的門檻也比較低,因為不需要熟悉很多 iMacros 腳本的語法,變數也不需要在iMacros腳本裡面進行控制。

iMacros 的應用

下面,我以錄製一個在 WordPress 博客上自動發布評論的宏為例,說明一下如何使用 iMacros 簡化我們的工作。

步驟一、錄製宏

  1. 選中 iMacros 窗口中的 #Current.iim,然後點擊「記錄」按鈕。
  2. 在 Firefox 的地址欄輸入需要發布評論的博客網址,回車確認。
  3. 在博客留言區域輸入評論、姓名、電子郵箱、網址,單擊「發表評論」按鈕.
  4. 單擊 iMacros 窗口中的「刪除 Cache&Cookies 」按鈕。
  5. 單擊iMacros窗口中的「停止按」鈕,結束宏的錄製,並將這個宏另存為為 wordpress.iim。

步驟二、建立 CSV 文件

iMacros 支持讀取 CSV 文件,這是一個十分有用的功能,比如:我們可以利用 Scrapebox 採集某一類型的論壇註冊地址,保存到 CSV 文件,然後通過 iMacros 來批量註冊;或者將註冊好的論壇或博客的賬號、密碼保存到 CSV 文件,利用 iMacros 來自動發布文章。在本例中,我們需要在 WordPress 博客的不同文章發布不同的評論,所以也需要調用 CSV 文件來實現這個功能。

  1. iMacros 默認讀取「/My Documents/iMacros/Datasources/」(Manage 目錄下可以設置,見下圖)文件夾下面的文件,所以我們在這個文件夾下面建立一個 test.csv 的文件。
  2. Wordprss 博客留言需要用到評論、姓名、電子郵箱、網址這四個元素,另外,我們還需要將用來留言的博客網址放到 CSV 文件中,完成後的 CSV 文件如下圖所示

步驟三、修改宏代碼

1、選中剛剛另存為的 iim,我這裡是 wordpress.iim,右鍵選擇「編輯宏」按鈕。

下圖中的源代碼就是 iMacros 所記錄的步驟一的一系列動作,比如第四行是進入到目標網址,第五行是輸入評論,第六行是輸入昵稱

2、因為我們要實現批量發布博客評論的功能,即每次進入到不同的網址,發布不同的評論,所以需要調用步驟二建立的 CSV 文件中的內容。

首先,將原來的代碼

URL GOTO=XXX 替換成:

SET !DATASOURCE test.csvSET !DATASOURCE_COLUMNS 5SET !LOOP 2SET !DATASOURCE_LINE {{!LOOP}}URL GOTO={{!COL1}}

這段代碼的意思是:

  • SET !DATASOURCE test.csv 表示讀取 test.csv 這個文件
  • SET !DATASOURCE_COLUMNS 5 告訴 iMacros 這個 CSV 文件有 5 列
  • SET !LOOP 2 從第 2 行開始讀取內容
  • URL GOTO={{!COL1}} 告訴瀏覽器訪問 CSV 文件的第一列的 URL,也就是用戶界面的 URL

3、同樣的道理,將「CONTENT=評論1」稱替換成「CONTENT={{!COL5}}」,表示自動獲取 CSV 文件第五欄的數據,依此類推,將代碼修改成如下的形式:

4、還可以在代碼的結尾加上如下代碼,表示執行完一次,等待時間為10秒鐘。

WAIT SECONDS=10

(BTW:如果你想像我一樣用 wordpress 測試,最好提前改一下 wp 對評論時間的限制,在 wp-includes 文件夾下面 comment.php 文件中)

步驟四、測試效果

  1. 選中「 wordpress.iim」,設置循環為 3,iMacros 即開始自動運行,在 iMacros 窗口以及右邊的瀏覽器中可以看到 iMacros 的運行情況。iMacros 會依次瀏覽 CSV 文件第一列中的三個 URL,然後在博客留言區域自動填寫內容,並自動遞交
  2. 運行完畢之後,登陸 WP 後台,可以看到 iMacros 已經成功地在博客上發布了三條留言

——

上面的簡單演示,應該可以了解這個工具的使用方法,只要將腳本執行,很快就可以收穫結果了。唯一的問題就是如何書寫腳本,iMacros 的網站提供了很清晰的索引,還有相關的範例。如果想要實現某項功能又不知道該如何的時候,通常在上面都可以找到相關的解答:iMacros


推薦閱讀:

手工測試如何轉向自動化測試
自動化測試體系應該是什麼情形的?
Python實踐-Python自動化測試常用庫整理
介面測試基礎
Windows Automation API和自動化測試

TAG:火狐浏览器Firefox | 自动化测试 | Firefox附加组件 |