Sobes.tech
Middle

Was sind die wichtigsten Aspekte der Leistungstests und welche Tools haben Sie für deren Umsetzung verwendet?

sobes.tech KI

Antwort von AI

Leistungsprüfung umfasst:

  • Lasttest (Load Testing): Bewertung des Systemverhaltens bei erwarteter Belastung. Bestimmt die obere Grenze der Nutzerzahl oder Transaktionen, die das System verkraften kann, bevor die Leistung nachlässt.
  • Stresstest (Stress Testing): Testen des Systems unter extremen Belastungen, die die Erwartungen übersteigen, um den Fehlerpunkt und das Verhalten unter solchen Bedingungen zu bestimmen. Ziel ist es, sicherzustellen, dass das System sich nach einer Überlastung erholt.
  • Ausdauer- oder Dauerbelastungstest (Endurance/Soak Testing): Testen des Systems über einen längeren Zeitraum bei signifikanter Belastung, um Speicherlecks oder andere mit der Zeit auftretende Probleme zu erkennen.
  • Spike-Testing: Plötzliche Erhöhung der Belastung, um die Reaktion des Systems auf plötzliche Aktivitätsspitzen zu testen.
  • Volumentest (Volume Testing): Testen mit großen Datenmengen in Datenbanken oder Dateisystemen, um die Leistung bei der Verarbeitung großer Informationsmengen zu bewerten.
  • Skalierbarkeitstest (Scalability Testing): Bestimmung der Fähigkeit des Systems, mit zunehmender Belastung durch Hinzufügen von Hardware-Ressourcen oder Optimierung der Software umzugehen.

Zur Durchführung der Leistungstests werden folgende Tools verwendet:

  • Apache JMeter: Open-Source-Java-Tool, das verschiedene Protokolle (HTTP, HTTPS, FTP, JDBC usw.) unterstützt. Ermöglicht die Erstellung komplexer Testszenarien mit Parametrisierung, Korrelation, Protokollierung und detaillierten Berichten.
    // Beispiel für eine HTTP-Anfrage in JMeter (JMX-Datei)
    <HTTPSamplerProxy guiclass="HttpTestSampleGui"
                       testclass="HTTPSamplerProxy"
                       testname="Beispiel"
                       enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain">example.com</stringProp>
      <stringProp name="HTTPSampler.port">80</stringProp>
      <stringProp name="HTTPSampler.protocol">http</stringProp>
      <stringProp name="HTTPSampler.path">/api/users</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
    </HTTPSamplerProxy>
    
  • LoadRunner (Micro Focus): Kommerzielles Tool, das für seine umfangreichen Protokoll- und Ergebnisanalysefähigkeiten bekannt ist. Wird häufig in großen Unternehmensprojekten eingesetzt.
  • Gatling: Modernes Open-Source-Tool auf Scala-Basis. Bekannt für seine Leistung und die ausdrucksstarke Sprache zur Erstellung von Testszenarien.
    // Beispiel eines Gatling-Szenarios (Simulation.scala)
    import io.gatling.core.Predef._
    import io.gatling.http.Predef._
    
    class BasicSimulation extends Simulation {
    
      val httpProtocol = http
        .baseUrl("https://example.com")
        .inferHtmlResources()
        .proxy(Proxy("localhost", 8888).httpsPort(443))
    
      val scn = scenario("Benutzer")
        .exec(http("Benutzer abrufen").get("/api/users"))
    
      setUp(scn.inject(rampUsers(100) during (5 minutes))).protocols(httpProtocol)
    }