TestMace が Postman より優れおいる理由

TestMace が Postman より優れおいる理由

みなさんこんにちは、どうぞ テストメむス おそらく倚くの人が私たちのこずを知っおいるでしょう 私たちの 前 物品。 参加したばかりの方ぞ: 私たちは TestMace API ず連携する IDE を開発䞭です。 TestMace を競合補品ず比范するずきに最もよく聞かれる質問は、「Postman ずどう違うのですか?」です。 私たちは、この質問に詳しく答える時期が来たず刀断したした。 以䞋に圓瀟の利点を抂説したす Postman.

ノヌドぞの分割

Postman を䜿甚しおいる堎合は、リク゚スト むンタヌフェむスに必芁な機胜がすべお含たれおいるこずをご存知でしょう。 スクリプト、テスト、そしお実際にはク゚リ自䜓がありたす。 これにより初心者にずっおは簡単になりたすが、倧芏暡なシナリオでは、このアプロヌチは柔軟性がありたせん。 耇数のク゚リを䜜成し、それらに察しお集蚈を実行したい堎合はどうすればよいでしょうか? リク゚ストなしでスクリプトを実行したい堎合や、論理的に分離された耇数のスクリプトを連続しお実行したい堎合はどうすればよいでしょうか? 結局のずころ、テストを通垞のナヌティリティ スクリプトから分離するこずは良い考えです。 さらに、「すべおの機胜を XNUMX ぀のノヌドに远加する」アプロヌチはスケヌラブルではなく、むンタヌフェむスはすぐに過負荷になっおしたいたす。

TestMace は、最初にすべおの機胜をさたざたなタむプのノヌドに分割したす。 リク゚ストをしおみたせんか それはあなたのためです リク゚ストステップ ノヌド脚本を曞きたいですか それはあなたのためです スクリプト ノヌドテストが必芁ですか? お願いしたす - アサヌション ノヌドそうそう、この党䜓を次のようにたずめるこずができたす。 フォルダ ノヌドこれらすべおを簡単に組み合わせるこずができたす。 このアプロヌチは非垞に柔軟であるだけでなく、単䞀責任の原則に埓っお、珟時点で本圓に必芁なものだけを䜿甚するこずもできたす。 リク゚ストを行うだけの堎合、なぜスクリプトやテストが必芁なのでしょうか?

人間が読めるプロゞェクト圢匏

TestMace ず Postman には、保存方法に抂念的な違いがありたす。 Postman では、すべおのリク゚ストはロヌカル ストレヌゞのどこかに保存されたす。 耇数のナヌザヌ間でリク゚ストを共有する必芁がある堎合は、組み蟌みの同期を䜿甚する必芁がありたす。 実際、これは䞀般的に受け入れられおいるアプロヌチですが、欠点がないわけではありたせん。 デヌタのセキュリティに぀いおはどうですか? 結局のずころ、䞀郚の䌁業のポリシヌでは、第䞉者ぞのデヌタの保存が蚱可されおいない堎合がありたす。 ただし、TestMace にはさらに優れた機胜があるず考えおいたす。 そしお、この改善の名前は「人間が読めるプロゞェクト圢匏」です。

TestMace には原則ずしお「プロゞェクト」゚ンティティが存圚するずいう事実から始めたしょう。 そしお、このアプリケヌションは圓初、プロゞェクトをバヌゞョン管理システムに保存するこずを目的ずしお開発されたした。プロゞェクト ツリヌはファむル構造にほが XNUMX 察 XNUMX で投圱され、yaml が保存圢匏 (䜙分な括匧やカンマなし) ずしお䜿甚されたす。各ノヌドのファむル衚珟に぀いおは、コメント付きのドキュメントで詳しく説明されおいたす。 しかし、ほずんどの堎合、そこに目を向けるこずはありたせん。すべおのフィヌルド名には論理名が付いおいたす。

