Fork me on GitHub

Herr Knedel/Atlassian のクールな使い方: プラグインなしで Bamboo と jMeter を使う

Created Sun, 21 Mar 2021 00:00:00 +0000 Modified Sat, 02 Apr 2022 15:25:03 +0000 Schwierigkeitsgrad: Nicht zu leicht und nicht zu schwer

634 Words

今日、私はBambooでjMeterのテストを作成しています。もちろん、このテスト設定をGitlabランナーやJenkinsスレーブで実装することも可能です。

ステップ1:jMeterテストの作成

まず、当然ですが、jMeterのテストを作成する必要があります。以下のURL https://jmeter.apache.org/ からjMeterをダウンロードし、以下のコマンドで起動しました。

x
+
Terminal

$ java -jar bin/ApacheJMeter.jar

See:このチュートリアルのための私のデモテストは、不具合のあるサンプラーと動作するサンプラーを含むことを意図しています。タイムアウトはわざと少なく設定しています。 BambooタスクのJMXファイルで保存しています。

ステップ2: バンブーエージェントの準備

BambooのエージェントはJavaが前提なので、Pythonは後からインストールするだけです。

x
+
Terminal

$ apt-get update
$ apt-get install python

新しいジョブとシェルタスクを作成します。 そして、このシェルスクリプトを挿入してください。

#!/bin/bash
java -jar /tools/apache-jmeter-5.4.1/bin/ApacheJMeter.jar -n -t test.jmx -l requests.log > result.log

echo "Ergebnis:"
cat result.log

if cat result.log | python /tools/check.py > /dev/null; 
then
    echo "Proceed... Alles Prima!"
    exit 0
else
    echo "Returned an error.... Oje!"
    exit 1
fi

ツールディレクトリはマシン上で固定されており、プロジェクトリポジトリの一部ではありません。さらに、私はこのPythonスクリプトを使っています。

#!/usr/bin/python
import re
import sys
 
for line in sys.stdin:
    print line,
    match = re.search('summary =[\s].*Err:[ ]{0,10}([1-9]\d{0,10})[ ].*',line)
    print 'Check in line if Err: > 0 -> if so Error occured -> Test fails: '
    print match
    if match :
        print "exit 1"
        sys.exit(1)
print "nothing found - exit 0"
sys.exit(0)

また、結果ログのアーティファクトパターンも作成しています。

Ready!

これで仕事ができる。タイムアウトを変更したら、テストも「緑」になりました。