2017-06-28 3 views
1

私はApache Jmeterでアプリケーションをテストしています。私は、データベース内のユーザを追加する登録ユーザメソッドを呼び出すことを考えました。しかし、電子メールがすでに存在する場合、データベースアクションは実行されません。身体データに乱数を追加するにはどうすればよいですか?または、私のアプリケーションがデータベースに接続されていることをテストすることができる他の方法がありますか?ありがとうございました。 enter image description hereenter image description hereApache Jmeter:要求のために本文にランダムデータを追加してください

コントローラーコード:

@RequestMapping(value = "/person/add", method = RequestMethod.POST) 
public String addPerson(@ModelAttribute("person") Person person, BindingResult bindingResult) { 
    System.out.println("Person add called"+person.getUsername()); 
    person.setUsername(this.stripHTML(person.getUsername())); 
    int personId = this.personService.addPerson(person); 
    if (!(personId == 0)) { 
     Person person1 = this.personService.getPersonById(personId); 
     Collection<GrantedAuthority> authorities = new ArrayList<>(); 
     authorities.add(new SimpleGrantedAuthority("ROLE_USER")); 
     Authentication authentication = new UsernamePasswordAuthenticationToken(person1, null, authorities); 
     SecurityContextHolder.getContext().setAuthentication(authentication); 
     return "redirect:/canvaslisting"; 
    } else { 
     return "redirect:/"; 
    } 
} 

ありがとう

は、ここではいくつかのスクリーンショットです。

変数名emailValueと

答えて

1
  1. 使用Random VariableとemailValue

  2. 使用UUIDを乱数またはシーケンスを作成し、変数名で保存し、データベースへの要求

  3. 使用JDBC requestに$ {emailValue}を送ります一意のIDを作成して電子メールで送信することができます。たとえば、

+0

あなたのUUIDがうまくいったので、私はそれを使用します。現在の問題の新しい質問を作成します。ありがとう。 –

1

は次のようJMeter Functionsを見て:

  • __Random() - 現在のスレッドの数を返す - 指定された入力
  • __threadNum()からランダムな文字列を生成し、 - 所定の範囲
  • __RandomString()で乱数を生成します
  • __UUID() - ユニークなGUID構造体を返します
  • __time() - 異なるフォーマットで現在のタイムスタンプを返します
  • あなたのリクエストボディに直接それらを置くことができるようにJMeterの機能がテストでどこでも使用することができます

上記の任意の組み合わせ。

いくつかのより多くの提言:

  • 負荷テストを実行するためのJMeter GUIを使用しないでください、GUIモードでのみ、自身が必要なテストがin command-line non-GUI mode
  • はすべてを削除し、実行するテストの開発とデバッグのために設計されています負荷テストを実行中にテストプランのリスナーをJMeter listeners are very resource intensiveとし、不要なオーバーヘッドを作成します。
関連する問題