Lasttests Atlassian Jira, Confluence, Bitbucket Teil 2

Hier hier kΓΆnnen Sie Teil 1 dieses Artikels lesen.
In Teil 2 werden wir darΓΌber sprechen, wie Daten mit dem Tool dc-app-performance-toolkit fΓΌr Stresstests vorbereitet werden  .

Testdaten vorbereiten


Es gibt zwei MΓΆglichkeiten, Testdaten vorzubereiten:

  • Verwenden Sie von Atlassian bereitgestellte Backups. Sie kΓΆnnen diese Option verwenden, wenn Sie beispielsweise Ihr eigenes Plugin schreiben und es fΓΌr Sie keine Rolle spielt, mit welchen Daten dieses Plugin arbeiten wird.
  • Verwenden Sie Ihre eigenen Daten. Diese Option ist nΓΌtzlich, wenn Sie ΓΌber eine eigene Kopie von Jira, Confluence oder Bitbucket verfΓΌgen, die Sie mithilfe von Standardfunktionen, Skripten, Plugins und auf andere mΓΆgliche Weise Γ€ndern.

Backups Atlassian


Atlassian bietet Backups fΓΌr Jira, Confluence und Bitbucket, die fΓΌr Lasttests verwendet werden kΓΆnnen.

Um diese Backups zu installieren, mΓΌssen Sie zum Ordner app-dc-performance-toolkit / app / util / jira wechseln, wenn Sie Jira  testen, zum Ordner app-dc-performance-toolkit / app / util / Confluence, wenn Sie Confluence oder testen  App-DC-Performance-Toolkit / App / Util / Bitbucket, wenn Sie Bitbucket testen.

Diese Ordner enthalten die Dateien, die Sie zum Installieren von Atlassian-Sicherungen ausfΓΌhren mΓΌssen. Hier sind die Beschreibungen dieser Dateien:

  • index-sync.sh ( Jira Confluence) – atlassian-jira.log (atlassian-confluence.log) β€œindexes – 100%”. , . , , Jira/Confluence. , , , , , , .
  • populate_db.sh – Postgres Jira/Confluence/Bitbucket.
  • upload_attachments.sh – data.
  • index-snapshot.sh ( Confluence) – , .

Alle oben genannten Skripte mΓΌssen auf derselben virtuellen Maschine ausgefΓΌhrt werden, auf der die zu testende Instanz installiert ist. Da diese Skripts von derselben virtuellen Maschine ausgefΓΌhrt werden, bestimmen sie unabhΓ€ngig die Version Ihrer Instanz und laden den Datenbankspeicherauszug und die AnhΓ€nge fΓΌr Ihre Version herunter.

Was ist, wenn Sie Postgres nicht verwenden mâchten? Schließlich funktioniert populate_db.sh nur für die Postgres-Datenbank.

In diesem Fall kΓΆnnen Sie nur fΓΌr Jira das XML-Backup herunterladen und mit der Standard-Jira-FunktionalitΓ€t wiederherstellen . Hier ist ein Link zu diesem Backup: https://centaurus-datasets.s3.amazonaws.com/jira/$ {Jira_Verson} /large/xml_backup.zip - unterstΓΌtzte Versionen von Jira 8.0.3, 7.13.6, 8.5.0.

Atlassian hat keine XML-Backups fΓΌr Confluence und Bitbucket vorbereitet. Sie mΓΌssen das Skript populate_db.sh verwenden oder die Daten selbst vorbereiten, was ich spΓ€ter im Abschnitt β€žVerwenden unserer eigenen Datenβ€œ erlΓ€utern werde.

Wir verwenden unsere eigenen Daten.


Wenn Sie Ihre Instanz anhand Ihrer eigenen Daten testen mΓΆchten, ist dies ebenfalls mΓΆglich. Sie mΓΌssen lediglich sicherstellen, dass Ihre Daten vom Tool dc-app-performance-toolkit verwendet werden kΓΆnnen.

Wenn das DC-App-Performance-Toolkit mit dem Testen beginnt, fΓΌhrt Taurus das Skript prepare-data.py aus, mit dem Daten aus Ihrer zu testenden Instanz ausgewΓ€hlt werden. Infolgedessen werden mehrere CSV-Dateien mit Daten aus Ihrer Instanz erstellt.

Wenn prepare-data.py die erforderlichen Daten nicht auswΓ€hlen kann, schlΓ€gt der Test fehl. Daher mΓΌssen Sie sicherstellen, dass die erforderlichen Daten in Ihrer Kopie enthalten sind.

