テストメむス。 ファストスタヌト

テストメむス。 ファストスタヌト

こんにちは、みんな。私たちは圱から埐々に姿を珟し、補品に関する䞀連の蚘事を続けおいたす。埌 前ぞ レビュヌ蚘事では、倚くのフィヌドバック (ほずんどが肯定的なもの)、提案、バグレポヌトを受け取りたした。今日はご玹介したす テストメむス 実際に動䜜しおみるず、アプリケヌションの機胜の䞀郚を理解できるでしょう。より完党に没入するには、次のドキュメントを参照するこずをお勧めしたす。 http://docs-ru.testmace.com。じゃ、行こう

むンストヌル

ありきたりな話から始めたしょう。このアプリケヌションは、Linux、Windows、MacOS の 3 ぀のプラットフォヌムで利甚可胜であり、実際にテストされおいたす。興味のある OS のむンストヌラヌを次からダりンロヌドできたす。 私たちのサむト。 Linuxナヌザヌの堎合はむンストヌル可胜です スナップパッケヌゞ。 Microsoft Store ず App Store がすぐにそれに察応するこずを心から願っおいたす (必芁ですか? どう思いたすか?)。

実隓シナリオ

テスト察象ずしお次の暙準シナリオを遞択したした。

  • ログむン: ナヌザヌ - 管理者、パスワヌド - パスワヌド
  • 新しい゚ントリを远加する
  • レコヌドが正しく远加されたこずを確認しおみたしょう

テストしたす https://testmace-quick-start.herokuapp.com/。これは正垞です json サヌバヌ、このようなアプリケヌションのテストに最適です。すべおの json-server ルヌトにトヌクンによる承認を远加し、このトヌクンを受け取るログむン メ゜ッドを䜜成したした。私たちはプロゞェクトを埐々に改善しながら、段階的に進めおいきたす。

プロゞェクトを䜜成し、承認なしに゚ンティティを䜜成しようずしおいたす

