7

exec チェーンを使用したガトリング シナリオ。リクエスト後、返されたデータが保存されます。後で処理され、処理結果に応じて、テストに失敗するか合格する必要があります。

これは考えられる最も単純なシナリオのように思えますが、実行ブロック内からテストを失敗させる方法について信頼できる情報が見つかりません。assertはシナリオを破り、ガトリングのように見えます (例: 例外スローはテストに失敗するだけではありません)。

例:

// The scenario consists of a single test with two exec creating the execChain
val scn = scenario("MyAwesomeScenario").exec(reportableTest(

     // Send the request
     exec(http("127.0.0.1/Request").get(requestUrl).check(status.is(200)).check(bodyString.saveAs("MyData")

     // Process the data
    .exec(session => { 
         assert(processData(session.attributes("MyData")) == true, "Invalid data");
    })
))

シナリオのどこかで、「ガーディアンが失敗しました。システムをシャットダウンしました」。

これは、便利でよく使われる方法のようです。単純なものが欠けている可能性があります。どうやってするの?

4

4 に答える 4

5

Gatling API を遵守する必要があります。

  1. チェックを使用すると、テストではなくリクエストが「失敗」します。テスト全体の不合格を探している場合は、Assertions API とJenkins プラグインを確認する必要があります。
  2. チェックはリクエスト サイトでのみ実行できます。後で実行することはできません。非常に正当な理由の 1 つは、現在行っているように bodyString をセッションに格納すると、大量のメモリを使用して終了し、クラッシュする可能性があることです (まだ参照されているため、ガベージ コレクションはできません)。通常はオプションの変換processDataステップで、チェックを実行する必要があります。
于 2014-09-02T11:54:57.587 に答える