nGrinder 3.0
だれもが簡単にできる性能テスト

グローバルプラットフォーム開発
中国プラットフォーム開発セン
ター
1   nGrinder
    Since 2011




                 自分のサーバーのTPSを把握する必要がある場合
                 は?
                 負荷を加えた状態で性能を最適化する必要がある場
                 合は?
                                       2 / nGrinder
1   nGrinder
    Since 2011




                          nGrinder
                          ファーム


                 エージェント
                                     컨트롤러    PYTHON


                     エージェン
                     ト

                               エージェント

                                            エージェン
                                            ト



                                                    3 / nGrinder
2   困難な状況



    明日リリースなのに、予約してないからテストできないらしい。T .
    T
           Performance CenterやnGrinderは事前に予約が必要。
              いつでも必要な負荷を加えることができれば…


    一日だけのテストのために、教育受けないといけないの?


                初めてのユーザーでも簡単に使えれば…




       メンブレ状態でも使える性能テスト
    *メンブレ:メンタルブレイク(精神崩壊)



                                                   4 / nGrinder
2   nGrinder 3.0
    Since 2012.11 – 生まれ変わりました。

                      性能テスト スクリプト




      検索タグ                          検索   完了したものだけ検索       テスト作成     選択したテストを削
                                                                    除

                                                         0名のユーザーがテスト実行中です。

                                                                    合計仮想
       状態    テスト名   スクリプト名     作成者       開始時間     実行時間        エラー          作業
                                                                    ユーザー




                                                                                5 / nGrinder
3   nGrinder 3.0
    何が変わったのか?


                   予約?NO!!いつでもテストできます。エージェント5本までは
       可用性                       無料!




       余っているサーバーにエージェントをインストールしてく
        에이전트 더 쓰고 싶어요? 쓰고 싶으면 500원
                   ださい!


                   急ぎのテストをするのに最適ですよ。




                                                    6 / nGrinder
3   nGrinder 3.0
    何が変わったのか?


                   予約?NO!!いつでもテストできます。エージェント5本までは
       可用性                       無料!

     ユーザビリ
                      非常に簡単です。フィールド5個をさっと入力!
      ティ




             1分以内にテストが実行できる!

                       誰かに使ってほしくなるUIですね。




                                                    7 / nGrinder
3   nGrinder 3.0
    何が変わったのか?


                   予約?NO!!いつでもテストできます。エージェント5本までは
       可用性                       無料!

     ユーザビリ
                      非常に簡単です。フィールド5個をさっと入力!
      ティ

     ユーザビリ         好きなIDEですぐ編集し、そのままSVNコミットしてくださ
      ティ                         い。




                                                    8 / nGrinder
3   nGrinder 3.0
    何が変わったのか?


                   予約?NO!!いつでもテストできます。エージェント5本までは
       可用性                       無料!

     ユーザビリ
                      非常に簡単です。フィールド5個をさっと入力!
      ティ

     ユーザビリ         好きなIDEですぐ編集し、そのままSVNコミットしてくださ
      ティ                         い。

     インストール            自分でインストールするの難しかったでしょ?
      の容易性               ダウンロードしたら、実行するだけ。


                      設定不要のインストール
                     run_agent.bat controller_ip



                                                    9 / nGrinder
3   nGrinder 3.0
    何が変わったのか?


                   予約?NO!!いつでもテストできます。エージェント5本までは
       可用性                       無料!

     ユーザビリ
                      非常に簡単です。フィールド5個をさっと入力!
      ティ

     ユーザビリ         好きなIDEですぐ編集し、そのままSVNコミットしてくださ
      ティ                         い。

     インストール           自分でインストールするの難しかったでしょ?
      の容易性              ダウンロードしたら、実行するだけ。


       安定性             バグは?これまで以上に改善されてます!! ^^


                       The best Quality Control
                      among all previous versions.

                                                     10 / nGrinder
