Sobes.tech
Middle

İş performans testlərinin əsas aspektləri nələrdir və onun həyata keçirilməsi üçün hansı alətləri istifadə etdiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Performans testi aşağıdakıları əhatə edir:

  • Yük testi (Load Testing): Sistemin gözlənilən yüklənmə zamanı davranışını qiymətləndirmək. Sistemin dayanıqlığını itirmədən əvvəl istifadəçi və ya tranzaksiya sayının ən yüksək həddini müəyyən edir.
  • Stres testi (Stress Testing): Sistemi gözləniləndən çox yüklə sınaqdan keçirmək, qəza nöqtəsini və belə şəraitdə sistemin davranışını müəyyən etmək. Məqsəd – sistemin yüklənmədən sonra bərpa olunmasını təmin etmək.
  • Əzm testi (Endurance/Soak Testing): Sistemi uzun müddət yüksək yüklə sınaqdan keçirmək, yaddaş sızması və ya zamanla ortaya çıxan digər problemləri aşkar etmək.
  • Ani yüklənmə testi (Spike Testing): Sistəmə ani yüklənmənin artırılması, istifadəçi fəaliyyətində ani artışlara sistemin reaksiyasını yoxlamaq.
  • Həcmi testi (Volume Testing): Verilənlər bazası və ya fayl sistemində böyük məlumat həcmi ilə sınaq, sistemin böyük məlumat həcmi ilə işləmək qabiliyyətini qiymətləndirmək.
  • Ölçülənmə qabiliyyəti testi (Scalability Testing): Sistemin yüklənmənin artmasına cavab verə bilmə qabiliyyətini, hardware resurslarının əlavə olunması və ya proqram təminatının optimizasiyası ilə müəyyən etmək.

Performans testini həyata keçirmək üçün aşağıdakı alətlər istifadə olunub:

  • Apache JMeter: Açıq mənbəli çoxfunksiyalı Java aləti, müxtəlif protokolları dəstəkləyir (HTTP, HTTPS, FTP, JDBC və s.). Çətin ssenarilərin yaradılmasına imkan verir, parametrizasiya, korelyasiya, qeydiyyat və ətraflı hesabatların yaradılmasını əhatə edir.
    // JMeter-də HTTP sorğusunun nümunəsi (JMX faylı)
    <HTTPSamplerProxy guiclass="HttpTestSampleGui"
                       testclass="HTTPSamplerProxy"
                       testname="Sample"
                       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): Ticarət aləti, protokollar və nəticələrin analizi üçün geniş imkanlara malikdir. Böyük korporativ layihələrdə tez-tez istifadə olunur.
  • Gatling: Müasir açıq mənbəli alət, Scala əsasında. Yüksək performans və ssenarilərin yaradılması üçün ifadəli dil (DSL) ilə tanınır.
    // Gatling ssenarisinin nümunəsi (Simulation.scala)
    import io.gatling.core.Predef._
    import io.gatling.http.Predef._
    import scala.concurrent.duration._
    
    class BasicSimulation extends Simulation {
    
      val httpProtocol = http
        .baseUrl("https://example.com")
        .acceptHeader("application/json")
    
      val scn = scenario("İstifadəçilər")
        .exec(http("İstifadəçiləri əldə et").get("/api/users"))
    
      setUp(scn.inject(rampUsers(100) during (5.minutes))).protocols(httpProtocol)
    }