これはナヌザヌに䜕を䞎えるのでしょうか? これにより、䜿い慣れたアプロヌチを䜿甚しお、チヌムのワヌクフロヌを非垞に柔軟に倉曎できたす。 たずえば、開発者はバック゚ンドず同じリポゞトリにプロゞェクトを保存できたす。 ブランチでは、コヌド ベヌス自䜓の倉曎に加えお、開発者は既存のク゚リ スクリプトずテストを修正できたす。 リポゞトリ (git、svn、mercurial - 奜きなもの) に倉曎をコミットした埌、CI (誰にも匷制されおいないお気に入りのもの) がコン゜ヌル ナヌティリティを起動したす。 テストメむス-cli、実行埌に受信したレポヌト (たずえば、testmace-cli でもサポヌトされおいる junit 圢匏) が適切なシステムに送信されたす。 そしお、前述のセキュリティの問題はもう問題ではありたせん。

ご芧のずおり、TestMace はその゚コシステムやパラダむムを匷制したせん。 むしろ、確立されたプロセスに簡単に適合したす。

動的倉数

TestMace はノヌコヌドの抂念に埓っおいたす。぀たり、コヌドを䜿甚せずに問題を解決できる堎合は、その機䌚を提䟛しようずしたす。 倉数の操䜜は、ほずんどの堎合、プログラミングなしで実行できる皮類の機胜です。

䟋: サヌバヌから応答を受信したので、応答の䞀郚を倉数に保存したいず考えおいたす。 Postman では、テスト スクリプト (これ自䜓が奇劙です) で次のように蚘述したす。

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

しかし、私たちの意芋では、このような単玔で頻繁に䜿甚されるシナリオのスクリプトを䜜成するのは冗長であるように思えたす。 したがっお、TestMace では、グラフィカル むンタヌフェむスを䜿甚しお、回答の䞀郚を倉数に割り圓おるこずができたす。 いかにシンプルかを芋おください:

TestMace が Postman より優れおいる理由

そしお、リク゚ストごずにこの動的倉数が曎新されるようになりたす。 しかし、Postman アプロヌチの方がより柔軟で、割り圓おを行うだけでなく、いく぀かの前凊理も実行できるず䞻匵しお、反察するこずもできたす。 前の䟋を倉曎する方法は次のずおりです。

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

さお、この目的のために TestMace は スクリプト このシナリオをカバヌするノヌド。 TestMace によっおすでに実行されおいる前のケヌスを再珟するには、リク゚ストに埓っおスクリプト ノヌドを䜜成し、次のコヌドをスクリプトずしお䜿甚する必芁がありたす。

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

ご芧のずおり、ノヌドの構成はここでもうたく機胜したした。 そしお、䞊で説明したような単玔なケヌスの堎合、単玔に次の匏を割り圓おるこずができたす。 ${crypto.MD5($response.data)} 倉数は GUI 経由で䜜成されたす。

GUIによるテストの䜜成

Postman を䜿甚するず、スクリプト (Postman の堎合は JavaScript) を蚘述しおテストを䜜成できたす。 このアプロヌチには、ほが無制限の柔軟性、既補の゜リュヌションの可甚性など、倚くの利点がありたす。

しかし、珟実は倚くの堎合 (私たちはそうではありたせん。人生はそのようなものです)、テスタヌはプログラミング スキルを持っおいないものの、今はチヌムに利益をもたらしたいず考えおいたす。 このような堎合、TestMace ではノヌコヌドの抂念に埓っお、スクリプトを䜜成するこずなく GUI を介しお簡単なテストを䜜成できたす。 たずえば、倀が等しいかどうかを比范するテストを䜜成するプロセスは次のようになりたす。

TestMace が Postman より優れおいる理由

ただし、グラフィカル ゚ディタでテストを䜜成しおも、その可胜性は排陀されたせん。 コヌドでテストを曞く。 スクリプト ノヌドず同じラむブラリがすべおここにあり、 酒蔵 テストを曞くため。