たず、新しいプロゞェクトを䜜成したしょう(File->新しいプロゞェクト。アプリケヌションを初めお起動する堎合は、新しいプロゞェクトが自動的に開きたす。たず、新しいレコヌドを䜜成するリク゚ストを行っおみたしょう (承認なしでレコヌドの䜜成が可胜な堎合)。プロゞェクト ノヌドのコンテキスト メニュヌから項目を遞択したす ノヌドを远加 -> リク゚ストステップ。ノヌド名を次のように蚭定したす。 䜜成投皿。その結果、ツリヌに新しいノヌドが䜜成され、このノヌドのタブが開きたす。次のリク゚ストパラメヌタを蚭定したしょう。

  • リク゚ストタむプ: POST
  • URL https://testmace-quick-start.herokuapp.com/posts
  • リク゚スト本文: 倀を含む json {"title": "New testmace quick start post"}
    すべおを正しく実行するず、むンタヌフェむスは次のようになりたす。

テストメむス。 ファストスタヌト

ただし、リク゚ストを実行しようずするず、サヌバヌは 401 コヌドを返し、蚱可がなければこのサヌバヌでは䜕も取埗できたせん。たあ、䞀般的には予想通りです。

認可リク゚ストの远加

すでに述べたように、POST ゚ンドポむントがありたす。 /login、これは json をフォヌムのリク゚スト本文ずしお受け取りたす。 {"username": "<username>", "password": "<password>"}どこ username О password (繰り返しになりたすが、䞊蚘の導入段萜から) には意味がありたす admin О password それぞれ。応答ずしお、この゚ンドポむントは次のような json を返したす。 {"token": "<token>"}。認蚌に䜿甚させおいただきたす。䜜成したしょう リク゚ストステップ 名前付きノヌド ログむン、祖先ずしお機胜したす プロゞェクト ノヌドドラッグ アンド ドロップを䜿甚しお、ツリヌ内の特定のノヌドをそのノヌドよりも高い䜍眮に移動したす 䜜成投皿。新しく䜜成したリク゚ストに次のパラメヌタを蚭定したしょう。

リク゚ストを実行し、レスポンス内のトヌクンを含む 200 番目のコヌドを受信しお​​みたしょう。このようなもの

テストメむス。 ファストスタヌト

リファクタリング: ドメむンの重耇を削陀する

これたでのずころ、リク゚ストは単䞀のスクリプトにリンクされおいたせん。しかし、欠点はこれだけではありたせん。よく芋るず、䞡方のリク゚ストで少なくずもドメむンが重耇しおいるこずがわかりたす。良くない。今埌のスクリプトのこの郚分をリファクタリングする時期が来たした。倉数はこれに圹立ちたす。

倧たかに蚀うず、倉数は他の同様のツヌルやプログラミング蚀語ず同じ圹割を果たしたす - 重耇を排陀し、可読性を高めたす。倉数に぀いお詳しくは、 私たちのドキュメント。この堎合、ナヌザヌ倉数が必芁になりたす。

プロゞェクトノヌドレベルで倉数を定矩したしょう domain 意味のある https://testmace-quick-start.herokuapp.com。 このために必芁です

  • このノヌドを含むタブを開き、右䞊の電卓アむコンをクリックしたす。
  • クリック + 倉数の远加
  • 倉数名ず倀を入力したす
    この堎合、倉数が远加されたダむアログは次のようになりたす。

テストメむス。 ファストスタヌト

わかりたした。継承により、この倉数を任意のネスト レベルの子孫で䜿甚できるようになりたした。私たちの堎合、これらはノヌドです ログむン О 䜜成投皿。テキストフィヌルドで倉数を䜿甚するには、次のように蚘述する必芁がありたす。 ${<variable_name>}。たずえば、ログむン URL は次のように倉換されたす。 ${domain}/login、それぞれ 䜜成投皿 ノヌドの URL は次のようになりたす ${domain}/posts.

したがっお、DRY 原則に基づいお、シナリオをわずかに改善したした。

トヌクンを倉数に保存する

倉数に぀いお話しおいるので、このトピックを少し拡匵しおみたしょう。珟時点では、ログむンに成功するず、サヌバヌから認蚌トヌクンを受け取りたす。これは埌続のリク゚ストで必芁になりたす。このトヌクンを倉数に保存したしょう。なぜなら倉数の倀はスクリプトの実行䞭に決定されたす。これには特別なメカニズムを䜿甚したす。 動的倉数.

たず、ログむン芁求を実行したしょう。タブ内 解析枈み 回答するには、カヌ゜ルをトヌクンの䞊に移動し、コンテキスト メニュヌ (マりスの右ボタンたたはボタンをクリックするず呌び出されたす) で項目を遞択したす。 倉数に代入する。次のフィヌルドを含むダむアログが衚瀺されたす。

  • パス — 答えのどの郚分が採甚されるか (私たちの堎合は body.token)
  • 珟圚の䟡倀 — パスに沿っお存圚する倀 (この堎合、これはトヌクン倀です)
  • 倉数名 — 倉数の名前。 珟圚の䟡倀 保存されたす。私たちの堎合は次のようになりたす token
  • Node — どの祖先に倉数が䜜成されるか 倉数名。プロゞェクトを遞択したしょう

完成したダむアログは次のようになりたす。

テストメむス。 ファストスタヌト

これで、ノヌドが実行されるたびに ログむン 動的倉数 token 応答からの新しい倀で曎新されたす。そしお、この倉数は次の堎所に保存されたす プロゞェクト ノヌドに远加され、継承のおかげで子孫も利甚できるようになりたす。

動的倉数にアクセスするには、次を䜿甚する必芁がありたす。 組み蟌み倉数 $dynamicVar。たずえば、保存されたトヌクンにアクセスするには、次のように呌び出す必芁がありたす。 ${$dynamicVar.token}.

認可トヌクンをリク゚ストに枡したす

前の手順で認蚌トヌクンを受け取りたした。埌はヘッダヌを远加するだけです。 Authorization 意味のある Bearer <tokenValue> 承認を必芁ずするすべおのリク゚スト以䞋を含む 䜜成投皿。これを行うにはいく぀かの方法がありたす。

  1. トヌクンを手動でコピヌし、察象のリク゚ストに認可ヘッダヌを远加したす。この方法は機胜したすが、その䜿甚は「䜜成しお捚おる」タむプのリク゚ストにのみ限定されたす。スクリプトの繰り返し実行には適しおいたせん
  2. 機胜を䜿甚する 認可.
  3. 䜿甚する デフォルトのヘッダヌ

2 番目の方法を䜿甚するのは明らかですが、この蚘事の文脈では、このアプロヌチは面癜くありたせん。そうですね、実際のずころ、承認メカニズムプラスマむナスは他のツヌルでよく知られおいたす (たずえ次のようなものがあっおも) 認可の継承そしお疑問が生じる可胜性は䜎いです。

もう 1 ぀はデフォルトのヘッダヌです。簡単に蚀うず、デフォルト ヘッダヌは、明瀺的に無効にしない限り、デフォルトでリク゚ストに远加される継承された HTTP ヘッダヌです。この機胜を䜿甚するず、たずえば、カスタム認蚌を実装したり、スクリプト内の重耇を単玔に削陀したりできたす。この機胜を䜿甚しお、ヘッダヌでトヌクンを枡しおみたしょう。

以前は、トヌクンを動的倉数に慎重に保存しおいたした。 $dynamicVar.token プロゞェクトノヌドレベルで。残っおいるのは次のこずを行うだけです。

  1. デフォルトのタむトルを定矩する Authorization 意味のある Bearer ${$dynamicVar.token} プロゞェクトノヌドレベルで。これを行うには、ノヌドのプロゞェクト むンタヌフェむスで、デフォルトの芋出し (ボタン ヘッダ をクリックしお)、察応するタむトルを远加したす。倀が入力されたダむアログは次のようになりたす。
    テストメむス。 ファストスタヌト
  2. ログむン芁求からこのヘッダヌを無効にしたす。これは圓然のこずです。ログむン時にはただトヌクンを持っおいないため、このリク゚ストでトヌクンをむンストヌルしたす。したがっお、タブのリク゚ストのログむンむンタヌフェむスで ヘッダ の領域における 遺䌝性 Authorization ヘッダヌのチェックを倖したす。

それだけです。これで、ログむン ノヌドを陀く、プロゞェクト ノヌドの子であるすべおのリク゚ストに認蚌ヘッダヌが远加されたす。この段階ではすでにスクリプトの準備ができおいるこずがわかり、あずはそれを起動するだけです。を遞択しおスクリプトを実行できたす。 ラン プロゞェクト ノヌドのコンテキスト メニュヌ内。

投皿䜜成が正しいかどうかを確認する

この段階で、スクリプトはログむンし、認蚌トヌクンを䜿甚しお投皿を䜜成できたす。ただし、新しく䜜成された投皿の名前が正しいこずを確認する必芁がありたす。぀たり、本質的に残っおいるのは次のこずを行うこずだけです。

  • IDで投皿を受信するリク゚ストを送信し、
  • サヌバヌから受信した名前が投皿の䜜成時に送信された名前ず䞀臎するこずを確認したす。

最初のステップを芋おみたしょう。 ID 倀はスクリプトの実行䞭に決定されるため、動的倉数 (次のように呌びたす) を䜜成する必芁がありたす。 postId) ノヌドから 䜜成投皿 プロゞェクトノヌドレベルで。これを行う方法はすでに知っおいたす。セクションを参照しおください。 トヌクンを倉数に保存する。残っおいるのは、この ID を䜿甚しお投皿を受信するリク゚ストを䜜成するこずだけです。これを行うには、RequestStep を䜜成したしょう ポストを受け取る 次のパラメヌタを䜿甚したす。

  • リク゚ストタむプ: GET
  • URL: ${ドメむン}/posts/${$dynamicVar.postId}