Um zu verstehen, welche Daten vorliegen sollten, mΓΌssen Sie die Datei prepare-data.py fΓΌr das Produkt untersuchen, das Sie testen mΓΆchten.

Lassen Sie uns diese Dateien untersuchen.

Jira


Die Datei  prepare-data.py  fΓΌr Jira befindet sich im  Ordner dc-app-performance-toolkit / blob / master / app / util / data_preparation / jira / .

Dieses Skript wΓ€hlt Daten aus Jira aus und erstellt die folgenden Dateien:

  • Issues.csv - eine Liste von ish.
  • jqls.csv - Liste der JQL-Abfragen.
  • kanban-board.scv - Liste der Kanban-Panels.
  • project-keys.csv - Liste der ProjektschlΓΌssel.
  • scrum-board.csv- Liste der Scrum-Panels.
  • users.scv - Liste der Benutzer.

Wir werden die Datei prepare-data.py nicht vollstΓ€ndig studieren, wir mΓΌssen uns nur diese Methode ansehen:

def __create_data_set(jira_api):
    dataset = dict()
    dataset[USERS] = __get_users(jira_api)
    software_project_keys = __get_software_project_keys(jira_api, PROJECTS_COUNT_LIMIT)
    dataset[PROJECT_KEYS] = software_project_keys
    dataset[ISSUES] = __get_issues(jira_api, software_project_keys)
    dataset[SCRUM_BOARDS] = __get_boards(jira_api, 'scrum')
    dataset[KANBAN_BOARDS] = __get_boards(jira_api, 'kanban')
    dataset[JQLS] = __generate_jqls(count=150)

    return dataset

Wie Sie in dieser Methode sehen kΓΆnnen, werden alle Daten ausgewΓ€hlt, die wΓ€hrend des Tests benΓΆtigt werden:

dataset[USERS] = __get_users(jira_api)

Wir wΓ€hlen Benutzer aus unserer Jira-Instanz aus. Der Benutzername muss mit "performance_" beginnen. Wir mΓΌssen so viele Benutzer auswΓ€hlen, wie wir als gleichzeitige Benutzer im Parameter concurrency in der Datei jira.yml festgelegt haben . Wenn kein solcher Benutzer gefunden wird oder seine Anzahl nicht ausreicht, werden Benutzer erstellt. Benutzer haben das PrΓ€fix "Performance_" und das Passwort Passwort.

software_project_keys = __get_software_project_keys(jira_api, PROJECTS_COUNT_LIMIT)
dataset[PROJECT_KEYS] = software_project_keys

Wir wΓ€hlen ProjektschlΓΌssel vom Typ Software.

__get_issues(jira_api, software_project_keys)

Wir wΓ€hlen nicht mehr als 8000 Software aus Softwareprojekten aus, die sich nicht im Status "Geschlossen" befinden.

dataset[SCRUM_BOARDS] = __get_boards(jira_api, 'scrum')

Wir wΓ€hlen nicht mehr als 250 Pfannenplatten aus.

dataset[KANBAN_BOARDS] = __get_boards(jira_api, 'kanban')

Wir wΓ€hlen nicht mehr als 250 Kanban-Panels aus.

dataset[JQLS] = __generate_jqls(count=150)

Wir generieren jql-Abfragen mit folgendem Inhalt: 'text ~ β€œabc *” ”.

Damit die Tests fehlerfrei ausgefΓΌhrt werden kΓΆnnen, mΓΌssen Sie die VerfΓΌgbarkeit von Softwareprojekten mit ish- und scrum- und Kanban-Boards sicherstellen. Wenn Sie diese Objekte bereits in Ihrer Instanz haben, mΓΌssen Sie nichts tun (der Test wird ohne Γ„nderungen erfolgreich sein). Wenn nicht, mΓΌssen Sie die fehlenden Objekte erstellen.

Da meine Jira-Instanz leer ist, habe ich die Projekte Scrum Software Development und Kanban Software Development erstellt und den Auslastungstest erneut ausgefΓΌhrt:

bzt jira.yml

Diesmal wurde das Skript fehlerfrei abgeschlossen. Hier ist die Skriptausgabe:

