JetBrains是一家全球知名的軟體開發公司,他們公司推出的IDE幾乎是程式語言的首選,IntelliJ IDEA 之於Java,PyCharm之於Python,以及GoLand之於go等。
5月24號JetBrains官方宣佈Aqua正式公開發布,這是一款專門針對自動化測試打造的IDE。
對於一名自動化測試的工程師,對於這些語言和工具再並不陌生。
Aqua下載地址:https://www.jetbrains.com/zh-cn/aqua/
建立專案
首先,啟動Aqua後,可以透過選單欄:File
-> New
-> project...
新建專案。
在建立專案時 語言
、框架
和 庫
其實是一個排列組合的關係。我這裡選擇最為熟悉的 Python
、pytest
和 selenium
。
- Name: 專案名稱。
- Environment type: 用於指定環境管理工具。
- Base interpreter: 指定Python版本。
- Poetry executable: 推薦使用
Poetry
,Python需要先安裝Poetry,這裡才能選擇。
其次,手動安裝依賴,可能是我在建立專案的時候報了一個錯誤,導致依賴庫沒有安裝,不過,沒關係,我們可以手動安裝。
開啟 Terminal 使用 pip 命令安裝個pytest
和 selenium
即可。
功能體驗
樣例程式碼
專案建立完成,Aqua預設建立了 test.py
檔案,並生成了示例程式碼。
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
class TestWebsite:
# 1. Check browser configuration in browser_setup_and_teardown
# 2. Run 'Selenium Tests' configuration
# 3. Test report will be created in reports/ directory
@pytest.fixture(autouse=True)
def browser_setup_and_teardown(self):
self.use_selenoid = False # set to True to run tests with Selenoid
if self.use_selenoid:
self.browser = webdriver.Remote(
command_executor='http://localhost:4444/wd/hub',
desired_capabilities={
"browserName": "chrome",
"browserSize": "1920x1080"
}
)
else:
self.browser = webdriver.Chrome()
self.browser.maximize_window()
self.browser.implicitly_wait(10)
self.browser.get("https://www.jetbrains.com/")
yield
self.browser.close()
self.browser.quit()
def test_tools_menu(self):
"""this test checks presence of Developer Tools menu item"""
tools_menu = self.browser.find_element(By.XPATH,
"//div[@data-test='main-menu-item' and @data-test-marker = 'Developer Tools']")
tools_menu.click()
menu_popup = self.browser.find_element(By.CSS_SELECTOR, "div[data-test='main-submenu']")
assert menu_popup is not None
...
程式碼比較簡單,透過 @pytest.fixture
建立瀏覽器的啟動和關閉。test_xxx
實現測試用例。熟悉Selenium的工程師來說,這個可忽略不計。
定位元素
在程式碼中,每個定位前面多了一個小icon,點選可以開啟內建的瀏覽器,可以快速地幫助我們生成元素定位。
這個功能就實用很多了,在編寫Web UI 自動化測試的時候,查詢元素的定位往往是比較耗時的工作,這個功能可以有效地節省查詢元素的定位的時間。
內建HTTP client
我們可以建立一個 test_api.http
的檔案,直接編寫 HTTP 請求。
這個功能僅僅用於介面的除錯,JetBrains 其他專業版的IDE都內建的有這個功能。這個都算不上Aqua的特色功能。
其他
- Docker
藉助 Aqua,可以訪問 Docker 容器,這樣一來,您可以執行並除錯容器、下載和構建映象、執行多容器應用程式。
- 資料庫
你可以無縫地處理多個資料庫、開發 SQL 指令碼,以及在 IDE 中執行低階資料斷言。 Aqua 可以連線到實時資料庫、執行查詢、匯出資料,並讓您在可視介面中管理架構。 這意味著您可以直接從 IDE 訪問 Oracle、SQL Server、PostgreSQL、MySQL 等資料庫。
- 測試管理系統
我們新增了註解來支援 Allure Framework 等測試報告工具或 Serenity BDD 等內建測試框架機制。 IDE 允許你點選問題 ID 在 Web 瀏覽器中開啟問題或測試管理系統用例。
- AI Assistant
藉助 AI Assistant,您可以直接從 Web 檢查器中開啟的網頁建立 UI 測試並生成頁面模型。AI Assistant 會為所選框架和程式語言生成合適的程式碼,包括關鍵網頁元素。然後,您可以複製程式碼並將其插入現有檔案或新增到新檔案中。
總結
還有其他組合每體驗,比如 typescript + playwirht 的編寫自動化體驗。
整體感覺,JetBrains 拿著自家已有的東西,隨便整合一下 命名個新產品出來營銷。如果你已經在使用 PyCharm 或者 IntelliJ IDEA 在寫自動化測試,其實沒太大必要專門來用 Aqua,如果使用的是其他編輯器或這個IDE,不妨嘗試一下Aqua。
我自己打算使用一段時間,繼續挖掘一下Aqua的功能。