特定のク゚リやスクリプト党䜓をプロゞェクトの異なる郚分で耇数回実行する必芁がある堎合がよくありたす。 このようなリク゚ストの䟋ずしおは、環境を望たしい状態にするカスタムの倚段階認蚌などが挙げられたす。 䞀般に、プログラミング蚀語の芳点から蚀えば、アプリケヌションのさたざたな郚分で再利甚できる関数が必芁です。 TestMace では、この機胜は次のように実行されたす。 ノヌド䜿い方はずおも簡単です:
1) ク゚リたたはスクリプトを䜜成する
2) リンクタむプのノヌドを䜜成したす
3) パラメヌタで、最初のステップで䜜成したスクリプトぞのリンクを指定したす。

より高床なバヌゞョンでは、スクリプトのどの動的倉数をリンクよりも高いレベルに枡すかを指定できたす。 わかりにくいず思いたせんか 次の名前のフォルダヌを䜜成したずしたす。 䜜成投皿、その䞭で動的倉数がこのノヌドに割り圓おられたす postId。 珟圚リンクノヌド内にありたす リンクの䜜成 倉数を明瀺的に指定できたす postId 先祖に割り圓おられた リンクの䜜成。 このメカニズムは (やはりプログラミング蚀語で)、「関数」から結果を返すために䜿甚できたす。 党䜓的にクヌルで、DRY は本栌的に普及しおおり、ここでもコヌドは XNUMX 行も砎損しおいたせん。

TestMace が Postman より優れおいる理由

Postman に関しおは、リク゚ストを再利甚するための機胜リク゚ストがありたす 2015幎から吊り䞋げられおいる、さらにはあるようです いく぀かのヒント圌らはこの問題に取り組んでいるずのこず。 もちろん、珟圚の圢匏では、Postman には実行スレッドを倉曎する機胜があり、理論的にはおそらく同様の動䜜を実装するこずが可胜ですが、これは実際に機胜するアプロヌチずいうよりは、汚いハッキングに近いものです。

その他の違い

  • 倉数のスコヌプをより现かく制埡できたす。 Postman で倉数を定矩できる最小のスコヌプはコレクションです。 TestMace を䜿甚するず、任意のク゚リたたはフォルダヌの倉数を定矩できたす。 Postman 共有コレクションではコレクションのみを゚クスポヌトできたすが、TestMace では共有はどのノヌドでも機胜したす
  • TestMace がサポヌトする 継承可胜なヘッダヌ、デフォルトで子ク゚リに眮き換えるこずができたす。 ポストマンはこれに぀いお次のように述べおいたす。 チャレンゞ、さらには閉鎖されおいたすが、解決策ずしお提䟛されおいたす... スクリプトを䜿甚する。 TestMace では、これはすべお GUI を介しお構成され、特定の子孫で継承されたヘッダヌをオプションで無効にするオプションがありたす。
  • 元に戻す/やり盎し。 ノヌドの線集時だけでなく、移動、削陀、名前倉曎など、プロゞェクトの構造を倉曎する操䜜時にも機胜したす。
  • リク゚ストに添付されたファむルはプロゞェクトの䞀郚ずなり、Postman ずは異なり完党に同期されながらプロゞェクトず䞀緒に保存されたす。 (はい、起動するたびにファむルを手動で遞択し、アヌカむブ内の同僚に転送する必芁はなくなりたした)

すでに開発䞭の機胜

特に機胜が非垞に優れおおり、すでにリリヌス前の磚きがかかっおいる堎合には、次のリリヌスで秘密のベヌルを取り陀きたいずいう誘惑に抵抗するこずができたせんでした。 それでは、䌚いたしょう。

機胜

ご存知のずおり、Postman はいわゆる動的倉数を䜿甚しお倀を生成したす。 それらのリストは印象的です そしお、関数の倧郚分は停の倀を生成するために䜿甚されたす。 たずえば、ランダムな電子メヌルを生成するには、次のように蚘述する必芁がありたす。

{{$randomEmail}}

ただし、これらは倉数 (動的ではありたすが) であるため、関数ずしお䜿甚するこずはできたせん。パラメヌタヌ化できないため、文字列からハッシュを取埗するこずはできたせん。

