LoginSignup
6

More than 5 years have passed since last update.

Jmeterの結果をChatworkで知らせる方法

Posted at

時間がかかるパフォーマンステストの結果をチャットワークで知らせる方法です。
jmeterではスクリプトでほぼ何でもできそうなので、それを使えば簡単です。
この記事ではスクリプトとしてgroovyを使います。
アサーションとHTTPステータスコードとHTTPレスポンスを見てエラーか成功かをチャットワークAPIを使って知らせます。

準備

何はともあれ、chatwork api利用の申請をする必要があります。
以下のリンクに申請方法が書いてあります。申請して、一日くらい立つとメールが来て利用できるようになります。
http://developer.chatwork.com/ja/

利用できるようになったら、以下のリンクにあるようにトークンを取得します。
http://developer.chatwork.com/ja/authenticate.html

次にjmeterでgroovyとそのhttp通信を簡単に使えるようにします。

JMETER_HOME/lib/extに次のjarを入れます。(全部入れなくても大丈夫かも)

  • groovy-all-2.4.0-beta-3.jar
  • http-builder-0.7.1.jar
  • json-lib-2.4-jdk15.jar
  • nekohtml-1.9.21.jar
  • xml-resolver-1.2.jar

コード

JSR223 Samplerにコードを記述します。

スクリーンショット 2014-09-16 0.11.03.png

chatwork.groovy
def assertResults = prev.assertionResults;
def response = prev.responseDataAsString
def statusCode = prev.responseCode

def postBody

if(response.contains('ERROR') || assertResults.any{it.isFailure()} || statusCode != '200') {
    postBody = ['body':'Error !']
}else {
    postBody = ['body':'Success !']
}


def http = new groovyx.net.http.HTTPBuilder( 'https://api.chatwork.com' )

http.post( path: "/v1/rooms/${vars['chatwork.roomId']}/messages", 
           body: postBody, 
           headers: ['X-ChatWorkToken' : "${vars['chatwork.token']}"] ) { res ->
    assert res.statusLine.statusCode == 200
}

${vars['chatwork.roomId']${vars['chatwork.token']} はjmeterの変数です。
ユーザ定義変数にチャットワークで取得した値を書いておきます。
chatwork.roomIdは、チャットのURLの末尾の #!rid に続く番号を記述します。
chatwork.tokenは、チャットワークの「動作設定」→「API発行」で取得した値を記述します。

スクリーンショット 2014-09-16 1.30.56.png

これでjmeterを動作させると指定のチャットグループにメッセージが表示されます。
あとは、知らせたいタイミングを変えたり、テスト名を表示するようにしたり、大抵のことはできるので、自分好みにスクリプトをいじると良いと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6