2 番目のステップを実装するには、次のこずを理解する必芁がありたす。 アサヌション 結び目。アサヌション ノヌドは、特定のリク゚ストに察するチェックを䜜成できるノヌドです。各アサヌション ノヌドには、耇数のアサヌション (チェック) を含めるこずができたす。あらゆる皮類のアサヌションの詳现に぀いおは、 ドキュメンテヌション。 我々は䜿甚するだろう Compare 挔算子によるアサヌション equal。アサヌションを䜜成するにはいく぀かの方法がありたす。

  1. 長さ。 RequestStep ノヌドのコンテキスト メニュヌからアサヌション ノヌドを手動で䜜成したす。䜜成したアサヌション ノヌドで、察象のアサヌションを远加し、フィヌルドに倀を入力したす。
  2. 速い。コンテキスト メニュヌを䜿甚しお、RequestStep ノヌド応答からのアサヌションずずもにアサヌション ノヌドを䜜成したす。

2 番目の方法を䜿甚しおみたしょう。私たちの堎合は次のようになりたす。

テストメむス。 ファストスタヌト

理解できない人のために、䜕が起こっおいるかを次に瀺したす。

  1. ノヌドでリク゚ストを行う ポストを受け取る
  2. タブ内 解析枈み 応答し、コンテキスト メニュヌを呌び出しお遞択したす アサヌションの䜜成 -> 比范 -> 等しい

おめでずうございたす。最初のテストが䜜成されたした。シンプルですね。これで、スクリプトを完党に実行しお結果を楜しむこずができたす。残っおいるのは、それを少しリファクタリングしお取り出すこずだけです title 別の倉数に入れたす。ただし、これは宿題ずしお残しおおきたす)

たずめ

このガむドでは、本栌的なシナリオを䜜成し、同時に補品の機胜の䞀郚を確認したした。もちろん、すべおの機胜を䜿甚したわけではありたせん。次の蚘事で、TestMace の機胜の詳现な抂芁を説明したす。乞うご期埅

远䌞すべおの手順を再珟するのが面倒な人のために、芪切に蚘録したした。 リポゞトリ 蚘事のプロゞェクトを䜿っお。次のように開くこずができたす File -> プロゞェクトを開く をクリックしおプロゞェクトフォルダヌを遞択したす。

出所 habr.com

コメントを远加したす