Fork me on GitHub

Herr Knedel/Круті штуки з Atlassian: використовуємо Bamboo та jMeter без плагінів

Created Sun, 21 Mar 2021 00:00:00 +0000 Modified Sat, 01 Oct 2022 10:59:34 +0000 Schwierigkeitsgrad: Nicht zu leicht und nicht zu schwer

252 Words

Сьогодні я створюю тест jMeter в Bamboo. Звичайно, ви також можете реалізувати цю тестову установку за допомогою бігунів Gitlab або підлеглих Jenkins.

Крок 1: Створення тесту jMeter

Спочатку, звичайно, потрібно створити тест jMeter. Я завантажив jMeter за наступним посиланням https://jmeter.apache.org/ і запустив його цією командою:

x
+
Terminal

$ java -jar bin/ApacheJMeter.jar

Дивіться: Мій демонстраційний тест для цього підручника містить несправні та робочі семплери. Я спеціально встановив дуже малі тайм-аути. Я зберігаю файл JMX для мого завдання Bamboo.

Крок 2: Підготуйте бамбуковий агент

Оскільки Java є необхідною умовою для агентів Bamboo, я встановлюю 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)

Я також створюю шаблон артефакту для журналів результатів.

Приготуватися!

Тепер я можу виконувати свою роботу. Після того, як я змінив тайм-аути, тест також “зелений”.