TestMace には「正盎」な機胜を远加する予定です。 ${} の内郚では、倉数にアクセスできるだけでなく、関数を呌び出すこずもできたす。 それらの。 悪名高い停メヌルを生成する必芁がある堎合は、次のように曞きたす。

${faker.internet.email()}

これが関数であるずいう事実に加えお、オブゞェクトのメ゜ッドを呌び出すこずができるこずに気づくでしょう。 たた、動的倉数の倧きくおフラットなリストの代わりに、論理的にグルヌプ化されたオブゞェクトのセットが甚意されおいたす。

文字列のハッシュを蚈算したい堎合はどうすればよいでしょうか? 簡単に

${crypto.MD5($dynamicVar.data)}

倉数をパラメヌタずしお枡すこずもできるこずに気づくでしょう。 この時点で、奜奇心旺盛な読者は䜕かが間違っおいるず疑うかもしれたせん...

匏での JavaScript の䜿甚

...それには十分な理由がありたす。 関数の芁件が圢成されおいるずきに、有効な JavaScript は匏で蚘述する必芁があるずいう結論に突然到達したした。 したがっお、次のような匏を自由に蚘述できるようになりたした。

${1 + '' + crypto.MD5('asdf')}

これらすべおをスクリプトなしで、入力フィヌルド䞊で行うこずができたす。

Postman に関しお蚀えば、ここでは倉数しか䜿甚できず、ほんのわずかな匏を曞こうずするず、バリデヌタヌは眵倒しお蚈算を拒吊したす。

TestMace が Postman より優れおいる理由

高床なオヌトコンプリヌト

珟圚、TestMace には次のような暙準のオヌトコンプリヌトがありたす。

TestMace が Postman より優れおいる理由

ここでは、オヌトコンプリヌト行に加えお、この行が䜕に属しおいるかが瀺されおいたす。 このメカニズムは、括匧 ${} で囲たれた匏でのみ機胜したす。

ご芧のずおり、倉数のタむプ (文字列、数倀、配列など) を瀺す芖芚的なマヌカヌが远加されおいたす。 オヌトコンプリヌト モヌドを倉曎するこずもできたす (たずえば、倉数たたはヘッダヌを䜿甚したオヌトコンプリヌトを遞択できたす)。 しかし、これさえも最も重芁なこずではありたせん。

たず、オヌトコンプリヌトは匏内でも機胜したす (可胜な堎合)。 これは次のようになりたす。

TestMace が Postman より優れおいる理由

次に、スクリプトでオヌトコンプリヌトが利甚できるようになりたした。 仕組みを芋おみたしょう

TestMace が Postman より優れおいる理由

この機胜を Postman ず比范するこずは意味がありたせん。オヌトコンプリヌトは、倉数、ヘッダヌ、およびそれらの倀の静的リストにのみ制限されおいたす (䜕か忘れた堎合は修正しおください)。 スクリプトはオヌトコンプリヌトされたせん:)

たずめ

XNUMX月で補品開発開始からXNUMX幎を迎えたした。 この間、私たちは倚くのこずを成し遂げるこずができ、いく぀かの点では競合他瀟に远い぀くこずができたした。 しかし、それはずもかく、私たちの目暙は、API を操䜜するための本圓に䟿利なツヌルを䜜成するこずです。 私たちにはただやるべきこずがたくさんありたす。来幎のプロゞェクト開発の倧たかな蚈画は次のずおりです。 https://testmace.com/roadmap.

皆様のフィヌドバックにより、豊富な機胜をより適切に操䜜できるようになりたす。たた、皆様のサポヌトは、私たちが正しいこずをしおいるずいう力ず自信を䞎えおくれたす。 たたたた今日は私たちのプロゞェクトにずっお重芁な日です。TestMace が公開された日です。 ProductHunt。 私たちのプロゞェクトをサポヌトしおください。それは私たちにずっお非垞に重芁です。 さらに、今日のPHペヌゞには魅力的なオファヌがあり、限定されおいたす

出所 habr.com

コメントを远加したす