引言
前面已經講過selenium的家族成員,其中一個成員就是這篇文章要講的——selenium IDE。
Selenium IDE介紹
selenium IDE結合瀏覽器提供腳本的錄制,回放以及編輯腳本功能,以及元素的定位,可以使用selenium IDE將錄制的腳本生成相應的帶單元測試框架的自動化測試腳本。
selenium具有錄制功能,可以web回放,錄制的腳本可以轉換為java、python、ruby、php等多種腳本語言。selenium IDE是Firefox的一個插件(xpi文件),依附於Firefox。所以需要先安裝Firefox瀏覽器。
當然后面selenium IDE也支持Chrome瀏覽器,時間好像是2017年12月,第一個版本selenium IDE1.0.Crx,這個需要在谷歌商店搜索,由於selenium服務器在美國,所以下載很慢,甚至經常失敗。
Selenium IDE 下載Chrome插件
這篇文章主要介紹谷歌瀏覽器的插件下載與安裝使用。
1、官方下載地址:https://www.selenium.dev/selenium-ide/,這個不FQ是下不了的,這里不演示步驟。
2、國內下載地址:https://www.crx4chrome.com/crx/77585/ ,這個網絡正常基本可以下載,目前最新版本是3.17.0
點擊Crx4Chrome下載。下載后的文件名稱是:mooikfkahbdckldjjndioackbalphokd-3.17.0-Crx4Chrome.com.crx,直接打開谷歌瀏覽器,打開擴展程序,手動拖到頁面上,如圖:
在瀏覽器右上角,找到selenium IDE的圖標,單擊打開。如圖所示:
3、其他地址:https://www.softpedia.com/get/Internet/Internet-Applications-Addons/Mozilla-Extensions/Selenium-IDE.shtml ,直接點擊下載crx文件,如圖:
4、谷歌插件下載:https://www.extfans.com/ ,也可以進入谷歌插件下載。這個是國內的網站,還是很方便。如圖:
5、其他下載方式:進入群文件下載,如圖:
到此,selenium IDE針對谷歌瀏覽器下載方式已經介紹完。下面就是使用。
Selenium IDE 使用案例
這里介紹的是CRX文件的使用,也就是谷歌瀏覽器上如何使用selelnium IDE錄制與回放腳本。
1、打開IDE,初始化界面如圖:
2、我們就選擇第一種方式來講,如圖:
輸入要錄制Web的地址,我這里輸入的是百度,如圖:
點擊開始錄制,插件會直接啟動一個谷歌瀏覽器的頁面,並且打開你輸入的百度地址,如圖:
簡單的錄制一下百度一下的功能,如圖:
這樣就錄制完成了,點擊右上角的紅色圓點,然后輸入測試用例名稱,如圖:
右擊測試用例,選擇導出按鈕,如圖:
選擇你喜歡的語言,單機導出按鈕,如圖:
選擇python的話,導出的腳本是py文件,打開文件查看:
文件代碼:
# Generated by Selenium IDE import pytest import time import json from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support import expected_conditions from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.desired_capabilities import DesiredCapabilities class Test(): def setup_method(self, method): self.driver = webdriver.Chrome() self.vars = {} def teardown_method(self, method): self.driver.quit() def test_(self): self.driver.get("https://www.baidu.com/") self.driver.set_window_size(1145, 728) self.driver.find_element(By.ID, "kw").click() self.driver.find_element(By.ID, "kw").send_keys("selenium") self.driver.find_element(By.ID, "su").click()
這是導出測試用例,也可以將整個測試套件導出來,方法類似。
接下來介紹一下界面上的功能。
UI界面說明
1.工具欄(Toolbar)
工具欄(Toolbar)最右側的紅色原點就是錄制按鈕。用來錄制用戶在瀏覽器上的操作腳本。
速度控制:用來控制用例執行速度
run all tests 運行所有test; 全部執行:如果當前工程有多個測試用例,使用該按鈕就會將用例全部執行
run current test 運行當前test; 單個執行:使用該按鈕只會自行當前選中的用例。如果當前工程只有一個用例,那么這個按鈕和“全部執行”按鈕效果相同。
暫停/重新開始:可以用來暫停或者重新開始一個正在執行的用例。
停止:停止當前正在執行的用例。
step over current command 跨過當然命令,逐步執行:用來逐步逐步執行一個用例。主要用來調試用例。
錄制:用來錄制用戶在瀏覽器上的操作腳本。
異常時暫停 : pause on exceptions
禁用斷點:
2.測試用例面板(Case Panel)
測試用例面板
Command、Target和Value輸入字段顯示當前選擇的命令及其參數。這些是可以修改當前選擇的命令的輸入字段。在底部窗格的Reference選項卡中指定用於命令的第一個參數總是位於Target字段中。如果第二個參數由Reference選項卡指定,則它總是位於Value字段中。注釋字段(Comment)允許您給當前命令添加注釋,方便日后閱讀。
測試用例錄制的腳本都在這里顯示,如圖:
命令配置
備注:Reference 選項卡是一個很有用的功能,這里用來顯示當前選中 Command 的功能說明,包括該 Command 所需要的參數(不是所有的 Command 都必須具備 Target 和 Value 兩個值),便於快速了解 Command 用法。我查看了其他的文檔發現之前的版本是有的。現在被官方暫時隱藏了,不久的將來會再次開放。
3.導航面版(Navigation Panel)
這里有個重要的功能,就是導出腳本了,選擇你的測試用例或測試套件,右擊導出,如圖:
4.控制台面板(Console Panel)
當您運行測試用例時,顯示進度的錯誤消息和信息消息會自動顯示在這個窗格中,即使您不首先選擇Log選項卡。這些消息通常用於測試用例調試
注意清除日志的清除按鈕【下圖右上角那個圓圈+斜杠就是】
從左至右,創建一個新項目,打開一個項目,保存腳本。
Selenium-IDE 保存的文件都是.side文件,如圖:
打開文件查看:
{ "id": "6027f8a9-1b6b-4600-88a3-f2ae0a3cbaa2", "version": "2.0", "name": "get_baidu", "url": "https://www.baidu.com", "tests": [{ "id": "a11f11e4-c08a-4fc7-bf97-e89e19ffdf0b", "name": "訪問百度", "commands": [{ "id": "6633231f-3b59-4cd8-9b76-b96eb062864d", "comment": "", "command": "open", "target": "/", "targets": [], "value": "" }, { "id": "dc308428-bd13-4e8f-afd5-43e61bd2b230", "comment": "", "command": "setWindowSize", "target": "1332x724", "targets": [], "value": "" }, { "id": "a994ba6e-7e8c-45eb-a8a5-a6ccf95e72a0", "comment": "", "command": "type", "target": "id=kw", "targets": [ ["id=kw", "id"], ["name=wd", "name"], ["css=#kw", "css:finder"], ["xpath=//input[@id='kw']", "xpath:attributes"], ["xpath=//span[@id='s_kw_wrap']/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "selenium" }, { "id": "8cf27024-0bc3-483c-8ef4-5da0a21e8dce", "comment": "", "command": "click", "target": "id=su", "targets": [ ["id=su", "id"], ["css=#su", "css:finder"], ["xpath=//input[@id='su']", "xpath:attributes"], ["xpath=//span[@id='s_btn_wr']/input", "xpath:idRelative"], ["xpath=//span[2]/input", "xpath:position"] ], "value": "" }, { "id": "d8891b92-c145-4e99-86b8-97cd0bba4649", "comment": "", "command": "close", "target": "", "targets": [], "value": "" }] }], "suites": [{ "id": "a5191391-a445-4088-b275-926e0883a365", "name": "Default Suite", "persistSession": false, "parallel": false, "timeout": 300, "tests": ["a11f11e4-c08a-4fc7-bf97-e89e19ffdf0b"] }], "urls": ["https://www.baidu.com/"], "plugins": [] }
備注:項目名稱和用例名稱盡量用英文,用中文的話,可能出現各種不適。並且項目名稱是中文,保存的時候沒有任何反應!
命令使用
1、斷言
通過使用上下文菜單添加驗證和斷言。(Adding Verifications and Asserts With the Context Menu)
如何添加斷言呢?在你錄制腳本的時候(紅色原點變成紅色正方形),在頁面上的任何地方單擊鼠標右鍵。您將看到一個顯示驗證和/或斷言命令的上下文菜單。
2.插入命令(Insert Command)
上面那種斷言是在錄制中的時候使用,你也可以錄制后,手動添加斷言,這樣使用的插入命令方式進行,如圖:
我們新增一個文本斷言,如圖:
將需要的內容放進來
斷言還有一種方式verify,如圖:
3.插入評論(Insert Comment)
我們可以給每一條 command 添加評論,提高腳本可讀性。這里評論指描述。
如果不想運行某條代碼的時候,可以使用注釋功能,如圖:
5.測試步驟(Test Step)
錄制好的步驟發現需要調整,這個時候我們直接按住某個步驟上下拖動來改變其執行順序即可。
6.腳本調試(Debug)
pycharm運行py腳本
我們將剛才導出來的腳本用pycharm打開后,稍微改一下,也是可以運行的,如圖:
# Generated by Selenium IDE import pytest import time import json from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support import expected_conditions from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.desired_capabilities import DesiredCapabilities import unittest class Test(unittest.TestCase): def setup_method(self, method): self.driver = webdriver.Firefox() self.vars = {} def teardown_method(self, method): self.driver.quit() def test_(self): self.setup_method('') self.driver.get("https://www.baidu.com/") self.driver.set_window_size(1145, 728) self.driver.find_element(By.ID, "kw").click() self.driver.find_element(By.ID, "kw").send_keys("selenium") self.driver.find_element(By.ID, "su").click() self.teardown_method('') if __name__ == '__main__': unittest.main()
運行結果:
. ---------------------------------------------------------------------- Ran 1 test in 4.534s OK
總結
上面就是selenium IDE針對谷歌瀏覽器錄制與回放腳本的基本使用方法,還有很多功能及命令沒有講到,有興趣的朋友可以深入研究一下。另外,對測試開發感興趣的朋友可以加入我們學習交流群!