測試錘子。 快速啟動

測試錘子。 快速啟動

大家好。 我們正在慢慢地走出陰影,繼續撰寫有關我們產品的系列文章。 後 回顧文章後,我們收到了許多回饋(大部分是正面的)、建議和錯誤報告。 今天我們將展示 測試錘 在行動中,您將能夠欣賞到我們應用程式的一些功能。 為了更完整地沉浸其中,我建議您參閱我們的文件: http://docs-ru.testmace.com。 那麼,我們走吧!

安裝

讓我們從平庸開始。 該應用程式在三個平台上可用並經過實際測試 - Linux、Windows、MacOS。 您可以從以下位置下載您感興趣的作業系統的安裝程序 我們的網站。 對於 Linux 用戶,可以安裝 快照包。 我們真心希望 Microsoft Store 和 App Store 能夠盡快解決這個問題(有必要嗎?您覺得怎麼樣?)。

實驗場景

我們選擇以下標準場景作為我們的測試對象:

  • 登入:用戶-admin,密碼-密碼
  • 新增條目
  • 讓我們來檢查一下記錄是否有新增正確

我們將測試 https://testmace-quick-start.herokuapp.com/。 這個是正常的 json-伺服器,非常適合測試此類應用程式。 我們剛剛為所有 json-server 路由新增了令牌授權,並建立了一個登入方法來接收此令牌。 我們將循序漸進,逐步完善我們的專案。

建立專案並嘗試未經授權建立實體

首先,讓我們建立一個新專案(文件->新項目)。 如果您是第一次啟動應用程序,則會自動開啟一個新專案。 首先,我們嘗試發出建立新記錄的請求(以防未經授權即可建立記錄)。 從項目節點上下文選單中選擇項目 添加節點 -> 請求步驟。 將節點名稱設定為 建立貼文。 結果,將在樹中建立一個新節點,並且將開啟該節點的標籤。 讓我們設定以下請求參數:

測試錘子。 快速啟動

但是,如果我們嘗試滿足請求,伺服器將返回 401 代碼,未經授權我們將無法在此伺服器上獲得任何內容。 嗯,總的來說,正如預期的那樣)。

新增授權請求

如同已經說過的,我們有一個 POST 端點 /login,它將 json 作為以下形式的請求正文: {"username": "<username>", "password": "<password>"}哪裡 username и password (再次,來自上面的介紹段落)有含義 admin и password 分別。 作為回應,此端點傳回 json,例如 {"token": "<token>"}。 我們將使用它來進行授權。 讓我們來創建 請求步驟 帶名稱的節點 登錄,將充當祖先 專案 節點使用拖放操作,將樹中的給定節點移動到高於該節點的位置 建立貼文。 讓我們為新建立的請求設定以下參數:

讓我們執行請求並接收回應中帶有令牌的第二百個代碼。 像這樣的東西:

測試錘子。 快速啟動

重構:刪除網域重複

到目前為止,請求尚未連結到單一腳本。 但這並不是唯一的缺點。 如果仔細觀察,您會發現至少兩個請求中的網域都是重複的。 不好。 是時候重構未來腳本的這一部分了,變數將幫助我們做到這一點。

初步估計,變數與其他類似工具和程式語言中的作用相同——消除重複、增加可讀性等。 您可以閱讀有關變量的更多信息 我們的文檔。 在這種情況下,我們將需要用戶變數。

讓我們在專案節點層級定義一個變數 domain 有意義 https://testmace-quick-start.herokuapp.com。 為此,有必要

  • 開啟包含此節點的選項卡,然後點擊右上角的計算器圖標
  • 點選 + 新增變數
  • 輸入變數名稱和值
    在我們的例子中,新增了變數的對話框將如下所示:

測試錘子。 快速啟動

好的。 現在,由於繼承,我們可以在任何嵌套層級的後代中使用此變數。 在我們的例子中,這些是節點 登錄 и 建立貼文。 為了在文字欄位中使用變量,您需要編寫 ${<variable_name>}。 例如,登入網址轉換為 ${domain}/login,分別為 建立貼文 節點 url 看起來像 ${domain}/posts.

因此,在 DRY 原則的指導下,我們稍微改進了場景。

將令牌保存到變數中

既然我們正在討論變量,那麼讓我們稍微擴展一下這個主題。 目前,如果登入成功,我們會從伺服器收到一個授權令牌,在後續請求中將需要該令牌。 讓我們將此標記保存到變數中。 因為變數的值將在腳本執行期間確定,我們為此使用特殊的機制 - 動態變數.

首先,讓我們執行登入請求。 在選項卡中 已解析 答案,將遊標移到標記上,然後在上下文選單中(使用滑鼠右鍵或按一下按鈕...呼叫)選擇項目 分配給變量。 將出現一個對話框,其中包含以下欄位:

  • 途徑 — 採用答案的哪一部分(在我們的例子中是 body.token)
  • 當前值 — 路徑上有什麼值(在我們的例子中,這是令牌值)
  • 變量名 — 變數名稱,其中 當前值 將被保留。 在我們的例子中它將是 token
  • 節點 — 將在哪個祖先中建立變量 變量名。 我們選擇項目