3   nGrinder 3.0
    何が変わったのか?


                   予約?NO!!いつでもテストできます。エージェント5本までは
       可用性                       無料!

     ユーザビリ
                      非常に簡単です。フィールド5個をさっと入力!
      ティ

     ユーザビリ          好きなIDEですぐ編集し、そのままSVNコミットしてくださ
      ティ                                       い。

     インストール           自分でインストールするの難しかったでしょ?
      の容易性              ダウンロードしたら、実行するだけ。


       安定性             バグは?これまで以上に改善されてます!! ^^




               百聞は一見にしかず!! GOOGLEに攻撃を!!

                                                 11 / nGrinder
4   Demo




       スクリプトの作成               テスト設定 (vuserの個数など)
                    詳細結果を確認




           結果レポート                   テスト実行

                                                   12 / nGrinder
5      Future Works


    3.1 (12月末)
      nCloudでも使用可能。
      IDC別に異なるアクセスルート一つになったアクセス
       ルート
      ユーザー同士でテストやスクリプトを共有。

    3.2 (2013, 1Q)
      スクリプト対応言語はJavaScript。
      スクリプトレコーディング機能対応。




                               13 / nGrinder
VISIT http://devcafe.nhncorp.com/nGrinder
問い合わせ : チョ・ジウォン、ユン・ジュンホ
                                             14
