{"componentChunkName":"component---src-templates-docs-js","path":"/de-de/guides/monitor-website-performance/ci-build-gating","result":{"data":{"site":{"siteMetadata":{"title":"Documentation | LoadFocus","docsLocation":""}},"mdx":{"fields":{"id":"96917dd8-f29b-5bf6-aec4-782e37a70081","title":"CI-Build-Gating & Deploy-Markierungen","slug":"/de-de/guides/monitor-website-performance/ci-build-gating","locale":"de-DE"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"CI-Build-Gating & Deploy-Markierungen\",\n  \"date\": \"2026-10-29\",\n  \"metaTitle\": \"Page Speed in der CI: Build-Gating und Deploys | LoadFocus\",\n  \"metaDescription\": \"Lassen Sie einen CI-Build fehlschlagen, wenn eine Seite langsamer wird: Monitor aus GitHub Actions starten, Budgets prüfen und jedes Deployment markieren.\",\n  \"order\": 16\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Sie k\\xF6nnen einen Page-Speed-Monitor aus Ihrer CI-Pipeline starten und den Build fehlschlagen lassen, wenn die Seite ein Budget verletzt. So wird ein langsames Release gestoppt, bevor es Ihre Besucher erreicht. Derselbe Schritt kann das Deployment in den Verlaufsdiagrammen des Monitors markieren, damit eine Verlangsamung neben dem Release steht, das sie verursacht hat.\"), mdx(\"p\", null, \"Alles l\\xE4uft \\xFCber ein kleines Skript unter \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"https://speed.loadfocus.com/ci.js\"), \". Es braucht Node 14 oder neuer und hat keine Abh\\xE4ngigkeiten, funktioniert also in GitHub Actions und in jeder anderen CI, die Node ausf\\xFChrt.\"), mdx(\"h2\", null, \"Bevor Sie beginnen\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Ein Monitor f\\xFCr die Seite.\"), \" Das Skript startet einen Monitor, den Sie bereits haben, siehe \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/docs/de-de/guides/monitor-website-performance/getting-started\"\n  }, \"Erste Schritte\"), \".\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Die Monitor-ID.\"), \" \\xD6ffnen Sie ein Ergebnis des Monitors und scrollen Sie unter den Verlaufsdiagrammen zu \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"CI und Deploy-Markierungen\"), \". Der Schritt unter \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Build fehlschlagen lassen, wenn diese Seite langsamer wird\"), \" enth\\xE4lt die ID bereits, und \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Kopieren\"), \" legt ihn in die Zwischenablage. Die ID ist auch der Teil nach \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"/speedtests/\"), \" in der Adresse der Ergebnisseite.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Ein API-Schl\\xFCssel.\"), \" Erstellen Sie einen auf der Seite \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/account/api-keys\"\n  }, \"API Keys\"), \" und speichern Sie ihn als CI-Secret mit dem Namen \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"LOADFOCUS_API_KEY\"), \". Wenn Sie in mehreren Teams arbeiten, setzen Sie zus\\xE4tzlich \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"LOADFOCUS_TEAM_ID\"), \"; ohne diese Variable wird Ihr Standard-Team verwendet.\")), mdx(\"p\", null, \"Jeder CI-Lauf startet einen echten Lauf des Monitors und z\\xE4hlt daher als ein Testlauf Ihres Plans.\"), mdx(\"h2\", null, \"Beispiel f\\xFCr GitHub Actions\"), mdx(\"p\", null, \"Legen Sie Ihren API-Schl\\xFCssel als Repository-Secret an (Settings > Secrets and variables > Actions > \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"LOADFOCUS_API_KEY\"), \") und erstellen Sie dann \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".github/workflows/page-speed.yml\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yaml\"\n  }, \"name: Page speed budget\\n\\non:\\n  push:\\n    branches: [ main ]\\n\\njobs:\\n  page-speed:\\n    runs-on: ubuntu-latest\\n    steps:\\n      - name: Page speed budget\\n        run: curl -fsSL https://speed.loadfocus.com/ci.js | node - --monitor YOUR_MONITOR_ID --marker \\\"${{ github.sha }}\\\" --budget \\\"lcp<=2.5\\\"\\n        env:\\n          LOADFOCUS_API_KEY: ${{ secrets.LOADFOCUS_API_KEY }}\\n\")), mdx(\"p\", null, \"Ersetzen Sie \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"YOUR_MONITOR_ID\"), \" durch Ihre Monitor-ID. Der Schritt setzt eine Deploy-Markierung mit dem Commit als Bezeichnung, startet den Monitor, wartet auf das Ergebnis und l\\xE4sst den Job fehlschlagen, wenn ein Budget verletzt wird. Setzen Sie ihn hinter Ihren Deploy-Schritt, damit er das gerade ver\\xF6ffentlichte Release misst.\"), mdx(\"p\", null, \"Um die Markierung mit der Commit-Seite zu verlinken, erg\\xE4nzen Sie \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"--marker-url \\\"${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}\\\"\"), \". Wiederholen Sie \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"--budget\"), \" f\\xFCr weitere Grenzen, zum Beispiel \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"--budget \\\"lcp<=2.5\\\" --budget \\\"performance>=90\\\"\"), \".\"), mdx(\"h2\", null, \"Optionen\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Option\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Wirkung\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"--monitor <id>\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Der Monitor, der laufen soll. Pflichtangabe.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"--budget \\\"lcp<=2.5\\\"\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Eine zus\\xE4tzliche Grenze f\\xFCr diesen Lauf. Wiederholbar.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"--marker \\\"<label>\\\"\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Setzt zus\\xE4tzlich eine Deploy-Markierung mit dieser Bezeichnung (bis zu 120 Zeichen), zum Beispiel den Commit oder Tag.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"--marker-url <url>\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Ein Link f\\xFCr die Markierung, zum Beispiel die Release- oder Commit-Seite.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"--timeout <seconds>\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Bricht nach dieser Zeit ab. Standard 900.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"--json\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Gibt das Rohergebnis als JSON aus.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"--host <url>\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Standard \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"https://speed.loadfocus.com\"), \".\")))), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"curl -fsSL https://speed.loadfocus.com/ci.js | node - --help\"), \" gibt dieselbe Liste aus.\"), mdx(\"h2\", null, \"Welche Budgets gepr\\xFCft werden\"), mdx(\"p\", null, \"Jeder Lauf wird gegen zwei Gruppen von Grenzen gepr\\xFCft:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Die Schwellwert-Alerts des Monitors.\"), \" Jeder aktivierte Alert mit \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\xFCber\"), \" oder \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"unter\"), \" und einem Wert z\\xE4hlt als Budget: Ein Alert auf Largest Contentful Paint \\xFCber 2.5 wird zum Budget \\\"LCP h\\xF6chstens 2.5 s\\\". Das sind dieselben Budgets, die die Ergebnisseite zeigt, siehe \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/docs/de-de/guides/monitor-website-performance/performance-budgets\"\n  }, \"Performance-Budgets\"), \". Alerts mit \\\"verschlechtert sich um (%)\\\" haben keine feste Grenze und werden nicht gepr\\xFCft.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Jedes \", mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"--budget\"), \", das Sie \\xFCbergeben.\"), \" Ein Budget besteht aus einer Metrik, \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"<=\"), \" oder \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \">=\"), \" und einer Zahl. Sie k\\xF6nnen bis zu 30 \\xFCbergeben.\")), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Metrik\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Einheit\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"performance\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"accessibility\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"best-practices\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"seo\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Score von 0 bis 100\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"fcp\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"lcp\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"si\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"tbt\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"tti\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Sekunden\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"cls\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Cumulative Layout Shift\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"weight\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Seitengewicht in KB\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"requests\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Anzahl der Anfragen\")))), mdx(\"p\", null, \"Zeitmetriken werden in Sekunden angegeben, auch Total Blocking Time: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"tbt<=0.3\"), \" bedeutet 300 ms. Ein Budget, dessen Metrik im Lauf nicht gemessen wurde, schl\\xE4gt fehl. Eine Seite, die nicht gemessen werden konnte, kommt also nie durch die Pr\\xFCfung.\"), mdx(\"h2\", null, \"Exit-Codes und Ausgabe\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Exit-Code\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Bedeutung\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"0\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Alle Budgets eingehalten.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"1\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Ein Budget wurde verletzt.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"2\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Der Lauf konnte nicht gepr\\xFCft werden: API-Schl\\xFCssel oder Monitor-ID fehlen, der Lauf konnte nicht starten (zum Beispiel wegen der Grenzen Ihres Plans), die Seite konnte nicht getestet werden, der Lauf wurde abgebrochen, oder vor dem Timeout lag kein Ergebnis vor.\")))), mdx(\"p\", null, \"Das Log zeigt pro Budget eine Zeile \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"PASS\"), \" oder \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"FAIL\"), \" mit dem gemessenen Wert, der Grenze und der Herkunft des Budgets (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"alert\"), \" oder \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pipeline\"), \"), danach einen Link zum vollst\\xE4ndigen Bericht. Wenn keine Budgets gesetzt sind, meldet das Skript das und endet mit 0.\"), mdx(\"p\", null, \"In GitHub Actions wird das Ergebnis zus\\xE4tzlich in die Job-Zusammenfassung geschrieben: die vier Lighthouse-Scores, eine Tabelle aller Budgets und ein Link \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Full report\"), \".\"), mdx(\"h2\", null, \"Deploy-Markierungen\"), mdx(\"p\", null, \"Eine Markierung ist eine gestrichelte Linie in den Verlaufsdiagrammen des Monitors, in der Reihe \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Deployments\"), \". Mit \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"--marker\"), \" setzt das Skript eine Markierung, bevor es den Lauf startet. Kann die Markierung nicht gesetzt werden, meldet das Skript das und f\\xE4hrt mit der Pr\\xFCfung fort.\"), mdx(\"p\", null, \"Um Deployments ohne Pr\\xFCfung zu markieren, verwenden Sie den Befehl unter \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Oder nur Deployments markieren\"), \" im selben Bereich:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"curl -X POST \\\"https://speed.loadfocus.com/api/test/applighthouse/annotations\\\" \\\\\\n  -H \\\"loadfocus-auth: YOUR_API_KEY\\\" -H \\\"content-type: application/json\\\" \\\\\\n  -d '{\\\"label\\\":\\\"Deployed v1.4.2\\\",\\\"configId\\\":\\\"YOUR_MONITOR_ID\\\"}'\\n\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"label\"), \" ist Pflicht, bis zu 120 Zeichen.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Lassen Sie \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"configId\"), \" weg, um jeden Monitor im Team zu markieren.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Erg\\xE4nzen Sie \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"url\"), \", um das Release zu verlinken.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Erg\\xE4nzen Sie \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"timestamp\"), \" (ISO-Datum oder Epoch), um die Markierung um bis zu 30 Tage zur\\xFCckzudatieren.\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Letzte Markierungen\"), \" im Bereich listet die Markierungen im angezeigten Zeitraum, die neueste zuerst. Markierungen ohne Monitor tragen den Hinweis \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"alle Monitore\"), \", und \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"L\\xF6schen\"), \" entfernt eine Markierung. Erreicht ein Team 5.000 Markierungen, machen die \\xE4ltesten Platz f\\xFCr neue.\"), mdx(\"h2\", null, \"Zwei L\\xE4ufe vergleichen\"), mdx(\"p\", null, \"Wenn ein Budget verletzt wurde, zeigt der Bereich \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"L\\xE4ufe vergleichen\"), \" des Ergebnisses, was sich ge\\xE4ndert hat. W\\xE4hlen Sie unter \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Vergleichen mit\"), \" einen anderen Lauf desselben Monitors, und LoadFocus stellt nebeneinander dar, mit einer Spalte \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\xC4nderung\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Scores\"), \" und \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Metriken\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Seitengewicht\"), \", insgesamt und pro Ressourcentyp, dazu die Anzahl der \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Anfragen\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Neue Anfragen\"), \", \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Gr\\xF6\\xDFer gewordene Anfragen\"), \" und \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Entfernte Anfragen\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Neue Probleme\"), \" und \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Seitdem behoben\"), \", also die Audits, die neu fehlschlagen oder nicht mehr fehlschlagen\")), mdx(\"p\", null, \"H\\xE4ngen Sie die ID des anderen Laufs als Parameter \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"compare\"), \" an die Adresse des Ergebnisses an (zum Beispiel \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"&compare=12345\"), \" nach der \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"testrunid\"), \"), dann \\xF6ffnet sich die Seite mit diesem Lauf bereits ausgew\\xE4hlt. Das ist praktisch zum Teilen.\"), mdx(\"h2\", null, \"Verwandt\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/docs/de-de/guides/monitor-website-performance/performance-budgets\"\n  }, \"Performance-Budgets\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/docs/de-de/guides/monitor-website-performance/alert-configuration\"\n  }, \"Alert-Konfiguration\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/docs/de-de/guides/monitor-website-performance/experiments\"\n  }, \"Page-Speed-Experimente\"))));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#bevor-sie-beginnen","title":"Bevor Sie beginnen"},{"url":"#beispiel-für-github-actions","title":"Beispiel für GitHub Actions"},{"url":"#optionen","title":"Optionen"},{"url":"#welche-budgets-geprüft-werden","title":"Welche Budgets geprüft werden"},{"url":"#exit-codes-und-ausgabe","title":"Exit-Codes und Ausgabe"},{"url":"#deploy-markierungen","title":"Deploy-Markierungen"},{"url":"#zwei-läufe-vergleichen","title":"Zwei Läufe vergleichen"},{"url":"#verwandt","title":"Verwandt"}]},"parent":{"__typename":"File","relativePath":"de-de/guides/monitor-website-performance/ci-build-gating.md"},"frontmatter":{"metaTitle":"Page Speed in der CI: Build-Gating und Deploys | LoadFocus","metaDescription":"Lassen Sie einen CI-Build fehlschlagen, wenn eine Seite langsamer wird: Monitor aus GitHub Actions starten, Budgets prüfen und jedes Deployment markieren.","order":16,"noindex":null}},"allMdx":{"edges":[{"node":{"fields":{"slug":"/de-de","title":"Willkommen bei der LoadFocus-Dokumentation"}}},{"node":{"fields":{"slug":"/de-de/guides","title":"Anleitungen"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base","title":"Wissensdatenbank"}}},{"node":{"fields":{"slug":"/de-de/pricing","title":"Häufig gestellte Fragen zu Preisen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring","title":"API-Monitoring"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/how-to-update-card-details","title":"So aktualisieren Sie Kartendaten bei fehlgeschlagenen Zahlungen"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/how-to-delete-your-account","title":"So löschen Sie Ihr Konto"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/understanding-declined-card-payments","title":"Warum wurde meine Kartenzahlung abgelehnt?"}}},{"node":{"fields":{"slug":"/de-de/guides/external-reports","title":"Externe Berichterstattung"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/understanding-differences-between-http-and-https","title":"Unterschiede zwischen HTTP und HTTPS"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/using-3rd-party-tools-to-load-test-website-locally","title":"Lasttests für lokal gehostete Websites oder APIs"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing","title":"Lasttests mit Apache JMeter"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/using-google-analytics-and-no-requests-while-load-testing","title":"Kein Traffic in Google Analytics während Lasttests"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/using-query-parameters","title":"So verwenden Sie URL-Query-Parameter"}}},{"node":{"fields":{"slug":"/de-de/guides/k6-load-testing","title":"k6 Lasttest"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/using-valid-url-endpoints","title":"Was ist eine gültige URL für einen Lasttest"}}},{"node":{"fields":{"slug":"/de-de/guides/mcp","title":"KI-Assistenten (MCP)"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing","title":"Lasttests"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance","title":"Website-Performance überwachen"}}},{"node":{"fields":{"slug":"/de-de/knowledge-base/what-is-an-http-method","title":"Was ist eine HTTP-Anfragemethode"}}},{"node":{"fields":{"slug":"/de-de/guides/monitoring-as-code","title":"Monitoring as Code"}}},{"node":{"fields":{"slug":"/de-de/guides/onboarding","title":"LoadFocus-Onboarding"}}},{"node":{"fields":{"slug":"/de-de/guides/reusable-snippets","title":"Wiederverwendbare Snippets"}}},{"node":{"fields":{"slug":"/de-de/guides/openapi-import","title":"Import aus OpenAPI / Swagger"}}},{"node":{"fields":{"slug":"/de-de/guides/setup-teardown-scripts","title":"Setup- und Teardown-Skripte"}}},{"node":{"fields":{"slug":"/de-de/guides/teams","title":"Teamverwaltung"}}},{"node":{"fields":{"slug":"/de-de/guides/external-reports/azure-app-insights-integration","title":"Azure App Insights-Integration"}}},{"node":{"fields":{"slug":"/de-de/guides/k6-load-testing/analyzing-k6-test-results","title":"Analyse der k6 Lasttest-Ergebnisse"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/downloading-jmx-csv-files","title":"Herunterladen von .JMX- und .CSV-Dateien in LoadFocus"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/adding-notes-to-results","title":"Notizen zu Testergebnissen hinzufügen"}}},{"node":{"fields":{"slug":"/de-de/guides/external-reports/datadog-integration","title":"Datadog-Integration"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/alert-configuration","title":"Alert-Konfiguration"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/alert-channels","title":"Benachrichtigungskanäle"}}},{"node":{"fields":{"slug":"/de-de/guides/k6-load-testing/how-to-run-k6-load-test","title":"So führen Sie einen neuen k6 Lasttest durch"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/how-to-run-new-apache-jmeter-load-test","title":"So führen Sie einen neuen Apache JMeter-Lasttest durch"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/ai-credits","title":"AI Credits"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/alert-metrics","title":"Alert-Metriken"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/api-check-results","title":"API-Prüfergebnisse verstehen"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/import-to-jmeter-from-curl-har-postman-openapi","title":"cURL, HAR, Postman oder OpenAPI in einen JMeter-Test importieren"}}},{"node":{"fields":{"slug":"/de-de/guides/external-reports/dynatrace-integration","title":"Dynatrace Integration"}}},{"node":{"fields":{"slug":"/de-de/guides/k6-load-testing/import-to-k6-from-curl-har-postman-openapi","title":"cURL, HAR, Postman oder OpenAPI in einen k6-Test importieren"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/analyzing-load-test-results","title":"So prüfen Sie Lasttestergebnisse"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/ci-build-gating","title":"CI-Build-Gating & Deploy-Markierungen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/browser-checks","title":"Browser Checks"}}},{"node":{"fields":{"slug":"/de-de/guides/external-reports/new-relic-integration","title":"New Relic Integration"}}},{"node":{"fields":{"slug":"/de-de/guides/k6-load-testing/uploading-k6-scripts","title":"k6 Skripte und Datendateien hochladen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/authorization-code-grant-type-oauth-2-0","title":"Authorization Code Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/de-de/guides/external-reports/opentelemetry-integration","title":"OpenTelemetry (OTLP) Integration"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/core-web-vitals-competitor-comparison","title":"Core Web Vitals Wettbewerbervergleich"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/check-groups","title":"Prüfungsgruppen"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/jmeter-integration-ci-cd","title":"Ausführen von JMeter-Tests mit dem LoadFocus API Client"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/baseline-comparison-between-load-tests","title":"Baseline-Vergleich zwischen Lasttests"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/core-web-vitals-metrics","title":"Was sind die Core Web Vitals?"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/load-generators-hardware-infrastructure-jmeter","title":"Welche Hardwareressourcen sind meinem Konto für Lastgeneratoren zugewiesen?"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/check-retries-and-alert-thresholds","title":"Wiederholungsversuche und Alarmschwellen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/client-credentials-grant-type-oauth-2-0","title":"Client Credentials Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/experiments","title":"Page-Speed-Experimente"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/custom-domain-status-page","title":"So fügen Sie Ihrer Statusseite eine eigene Domain hinzu"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/load-testing-anomalies","title":"Lasttest-Anomalien"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/common-http-error-codes","title":"Häufige HTTP-Fehlerstatuscodes"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/dashboards","title":"Dashboards"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/getting-started","title":"Erste Schritte"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/crafting-perfect-test-names","title":"Perfekte Testnamen erstellen"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/how-to-create-new-alert","title":"Neuen Alert erstellen"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/load-testing-engine-health-monitoring","title":"Engine-Zustandsüberwachung"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/how-to-run-new-website-performance-test","title":"Neuen Website-Performance-Test erstellen"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/load-testing-error-analysis","title":"Fehleranalyse"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/dns-monitors","title":"DNS-Monitore"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/decoding-average-response-times","title":"Durchschnittliche Antwortzeit entschlüsseln"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/heartbeat-monitors","title":"Heartbeat-Monitore (Cron-Jobs)"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/load-testing-insights","title":"Lasttest-Erkenntnisse"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/deep-dive-samples-in-load-testing","title":"Was sind Samples bei Lasttests?"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/http-authentication","title":"HTTP-Authentifizierung"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/load-testing-jtl-file-analysis","title":"Logs & JTL-Dateianalyse"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/demo","title":"Demo"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/incident-management","title":"Incident-Management"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/maintenance-windows","title":"Wartungsfenster"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/largest-contentful-paint","title":"Largest Contentful Paint (LCP)"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/lighthouse-opportunities","title":"Lighthouse Opportunities"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/load-testing-jtl-jmeter-log-file-analysis","title":"JMeter-Logdateianalyse"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/end-time-in-load-testing","title":"Die Bedeutung der 'Endzeit' bei Lasttests verstehen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/multistep-api-checks","title":"Mehrstufige API-Prüfungen"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/load-testing-timeline-analysis","title":"Zeitleisten-Ansicht"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/errors-by-type","title":"Fehler nach Typ und Fehlerrate"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/uploading-jmeter-files-step-by-step-guide","title":"JMeter-Dateien auf LoadFocus hochladen: Eine Schritt-für-Schritt-Anleitung"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/pdf-report-branding","title":"Gebrandete PDF-Berichte"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/performance-budgets","title":"Performance Budgets & Alerts"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/erros-and-reponse-codes","title":"Fehler und Antwortcodes"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/using-multiple-csv-files-with-jmeter-engines","title":"Verwendung mehrerer CSV-Dateien mit JMeter-Engines in LoadFocus"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/real-user-field-data","title":"Echte Nutzer-Feld-Daten (CrUX)"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check","title":"So erstellen Sie eine neue API-Prüfung"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/geographical-test-location-in-load-testing","title":"Geografischer Teststandort bei Lasttests"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/recent-failures","title":"Letzte Fehler"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/getting-started","title":"Erste Schritte"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/sla-slo-reports","title":"SLA- & SLO-Uptime-Berichte"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/granularity-in-load-test-results-and-charts","title":"Granularität in Lasttestergebnissen und Diagrammanzeige"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/sitemap-import","title":"Sitemap-Import"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/group-filter-load-test-results-by-url","title":"Lasttest-Ergebnisse nach URL gruppieren und filtern"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/snippets","title":"Snippets"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/ssl-certificate-monitoring","title":"SSL-Zertifikatsüberwachung"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/real-user-monitoring","title":"Real User Monitoring (RUM)"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/headers-and-manage-presets","title":"Header und Header-Vorlagen"}}},{"node":{"fields":{"slug":"/de-de/guides/monitor-website-performance/visual-regression-testing","title":"Visual Regression Testing"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/status-page-api","title":"Status-Page-API, RSS-Feeds und Status-Badge"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/how-to-run-new-load-test","title":"So führen Sie einen neuen Lasttest durch"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/status-pages","title":"Erstellen Sie eine öffentliche Statusseite für Ihre Monitore"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/how-to-url-query-parameters","title":"Query-Parameter"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/synthetic-monitoring","title":"Synthetic Monitoring"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/http-methods-overview-load-testing","title":"HTTP-Methoden: Ein Überblick"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/tcp-monitors","title":"TCP-Port-Monitore"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/load-generator-saturation","title":"Auslastung der Lastgeneratoren"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/uptime-monitoring","title":"Uptime Monitoring"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/variables","title":"Variablen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/load-generators-hardware-infrastructure","title":"Welche Hardwareressourcen sind meinem Konto für Lastgeneratoren zugewiesen?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/load-test-results-api","title":"Ergebnisanalyse-API"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/page-speed-under-load","title":"Seitengeschwindigkeit unter Last"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/page-speed-under-load-trends","title":"Page Speed Under Load Trends"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/load-test-result-ai-analysis","title":"KI-Analyse von Lasttestergebnissen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/password-credentials-grant-type-oauth-2-0","title":"Password Credentials Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/pass-fail-thresholds","title":"Pass/Fail-Schwellenwerte"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/implicit-grant-type-oauth-2-0","title":"Implicit Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/reading-the-capacity-panel","title":"Die Kapazitätsanzeige lesen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/refresh-token-grant-type-oauth-2-0","title":"Refresh Token Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/release-tags-and-run-annotations","title":"Release-Tags und Run-Annotationen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/response-time-distribution","title":"Verteilung der Antwortzeiten"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/results-by-location","title":"Ergebnisse nach Standort"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/response-time-vs-virtual-users","title":"Antwortzeit vs. virtuelle Benutzer"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/performance-trend-load-test-results","title":"Performance-Trend"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/share-load-test-reports","title":"Lasttest-Berichte teilen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/scheduled-load-tests","title":"Geplante Lasttests"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/slowest-and-most-failing-requests","title":"Langsamste und fehleranfälligste Anfragen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/start-time-in-load-testing","title":"Die Bedeutung der Startzeit bei Lasttests verstehen"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/using-cookies","title":"Verwendung von Cookies"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/use-cases","title":"Anwendungsfälle"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-is-delay-when-running-a-load-test","title":"Was ist Verzögerung bei der Durchführung eines Lasttests?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-are-virtual-users-load-testing","title":"Was sind virtuelle Benutzer bei Lasttests?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-are-iterations-load-testing","title":"Was sind Iterationen bei Lasttests?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-is-duration-in-load-testing","title":"Was ist die Dauer bei Lasttests?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-is-grant-type","title":"Was ist ein Grant Type?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-is-oauth-2-0-authorization","title":"OAuth 2.0 Autorisierung"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-is-ramp-up-time-in-load-testing","title":"Was ist die Hochlaufzeit bei Lasttests?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-is-ramp-up-steps-in-load-testing","title":"Was sind Hochlaufschritte bei Lasttests?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/what-is-test-run-id","title":"Was ist eine Testlauf-ID?"}}},{"node":{"fields":{"slug":"/de-de/guides/load-testing/white-label-report-branding","title":"Gebrandete PDF-Berichte"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/jmeter-integration-ci-cd/circleci","title":"CircleCI"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/jmeter-integration-ci-cd/github-actions","title":"GitHub Actions"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/jmeter-integration-ci-cd/gitlab-ci-cd","title":"GitLab CI/CD"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/jmeter-integration-ci-cd/overview","title":"Integration des JMeter API Clients mit CI/CD-Pipelines"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/jmeter-integration-ci-cd/azure-devops","title":"Azure DevOps"}}},{"node":{"fields":{"slug":"/de-de/guides/jmeter-load-testing/jmeter-integration-ci-cd/jenkins","title":"Jenkins"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/alert-channels/email","title":"Email-Warnungen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/alert-channels/discord","title":"Discord-Warnungen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/alert-channels/microsoft-teams","title":"Microsoft-Teams-Warnungen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/alert-channels/pagerduty","title":"PagerDuty-Warnungen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/alert-channels/opsgenie","title":"Opsgenie-Warnungen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/alert-channels/slack","title":"Slack-Warnungen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/alert-channels","title":"Benachrichtigungskanäle"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/assertions","title":"Assertions"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/activate-deactivate","title":"Aktivieren/Deaktivieren"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/alert-channels/webhook","title":"Webhook-Warnungen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/friendly-check-name","title":"Benutzerfreundlicher Prüfungsname"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/mute-unmute","title":"Stummschalten/Entstummschalten"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/request-configuration","title":"Anfragekonfiguration"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/locations","title":"Standorte"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/request-preview","title":"Anfragevorschau"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/save-run","title":"Speichern und Ausführen"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/response-time-limits","title":"Antwortzeit-Limits"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/retries","title":"Wiederholungen vor Benachrichtigung"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/frequency","title":"Häufigkeit"}}},{"node":{"fields":{"slug":"/de-de/guides/api-monitoring/new-api-check/webhook-channels","title":"Webhook-Kanal"}}}]}},"pageContext":{"id":"96917dd8-f29b-5bf6-aec4-782e37a70081","locale":"de-DE"}},"staticQueryHashes":["361965504","361965504","417421954","417421954","445494767","445494767"]}