Sobes.tech
Junior

Yuklama testlari haqida gapiring.

sobes.tech AI

AIdan javob

Yuklamali testlar — bu turdagi testlar bo‘lib, ular ilova (tizim)ning turli yuklamarda ishlash samaradorligi, barqarorligi va kengaytirilishini aniqlashga qaratilgan.

Yuklamali testlarning vazifalari:

  • Tizim qanchalik yukni chidashini aniqlash.
  • "Tor" joylarni (bottlenecks) aniqlash.
  • Belgilangan yuklamada tizim javob vaqtini baholash.
  • Yuklama ostida tizimning uzoq muddatli barqarorligini tekshirish.
  • Tizimning kengaytirilishini tekshirish.

Yuklamali test turlari:

  • Yuklama testi (Load Testing): Tizimning kutilgan (standart) yuklamada qanday ishlashini tekshirish.
  • Stress testi (Stress Testing): Tizimni standartdan oshgan yuklama bilan sinash, nosozliklar yuzaga kelguncha. Maqsad — chidamlilik chegarasini aniqlash.
  • Chidamlilik/uzoq muddatli test (Endurance/Soak Testing): Tizimning o‘rtacha yoki yuqori yuklama ostida uzoq vaqt davomida barqarorligini tekshirish, xotira oqiblarini, ishlash degradatsiyasini aniqlash.
  • Pik yuklama testi (Spike Testing): Yuklamaning keskin va bir vaqtning o‘zida oshirilishini tekshirish.
  • Kengaytirilish testlari (Scalability Testing): Tizimning resurslarni kengaytirish orqali ortib borayotgan yuklamani qanday qabul qilishini baholash.
  • Hajm testi (Volume Testing): Ma’lumotlar hajmi oshganda tizimning qanday ishlashini tekshirish.

Yuklamali testlarni o'tkazish bosqichlari:

  1. Ma’goalarning aniqlanishi: Ishlash metrikalari (javob vaqti, o'tkazuvchanlik, xato soni) va muvaffaqiyat mezonlarini aniq belgilash.
  2. Ssenariylarni rejalashtirish va loyihalash: Foydalanuvchi ssenariylarini tahlil qilish, yuklama profili (virtual foydalanuvchilar soni, so‘rovlar intensivligi)ni belgilash.
  3. Test skriptlarini ishlab chiqish: Yuklamali test vositalaridan foydalanib, foydalanuvchilarning harakatlarini imitatsiya qiluvchi skriptlar yozish.
  4. Test muhitini tayyorlash: Ishlab chiqarish muhitini simulyatsiya qiluvchi test stendini sozlash.
  5. Testlarni bajarish: Turli yuklamalar bilan testlarni ishga tushirish.
  6. Monitoring va ma’lumotlarni yig‘ish: Tizim, serverlar, ma’lumotlar bazasi metrikalarini yig‘ish.
  7. Natijalarni tahlil qilish va hisobot tayyorlash: Olingan natijalarni maqsadlar bilan solishtirish, muammolarni aniqlash, hisobot tayyorlash.

Yuklamali testlar uchun vositalar:

  • JMeter
  • LoadRunner
  • Gatling
  • k6
  • Locust

JMeter uchun oddiy skript namunasi (HTTP so‘rovi):

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.6.2">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Misol uchun yuklamali test">
      <hashTree>
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group">
          <intProp name="ThreadGroup.num_threads">100</intProp>
          <intProp name="ThreadGroup.ramp_time">10</intProp>
          <longProp name="ThreadGroup.duration">60</longProp>
          <boolProp name="ThreadGroup.scheduler">true</boolProp>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP So‘rovi misoli">
              <stringProp name="HTTPSampler.domain">example.com</stringProp>
              <stringProp name="HTTPSampler.path">/</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">false</boolProp>
              <boolProp name="HTTPSampler.embedded_url_report">true</boolProp>
              <boolProp name="HTTPSampler.connect_timeout"></boolProp>
              <boolProp name="HTTPSampler.response_timeout"></boolProp>
              <stringProp name="HTTPSampler.protocol">https</stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.comment"></stringProp>
              <stringProp name="HTTPSampler.port"></stringProp>
              <stringProp name="HTTPSampler.image_parser">true</stringProp>
              <stringProp name="HTTPSampler.concurrentDwn">Both</stringProp>
              <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
              <stringProp name="HTTPSampler.implementation_status">OK</stringProp>
              <boolProp name="HTTPSampler.postBodyRaw">false</boolProp>
              <listProp name="HTTPSampler.HTTP_HEADERS"></listProp>
            </HTTPSamplerProxy>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </TestPlan>
  </hashTree>
</jmeterTestPlan>

Yuklamali testlar davomida yig‘iladigan metrikalar:

  • Javob vaqti
  • O‘tish tezligi
  • Xato soni sekundiga
  • So‘rovlar soni sekundiga
  • CPU foydalanish
  • Xotira foydalanish
  • Disk I/O faoliyati
  • Tarmoq faoliyati
  • Ma’lumotlar bazasi metrikalari

Yuklamali testlar tizimning ishlab chiqarishdagi uzilishlarini oldini olishga yordam beradi va yakuniy foydalanuvchilar uchun qabul qilinadigan sifat darajasini ta’minlaydi.