A1    nGrinderのサンプルスクリプト


     # -*- coding:utf-8 -*-
     from net.grinder.script.Grinder import grinder
     from net.grinder.script import Test
     from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest
     from HTTPClient import NVPair

     url = "http://beta.api.camera.line.naver.jp"
     header = (NVPair('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.1) Gecko/20060111
     Firefox/1.5.0.1'),)
     test1 = Test(1, "Test1")
     def page():
                      result1 = HTTPRequest(url=url, headers=header).GET("/stamp/overview")
                      result2 = HTTPRequest(url=url, headers=header).GET("/stamp/log/pick/CV/myDeviceId/101")
                      result3 = HTTPRequest(url=url, headers=header).GET("/stamp/section/36")
                      result4 = HTTPRequest(url=url, headers=header).GET("/stamp/log/pick/CV/myDeviceId/101")
                      assert result1.getText().find("SPONSOR") != -1
                      assert result2.getText().find("error") == -1
                      assert result3.getText().find("Beads") != -1
                      assert result4.getText().find("error") == -1

     page = test1.wrap(Page)

     class TestRunner:
                  def __call__(self):
                                 page()



                                                                                                                  15 / nGrinder
A2   nGrinder: Architecture




                              16 / nGrinder

nGrinder3 : だれもが簡単にできる性能テスト

  • 1.
  • 2.
    1 nGrinder Since 2011 自分のサーバーのTPSを把握する必要がある場合 は? 負荷を加えた状態で性能を最適化する必要がある場 合は? 2 / nGrinder
  • 3.
    1 nGrinder Since 2011 nGrinder ファーム エージェント 컨트롤러 PYTHON エージェン ト エージェント エージェン ト 3 / nGrinder
  • 4.
    2 困難な状況 明日リリースなのに、予約してないからテストできないらしい。T . T Performance CenterやnGrinderは事前に予約が必要。 いつでも必要な負荷を加えることができれば… 一日だけのテストのために、教育受けないといけないの? 初めてのユーザーでも簡単に使えれば… メンブレ状態でも使える性能テスト *メンブレ:メンタルブレイク(精神崩壊) 4 / nGrinder
  • 5.
    2 nGrinder 3.0 Since 2012.11 – 生まれ変わりました。 性能テスト スクリプト 検索タグ 検索 完了したものだけ検索 テスト作成 選択したテストを削 除 0名のユーザーがテスト実行中です。 合計仮想 状態 テスト名 スクリプト名 作成者 開始時間 実行時間 エラー 作業 ユーザー 5 / nGrinder
  • 6.
    3 nGrinder 3.0 何が変わったのか? 予約?NO!!いつでもテストできます。エージェント5本までは 可用性 無料! 余っているサーバーにエージェントをインストールしてく 에이전트 더 쓰고 싶어요? 쓰고 싶으면 500원 ださい! 急ぎのテストをするのに最適ですよ。 6 / nGrinder
  • 7.
    3 nGrinder 3.0 何が変わったのか? 予約?NO!!いつでもテストできます。エージェント5本までは 可用性 無料! ユーザビリ 非常に簡単です。フィールド5個をさっと入力! ティ 1分以内にテストが実行できる! 誰かに使ってほしくなるUIですね。 7 / nGrinder
  • 8.
    3 nGrinder 3.0 何が変わったのか? 予約?NO!!いつでもテストできます。エージェント5本までは 可用性 無料! ユーザビリ 非常に簡単です。フィールド5個をさっと入力! ティ ユーザビリ 好きなIDEですぐ編集し、そのままSVNコミットしてくださ ティ い。 8 / nGrinder
  • 9.
    3 nGrinder 3.0 何が変わったのか? 予約?NO!!いつでもテストできます。エージェント5本までは 可用性 無料! ユーザビリ 非常に簡単です。フィールド5個をさっと入力! ティ ユーザビリ 好きなIDEですぐ編集し、そのままSVNコミットしてくださ ティ い。 インストール 自分でインストールするの難しかったでしょ? の容易性 ダウンロードしたら、実行するだけ。 設定不要のインストール run_agent.bat controller_ip 9 / nGrinder
  • 10.
    3 nGrinder 3.0 何が変わったのか? 予約?NO!!いつでもテストできます。エージェント5本までは 可用性 無料! ユーザビリ 非常に簡単です。フィールド5個をさっと入力! ティ ユーザビリ 好きなIDEですぐ編集し、そのままSVNコミットしてくださ ティ い。 インストール 自分でインストールするの難しかったでしょ? の容易性 ダウンロードしたら、実行するだけ。 安定性 バグは?これまで以上に改善されてます!! ^^ The best Quality Control among all previous versions. 10 / nGrinder
  • 11.
    3 nGrinder 3.0 何が変わったのか? 予約?NO!!いつでもテストできます。エージェント5本までは 可用性 無料! ユーザビリ 非常に簡単です。フィールド5個をさっと入力! ティ ユーザビリ 好きなIDEですぐ編集し、そのままSVNコミットしてくださ ティ い。 インストール 自分でインストールするの難しかったでしょ? の容易性 ダウンロードしたら、実行するだけ。 安定性 バグは?これまで以上に改善されてます!! ^^ 百聞は一見にしかず!! GOOGLEに攻撃を!! 11 / nGrinder
  • 12.
    4 Demo スクリプトの作成 テスト設定 (vuserの個数など) 詳細結果を確認 結果レポート テスト実行 12 / nGrinder
  • 13.
    5 Future Works 3.1 (12月末)  nCloudでも使用可能。  IDC別に異なるアクセスルート一つになったアクセス ルート  ユーザー同士でテストやスクリプトを共有。 3.2 (2013, 1Q)  スクリプト対応言語はJavaScript。  スクリプトレコーディング機能対応。 13 / nGrinder
  • 14.
    VISIT http://devcafe.nhncorp.com/nGrinder 問い合わせ :チョ・ジウォン、ユン・ジュンホ 14
  • 15.
    A1 nGrinderのサンプルスクリプト # -*- coding:utf-8 -*- from net.grinder.script.Grinder import grinder from net.grinder.script import Test from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest from HTTPClient import NVPair url = "http://beta.api.camera.line.naver.jp" header = (NVPair('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1'),) test1 = Test(1, "Test1") def page(): result1 = HTTPRequest(url=url, headers=header).GET("/stamp/overview") result2 = HTTPRequest(url=url, headers=header).GET("/stamp/log/pick/CV/myDeviceId/101") result3 = HTTPRequest(url=url, headers=header).GET("/stamp/section/36") result4 = HTTPRequest(url=url, headers=header).GET("/stamp/log/pick/CV/myDeviceId/101") assert result1.getText().find("SPONSOR") != -1 assert result2.getText().find("error") == -1 assert result3.getText().find("Beads") != -1 assert result4.getText().find("error") == -1 page = test1.wrap(Page) class TestRunner: def __call__(self): page() 15 / nGrinder
  • 16.
    A2 nGrinder: Architecture 16 / nGrinder