時間がかかるパフォーマンステストの結果をチャットワークで知らせる方法です。
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にコードを記述します。
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発行」で取得した値を記述します。
これでjmeterを動作させると指定のチャットグループにメッセージが表示されます。
あとは、知らせたいタイミングを変えたり、テスト名を表示するようにしたり、大抵のことはできるので、自分好みにスクリプトをいじると良いと思います。