18:15:24 INFO: Taurus CLI Tool v1.14.0
18:15:24 INFO: Starting with configs: ['jira.yml']
18:15:24 INFO: Configuring...
18:15:24 INFO: Artifacts dir: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/jira/2020-05-02_18-15-24
18:15:24 INFO: Preparing...
18:15:25 INFO: Starting shell command: python util/environment_checker.py
18:15:25 INFO: Starting shell command: python util/data_preparation/jira/prepare-data.py
18:15:26 WARNING: There is newer version of Taurus 1.14.2 available, consider upgrading. What's new: http://gettaurus.org/docs/Changelog/
18:15:28 INFO: Will install JMeter into /Users/alexm/.bzt/jmeter-taurus/5.2.1
18:15:28 INFO: Downloading: https://apache-mirror.rbc.ru/pub/apache//jmeter/binaries/apache-jmeter-5.2.1.zip
100% [===========================================================] Time: 0:00:04
18:15:33 INFO: Unzipping /var/folders/4r/w8hkd4w51x787tw4ynb29v2w0000gn/T/tmp9g5rzqs1.zip to /Users/alexm/.bzt/jmeter-taurus/5.2.1
18:15:50 INFO: Downloading jmeter-plugins-manager-1.3.jar from https://search.maven.org/remotecontent?filepath=kg/apc/jmeter-plugins-manager/1.3/jmeter-plugins-manager-1.3.jar
18:15:51 INFO: Downloading cmdrunner-2.2.jar from https://search.maven.org/remotecontent?filepath=kg/apc/cmdrunner/2.2/cmdrunner-2.2.jar
100% [===========================================================] Time: 0:00:01
18:15:52 INFO: Installing JMeter plugins: jpgc-casutg,jpgc-dummy,jpgc-ffw,jpgc-fifo,jpgc-functions,jpgc-json,jpgc-perfmon,jpgc-prmctl,jpgc-tst,bzm-parallel=0.4,bzm-random-csv=0.6,jpgc-casutg=2.5,jpgc-dummy=0.2,jpgc-ffw=2.0,jpgc-fifo=0.2,jpgc-functions=2.1,jpgc-json=2.6,jpgc-perfmon=2.1,jpgc-prmctl=0.4,jpgc-tst=2.4,jpgc-wsc=0.3,tilln-sshmon=1.0,jpgc-cmd=2.2,jpgc-synthesis=2.2
18:16:38 INFO: 1 obsolete CookieManagers are found and fixed
18:16:56 INFO: Installing ChromeDriver...
18:16:56 INFO: Will install ChromeDriver into /Users/alexm/.bzt/selenium-taurus/tools/chromedriver/80.0.3987.106
18:16:56 INFO: Downloading: https://chromedriver.storage.googleapis.com/80.0.3987.106/chromedriver_mac64.zip
100% [===========================================================] Time: 0:00:01
18:16:57 INFO: Unzipping /var/folders/4r/w8hkd4w51x787tw4ynb29v2w0000gn/T/tmpurpp_7tz.zip to /Users/alexm/.bzt/selenium-taurus/tools/chromedriver/80.0.3987.106
18:16:57 INFO: Installing GeckoDriver...
18:16:57 INFO: Will install GeckoDriver into /Users/alexm/.bzt/selenium-taurus/tools/geckodriver/0.23.0
18:16:57 INFO: Downloading: https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-macos.tar.gz
100% [===========================================================] Time: 0:00:02
18:17:00 INFO: Untaring /var/folders/4r/w8hkd4w51x787tw4ynb29v2w0000gn/T/tmpiurqzzt4.zip to /Users/alexm/.bzt/selenium-taurus/tools/geckodriver/0.23.0
18:17:00 WARNING: You are using Python 3, make sure that your scripts are able to run in Python 3
18:17:00 INFO: Starting...
18:17:00 INFO: Waiting for results...
18:17:00 INFO: Waiting for finish...
18:17:00 ERROR: Console screen failure: ord() expected string of length 1, but int found
18:25:22 WARNING: Please wait for graceful shutdown...
18:25:22 INFO: Shutting down...
18:25:22 INFO: Starting shell command: python util/jmeter_post_check.py
18:25:22 INFO: Starting shell command: python util/jtl_convertor/jtls-to-csv.py kpi.jtl selenium.jtl
18:25:59 INFO: Post-processing...
18:25:59 INFO: Test duration: 0:08:22
18:25:59 INFO: Samples count: 3272, 0.06% failures
18:25:59 INFO: Average times: total 0.595, latency 0.000, connect 0.000
18:25:59 INFO: Percentiles:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Percentile, % β”‚ Resp. Time, s β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
18:25:59 INFO: Request label stats:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ label                                 β”‚ status β”‚    succ β”‚ avg_rt β”‚ error                                                                                                                                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ jmeter_browse_boards                  β”‚   OK   β”‚ 100.00% β”‚  0.186 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_browse_projects                β”‚   OK   β”‚ 100.00% β”‚  0.149 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_create_issue                   β”‚   OK   β”‚ 100.00% β”‚  0.135 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_login_and_view_dashboard       β”‚   OK   β”‚ 100.00% β”‚  0.497 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_open_comment                   β”‚   OK   β”‚ 100.00% β”‚  0.210 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_open_editor                    β”‚   OK   β”‚ 100.00% β”‚  0.287 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_open_quick_create              β”‚   OK   β”‚ 100.00% β”‚  0.063 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_save_comment                   β”‚   OK   β”‚ 100.00% β”‚  0.521 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_save_edit                      β”‚   OK   β”‚ 100.00% β”‚  0.900 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_search_jql                     β”‚   OK   β”‚ 100.00% β”‚  0.610 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_view_backlog                   β”‚   OK   β”‚ 100.00% β”‚  0.387 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_view_dashboard                 β”‚   OK   β”‚ 100.00% β”‚  0.267 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_view_issue                     β”‚   OK   β”‚ 100.00% β”‚  0.593 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_view_kanban_board              β”‚   OK   β”‚ 100.00% β”‚  0.344 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_view_project_summary           β”‚   OK   β”‚ 100.00% β”‚  0.611 β”‚                                                                                                                                                 β”‚
β”‚ jmeter_view_scrum_board               β”‚   OK   β”‚ 100.00% β”‚  0.347 β”‚                                                                                                                                                 β”‚
β”‚ selenium_a_login                      β”‚   OK   β”‚ 100.00% β”‚ 28.460 β”‚                                                                                                                                                 β”‚
β”‚ selenium_browse_boards_list           β”‚   OK   β”‚ 100.00% β”‚  9.871 β”‚                                                                                                                                                 β”‚
β”‚ selenium_browse_projects_list         β”‚   OK   β”‚ 100.00% β”‚  6.376 β”‚                                                                                                                                                 β”‚
β”‚ selenium_create_issue                 β”‚   OK   β”‚ 100.00% β”‚  5.143 β”‚                                                                                                                                                 β”‚
β”‚ selenium_edit_issue                   β”‚   OK   β”‚ 100.00% β”‚ 16.305 β”‚                                                                                                                                                 β”‚
β”‚ selenium_save_comment                 β”‚   OK   β”‚ 100.00% β”‚ 19.909 β”‚                                                                                                                                                 β”‚
β”‚ selenium_search_jql                   β”‚   OK   β”‚ 100.00% β”‚ 32.249 β”‚                                                                                                                                  β”‚
β”‚ selenium_view_backlog_for_scrum_board β”‚   OK   β”‚ 100.00% β”‚ 14.223 β”‚                                                                                                                                                 β”‚
β”‚ selenium_view_dashboard               β”‚   OK   β”‚ 100.00% β”‚ 13.805 β”‚                                                                                                                                                 β”‚
β”‚ selenium_view_issue                   β”‚   OK   β”‚ 100.00% β”‚ 12.332 β”‚                                                                                                                                                 β”‚
β”‚ selenium_view_kanban_board            β”‚   OK   β”‚ 100.00% β”‚ 14.675 β”‚                                                                                                                                                 β”‚
β”‚ selenium_view_project_summary         β”‚   OK   β”‚ 100.00% β”‚ 12.710 β”‚                                                                                                                                                 β”‚
β”‚ selenium_view_scrum_board             β”‚   OK   β”‚ 100.00% β”‚ 14.893 β”‚                                                                                                                                                 β”‚
β”‚ selenium_z_log_out                    β”‚   OK   β”‚ 100.00% β”‚ 14.889 β”‚                                                                                                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
18:26:00 INFO: Writing JUnit XML report into: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/jira/2020-05-02_18-15-24/xunit.xml
18:26:00 INFO: Starting shell command: python util/analytics.py jira
18:26:06 INFO: Starting shell command: python util/cleanup_results_dir.py
18:26:06 INFO: Artifacts dir: /Users/alexm/PycharmProjects/easymigration/dc-app-performance-toolkit/app/results/jira/2020-05-02_18-15-24
18:26:06 INFO: Done performing with code: 0