完成的對話框如下所示:

測試錘子。 快速啟動

現在每次執行節點時 登錄 動態變數 token 將使用回應中的新值進行更新。 這個變數將會被儲存在 專案 節點,並且由於繼承,將可供後代使用。

要存取動態變量,您必須使用 內建變數 $dynamicVar。 例如,要存取儲存的令牌,您需要調用 ${$dynamicVar.token}.

我們將授權令牌傳遞到請求中

在前面的步驟中,我們收到了授權令牌,我們需要做的就是添加一個標頭 Authorization 有意義 Bearer <tokenValue> 在所有需要授權的請求中,包括 建立貼文。 做這件事有很多方法:

  1. 手動複製令牌並將授權標頭新增至感興趣的請求中。 此方法有效,但其使用僅限於「製造後丟棄」類型的請求。 不適合重複執行腳本
  2. 使用功能 授權.
  3. 使用 預設標頭

使用第二種方法似乎很明顯,但在本文的上下文中,這種方法......無趣。 嗯,真的:授權機制加減是您在其他工具中熟悉的(即使我們有類似的東西) 授權繼承)並且不太可能提出問題。

另一件事是預設標題! 簡而言之,預設標頭是繼承的 HTTP 標頭,除非明確停用,否則預設會將其新增至請求中。 例如,使用此功能,您可以實現自訂授權或簡單地消除腳本中的重複。 讓我們使用此功能在標頭中傳遞令牌。

之前,我們謹慎地將令牌保存到動態變數中 $dynamicVar.token 在專案節點層級。 剩下的就是執行以下操作:

  1. 定義預設標題 Authorization 有意義 Bearer ${$dynamicVar.token} 在專案節點層級。 為此,在節點的項目介面中,您需要打開一個帶有預設標題的對話框(按鈕 右上角)並添加相應的標題。 包含填充值的對話方塊將如下所示:
    測試錘子。 快速啟動
  2. 從登入請求中停用此標頭。 這是可以理解的:在登入時,我們還沒有令牌,我們將透過此請求安裝它。 因此,在tab中請求的登入介面 的區域中 遺傳 取消選取授權標頭。

就這樣。 現在,授權標頭將會新增至專案節點子層級的所有請求(登入節點除外)。 事實證明,在這個階段我們已經準備好了一個腳本,我們所要做的就是啟動它。 您可以透過選擇來運行腳本 在專案節點的上下文功能表中。

檢查帖子創建的正確性

在此階段,我們的腳本可以登入並使用授權令牌建立貼文。 但是,我們需要確保新建立的貼文具有正確的名稱。 也就是說,本質上,剩下的就是執行以下操作:

  • 透過 id 發送接收貼文的請求,
  • 檢查從伺服器收到的名稱是否與建立貼文時發送的名稱相符

讓我們看看第一步。 由於 id 值是在腳本執行期間確定的,因此您需要建立一個動態變數(我們稱之為 postId) 從節點 建立貼文 在專案節點層級。 我們已經知道如何做到這一點,只需參考 部分 將令牌保存到變數中。 剩下的就是建立一個使用此 ID 接收貼文的請求。 為此,我們建立一個 RequestStep 取得貼文 具有以下參數:

  • 請求類型:GET
  • 網址:${domain}/posts/${$dynamicVar.postId}

為了實現第二步,我們需要熟悉 斷言 結。 斷言節點是允許您為特定請求編寫檢查的節點。 每個斷言節點可以包含多個斷言(檢查)。 您可以從我們的文章中閱讀有關所有類型斷言的更多信息 文件. 我們將使用 Compare 帶有運算符的斷言 equal。 有多種方法可以創建斷言:

  1. 長的。 從 RequestStep 節點的上下文功能表手動建立 Assertion 節點。 在創建的斷言節點中,添加感興趣的斷言並填寫字段。
  2. 快速地。 使用上下文選單建立一個斷言節點以及來自 RequestStep 節點回應的斷言

我們使用第二種方法。 這就是我們案例的樣子。

測試錘子。 快速啟動

對於那些不明白的人,這是發生的事情:

  1. 在節點中發起請求 取得貼文
  2. 在選項卡中 已解析 回答,調用上下文選單並選擇 創建斷言 -> 比較 -> 等於

恭喜,我們已經創建了第一個測試! 很簡單,不是嗎? 現在您可以完全運行該腳本並享受結果。 剩下的就是稍微重構一下並將其取出 title 到一個單獨的變數。 但我們會把這個當作作業留給你)

結論

在本指南中,我們創建了一個完整的場景,同時回顧了我們產品的一些功能。 當然,我們並沒有使用所有功能,在接下來的文章中我們將詳細概述 TestMace 的功能。 敬請關注!

PS 對於那些懶得重現所有步驟的人,我們已經記錄下來 存儲庫 與文章中的項目。 你可以用以下命令打開它 文件 -> 打開項目 並選擇項目資料夾。

來源: www.habr.com

添加評論