Aqua 專為自動化測試打造的IDE

虫师發表於2024-06-02

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... 新建專案。

在建立專案時 語言框架 其實是一個排列組合的關係。我這裡選擇最為熟悉的 Pythonpytestselenium

  • Name: 專案名稱。
  • Environment type: 用於指定環境管理工具。
  • Base interpreter: 指定Python版本。
  • Poetry executable: 推薦使用Poetry,Python需要先安裝Poetry,這裡才能選擇。

其次,手動安裝依賴,可能是我在建立專案的時候報了一個錯誤,導致依賴庫沒有安裝,不過,沒關係,我們可以手動安裝。

開啟 Terminal 使用 pip 命令安裝個pytestselenium 即可。

功能體驗

樣例程式碼

專案建立完成,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的功能。

相關文章