Aus der Skriptausgabe geht hervor, dass Taurus die Datei prepare-data.py gestartet und die folgenden CSV-Dateien erstellt hat:

issue.csv

KAN-1,10023,KAN
KAN-2,10024,KAN
KAN-3,10025,KAN
KAN-4,10026,KAN
KAN-5,10027,KAN
...........


jqls.csv

text ~ "vqz*" order by key
text ~ "fpl*" order by key
text ~ "zjs*" order by key
text ~ "wph*" order by key
text ~ "xhx*" order by key
text ~ "pxt*" order by key
text ~ "deh*" order by key
text ~ "iri*" order by key
text ~ "jbr*" order by key
text ~ "snt*" order by key
...........

kanban-board.csv

2

project_keys.csv

KAN
SCRUM

scrum-board.csv

1

users.csv

performance_kqgdayqwfj,password
performance_zyqnwihaxr,password
performance_onfxfovior,password
performance_rrujzwrxlt,password
performance_agjbcxxeqy,password

Dann installierte Taurus JMeter und den Chrome-Webtreiber, fΓΌhrte die Tests aus und druckte das Ergebnis aus.

Schauen wir uns nun die Datei prepare-data.py fΓΌr Confluence und Bitbucket an.

Zusammenfluss


Betrachten Sie die Datei  prepare-data.py  fΓΌr Confluence.

Hier ist die Hauptmethode:

def __create_data_set(rest_client, rpc_client):
    dataset = dict()
    dataset[USERS] = __get_users(rest_client, rpc_client, CONFLUENCE_SETTINGS.concurrency)
    dataset[PAGES] = __get_pages(rest_client, 5000)
    dataset[BLOGS] = __get_blogs(rest_client, 5000)
    return dataset

 dataset[USERS] = __get_users(rest_client, rpc_client, CONFLUENCE_SETTINGS.concurrency)

Wir wΓ€hlen oder erstellen Benutzer fΓΌr Lasttests nach der gleichen Logik wie im Fall von Jira.

dataset[PAGES] = __get_pages(rest_client, 5000)

Wir wΓ€hlen Seiten aus Confluence mit dem folgenden cql aus: "Typ = Seite und Titel! ~ JMeter und Titel! ~ Selen und Titel! ~ Startseite".

dataset[BLOGS] = __get_blogs(rest_client, 5000)

Wir wΓ€hlen Blogs aus Confluence mit dem folgenden cql aus: "type = blogpost and title! ~ Performance".

Um mit dem Testen auf Confluence zu beginnen, mΓΌssen Sie Seiten und Blogs in Ihrer Kopie haben.

Bit Bucket


Schauen Sie sich nun die Datei  prepare-data.py  fΓΌr Bitbucket an.

Hier ist die Hauptfunktion:

def __create_data_set(bitbucket_api):
    dataset = dict()
    dataset[USERS] = __get_users(bitbucket_api)
    dataset[PROJECTS] = __get_projects(bitbucket_api)
    dataset[REPOS] = __get_repos(bitbucket_api)
    dataset[PULL_REQUESTS] = __get_prs(bitbucket_api)
    return dataset

dataset[USERS] = __get_users(bitbucket_api)

Wir wΓ€hlen oder erstellen Benutzer nach der gleichen Logik wie fΓΌr Jira, diesmal sollten Benutzer jedoch das PrΓ€fix "dcapt-perf-user" haben. Beim Erstellen des Benutzers entspricht das Kennwort dem Benutzernamen.

dataset[PROJECTS] = __get_projects(bitbucket_api)

Wir wΓ€hlen Projekte aus.

dataset[REPOS] = __get_repos(bitbucket_api)

Wir wΓ€hlen Repositories aus.

dataset[PULL_REQUESTS] = __get_prs(bitbucket_api)

Wir wΓ€hlen den Anforderungspool aus. Die Anzahl der Anforderungspools darf nicht geringer sein als der ParallelitΓ€tsparameter in der Datei  bitbucket.yml .

Um Tests fΓΌr Bitbucket ausfΓΌhren zu kΓΆnnen, mΓΌssen in Ihrer Instanz Projekte, Repositorys und ein Pool von Anforderungen in einer Menge vorhanden sein, die nicht unter dem Parameter concurrency in der Datei bitbucket.yml liegt.

Daher haben wir uns angesehen, wie Sie Daten fΓΌr Lasttests mithilfe von von Atlassian erstellten Backups vorbereiten und Lasttests fΓΌr unsere Daten durchfΓΌhren. Im nΓ€chsten Teil werden wir darΓΌber sprechen, welche Artefakte nach Stresstests erstellt werden, welche Informationen sie liefern und welche Art von Grafiken wir aus der Box generieren kΓΆnnen.

All Articles