Mobil ishlanmada Ishlash Tezligi Testi: nima, koʻreSatkichlar va qanday oʻtkaziladi

Muallif: IT Sectr Nashr etilgan: 2026-04-07 O'qish vaqti: 10 daq

Ishlash Tezligi Testi — bu ish yuki ostida mobil ilovaning tezligi, javob berish qobiliyati va barqarorligini oʻlchash jarayoni. Funksional testdan farqli oʻlaroq, mantiqning toʻgʻriligini tekshiradi, ishlash tezligi testi ilovaning real sharoitlarda qanchalik tez va silliq ishlashini baholaydi. Google Research (2024) maʻlumotlariga koʻra, foydalanuvchilarning 53% ilovani tark etadi, agar uning ishga tushishi 3 soniyadan koʻp davom etsa. Ishlash tezligi testi relizdan oldin tor joylarni aniqlashga yordam beradi va qabul qilingan sifat standartlariga muvofiqlikni taʻminlaydi.

Asosiy fikrlar

  • Ishlash Tezligi Testi — yuk ostida ilovaning tezligi, javob berish qobiliyati va barqarorligini tekshirish jarayoni.
  • Asosiy koʻreSatkichlar — javob vaqti, oʻtkazish qobiliyati, CPU, xotira va batareyadan foydalanish.
  • Ishlash Tezligi Testi yuk, stress, hajm va choʻqqi testini oʻz ichiga oladi.
  • Avtomatlashtirish Ishlash Tezligi Testi Xcode Instruments, Android Profiler va k6 orqali CI/CD pipeline ga oʻrnatiladi.
  • Asosiy chiziq (baseline) — yangi qurilmalar natijalari bilan solishtiriladigan etalon koʻreSatkich oʻlchovi.

Ishlash Tezligi Testi nima?

Ishlash Tezligi Testi — bu ilovaning oʻz vazifalarini qanchalik tez va samarali bajarishini aniqlaydigan nofunksional test turi. Birlik testlari yoki UI testlaridan farqli oʻlaroq, Ishlash Tezligi Testi miqdoriy xususiyatlarni oʻlchaydi: javob vaqti, protsessor yuki, RAM isteʻmoli va batareya sarfi. Sauce Labs (2025) hisobotiga koʻra, mobil ishlanma jamoalarining 68% Ishlash Tezligi Testini muntazam test siklga kiritadi, 41% esa uni CI da avtomatlashtiradi.

Ishlash Tezligi Testining asosiy maqsadi — ilovaning spetsifikatsiyada koʻrsatilgan ishlash talablariga javob berishiga ishonch hosil qilishdir. Agar ekranning ochilish vaqti 500 millisekunddan oshsa yoki ilova oʻrta qurilmada 200 MB dan ortiq RAM isteʻmol qilsa, bu optimallashtirish uchun signaldir. Asosiy chiziq ishlashi birinchi barqaror reliz bosqichida belgilanadi va har bir katta yangilanishda qayta koʻrib chiqiladi.

Ishlash Tezligi Testi real qurilmalarda oʻtkaziladi, simulyatorlarda emas, chunki emulyatsiya CPU, GPU va tarmoq resurslaridan foydalanishning aniq tasvirini bermaydi. Apple WWDC (2024) maʻlumotlariga koʻra, simulyatordagi testlar real qurilma bilan solishtirganda 15–30% yuqori natijalarni koʻrsatadi. Real qurilma ishlash haqida yagona ishonchli maʻlumot manbai boʻlib qoladi.

Ishlash Tezligi Testining muntazamligi rivojlanish siklga bogʻliq. Google Android Performance (2024) tavsiyalarida asosiy ishlash oʻlchovlari har bir pull request da, toʻliq toʻplam esa har bir relizdan oldin ishga tushirilishi kerakligi koʻrsatilgan. Avtomatlashtirish bu oʻlchovlarning erta bosqichlarda ishlash regressiyalarini aniqlashga imkon beradi.

Asosiy ishlash koʻreSatkichlari

Mobil ishlanmada Ishlash Tezligi Testi stsenariylarining 90% ni qamrab oluvchi beshta asosiy koʻreSatkich ajratiladi. Ishga tushirish vaqti (sovuq ishga tushirish va issiq ishga tushirish) — har bir relizda tekshiriladigan birinchi koʻreSatkichdir. Google Play Console (2024) ishga tushirish vaqtini chegaralar boʻyicha qayd etadi: sovuq ishga tushirish 5 soniyadan, issiq ishga tushirish 1.5 soniyadan oshmasligi kerak. Bu chegaralarning oshib ketishi toʻgʻidan-toʻgʻi ilova doʻkonidagi reytingga taʻsir qiladi.

Ishga tushirish vaqti (Cold Start)

Sovuq ishga tushirish belgi ustiga bosilgan paytdan ilovaning birinchi kadri paydo boʻlguncha oʻlchanadi. iOS kechiktirilgan initsializatsiya uchun `dispatch_async` dan foydalanadi, bu koʻrinadigan ishga tushirish vaqtini qisqartiradi. Android sovuq ishga tushirish jarayon yaratish, Application ni initsializatsiya qilish va Activity ni ishga tushirishni oʻz ichiga oladi. Google Performance (2024) maʻlumotlariga koʻra, sovuq ishga tushirishning har 100 ms kechikishi elektron tijorat ilovalarida Conversion Rate ni 1.2% ga kamaytiradi.

Kadr chastotasi (FPS)

FPS (Frames Per Second) — animatsiyalar va roʻyxatlarni aylantirish paytidagi kadr chastotasi. Silliq interfeys uchun barqaror 60 FPS talab qilinadi. Android Studio Profiler va Xcode GPU Report ogʻir operatsiyalarda — tasvirlarni yuklash, JSON ni pars qilish yoki murakkab maketlarni render qilishda FPS tushishini koʻrsatadi. 30 FPS dan past tushish foydalanuvchi tomonidan “sekinlashish” sifatida seziladi va Adjust (2025) maʻlumotlariga koʻra Retention Rate ni 22% ga pasaytiradi.

RAM isteʻmoli

RAM isteʻmoli — uchinchi muhim koʻreSatkich. Xotira oqishi — uzoq muddatli sessiyalarda ishlashning pasayishining asosiy sababi. Instruments Allocations va Android Memory Profiler Swift da tsiklik havolalarni va Android da boʻshatilmagan Activity larni aniqlashga yordam beradi. Batareya sarfi — test bosqichida tez-tez eʻtibordan chetda qoladigan koʻreSatkich. Apple Developer (2024) maʻlumotlariga koʻra, yuqori energiya isteʻmoli boʻlgan ilovalar iOS da fon rejimida cheklanadi. Energy Log Xcode da sessiya davomida ilovaning vatt profilini qayd etadi.

KoʻreSatkichChegaraVositA
Cold start< 5 sXcode Organizer, Google Vitals
FPS≥ 55 barqarorXcode GPU Report, Android Profiler
RAM< 200 MBInstruments, Memory Profiler
APK/IPA< 150 MBXcode Build, Gradle APK Analyzer

Ishlash tezligi testi turlari

Yuk testi (Load Test) kutilayotgan bir vaqtda foydalanuvchilar soni ostida ilovaning xatti-harakatini tekshiradi. Mobil backend uchun bu API ga 1000–10000 bir vaqtda soʻrovlarni simulyatsiya qilishni anglatadi. Server qismi choʻqqi yukni asosiy qiymatdan 20% dan koʻp boʻlmagan javob vaqti oshishi bilan boshqarishi kerak. k6 benchmarklariga (2024) koʻra, odatdagi Load Test konfiguratsiyasi 5 daqiqa ichida 0 dan 1000 VU gacha rampani oʻz ichiga oladi.

Stress testi (Stress Test) ilovaning ishdan chiqish nuqtasini aniqlaydi — tizim soʻrovlarga javob berishni toʻxtatadigan yoki qabul qilib boʻlmaydigan darajada yomonlashadigan paytni. Load Test dan farqli oʻlaroq, Stress Test tizimni normal chegaralardan yuqori yuklaydi. Ishdan chiqish nuqtasi mezonlardan biriga koʻra qayd etiladi: javob vaqti 10 soniyadan oshsa, 5XX xatolar foizi 5% dan oshsa yoki RAM isteʻmoli mavjud xotiraning 90% ga yetsa.

Hajm testi (Volume Test) katta hajmdagi maʻlumotlar bilan ishlashda ilovaning xatti-harakatini baholaydi. Mobil kontekstda bu mahalliy maʻlumotlar bazasida minglab yozuvlar, oʻnlab gigabayt kesh yoki millionlab push bildirishnomalari bilan ishlashni tekshirishdir. SQLite Android da va Core Data iOS da 100000 yozuvdan yuqori hajmda turli ishlashni koʻrsatadi.

Ishlash Tezligi Testi uchun vositalar

Xcode Instruments

Xcode Instruments — iOS ilovalarini profillash uchun asosiy vosita. Time Profiler qaysi metodlar eng koʻp CPU isteʻmol qilishini koʻrsatadi, Allocations esa xotira ajratish va boʻshatishni kuzatadi. Instruments uzoq sessiyalar (30 daqiqagacha) davomida yozishni va qurilmalar orasida solishtirish uchun treylarni eksport qilishni qoʻlab-quvvatlaydi. Activity Monitor Instruments ichida real vaqtda tizimning umumiy yukini koʻrsatadi.

Android Studio Profiler

Android Studio Profiler — Android uchun oʻrnatilgan profillash vositasi. U CPU, Memory, Network va Energy profillarini yagona interfeysda birlashtiradi. Android Profiler ning xususiyati interaktiv sessiyalarni qoʻlab-quvvatlashidir: dasturchi ilovada harakatlar bajarishi va koʻreSatkichlarning darhol reaksiyasini koʻrishi mumkin. Google I/O (2024) maʻlumotlariga koʻra, Profiler .perf formatida yozishni qoʻlab-quvvatlaydi, uni CI da baseline bilan solishtirish mumkin.

Charles Proxy

Charles Proxy va Proxyman — tarmoq trafigini tahlil qilish vositalari. Ular har bir HTTP soʻrovining vaqti, javob hajmi va sarlavhalarini koʻrsatadi. Ishlash Tezligi Testi uchun 500 ms dan uzoq davom etadigan soʻrovlarni qayd etish muhim — ular keshlash yoki optimallashtirish uchun nomzodlardir. Charles sekin tarmoqlarni simulyatsiya qiluvchi throttle rejimini qoʻlab-quvvatlaydi: 3G, Edge va LTE. Proxyman macOS uchun mahalliy Swift arxitekturasi bilan engilroq alternativadir.

swift
import XCTest

class PerformanceTests: XCTestCase {

    func testLaunchPerformance() {
        measure(metrics: [XCTClockMetric(),
                         XCTMemoryMetric()]) {
            XCUIApplication().launch()
        }
    }

    func testScrollPerformance() {
        let app = XCUIApplication()
        app.launch()
        let tableView = app.tables["list"]
        measure {
            tableView.swipeUp()
            tableView.swipeDown()
        }
    }
}

CI/CD pipeline da Ishlash Tezligi Testi

Ishlash Tezligi Testini CI/CD ga oʻrnatish 2025–2026 yillar uchun sanoat standartidir. Ishlash pipeline i uch bosqichni oʻz ichiga oladi: pre-commit (pull request da tezkor oʻlchovlar), nightly (toʻliq test toʻplami) va pre-release (etalon qurilmalarda baseline bilan solishtirish). Bitrise va GitHub Actions Xcode Instruments CLI va Gradle Profiler ni ishga tushirishni qoʻlab-quvvatlaydi.

GitHub Actions (2024) `xcodebuild test-without-building` yordamida iOS Ishlash Tezligi Testi uchun rasmiy shablonni eʻlon qildi. Shablon testlarni GitHub mashinalaridan birida ishga tushiradi va hisobotni artifact da eʻlon qiladi. Baseline repozitoriyada JSON faylida saqlanadi: chegara 10% oshib ketganda pipeline xato bilan toʻxtaydi. Bu yondashuv har bir qurilmani qoʻlda tekshirmasdan ishlash yomonlashuvining oldini oladi.

CI da mobil Ishlash Tezligi Testining muammosi — turli mashinalarda natijalarning beqarorligi. Apple Silicon (M1–M4) va Intel Xeon turli bajarish vaqtlarini beradi. Yechim — mutlaq qiymatlar emas, baseline ga foiz nisbati dan foydalanishdir. Agar test baseline dan 15% uzoq davom etsa — qurilma tekshirish talab qiladigan deb belgilanadi.

iOS va Android da Ishlash Tezligi Testi yozish

XCTest Performance iOS da `measure(metrics:)` metodidan foydalanadi, u kod blokini 10 marta ishga tushiradi va statistikani qaytaradi: oʻrta, median, standart ogʻish. Maʻlumotlar bazasi ishlashini test qilish uchun XCTest da choʻqqi RAM isteʻmolini qayd etuvchi XCTMemoryMetric dan foydalanish qulay. Chegara test tugagandan soʻng `XCTPerformanceReport` orqali oʻrnatiladi.

Android Macrobenchmark — Google ning ilova darajasida ishlashni oʻlchash uchun kutubxonasi. Macrobenchmark foydalanuvchi stsenariylarini (Activity ni ishga tushirish, RecyclerView ni aylantirish, WebView ni ochish) ishga tushiradi va bajarish vaqtini oʻlchaydi. Baseline Profile — Android kompilyatori oldindan optimallashtiradigan sinflar va metodlar toʻplami. Google Play birinchi ishga tushirishni 30% tezlashtirish uchun Baseline Profile dan foydalanadi.

kotlin
@RunWith(AndroidJUnit4::class)
class StartupBenchmark {
    @get:Rule
    val benchmarkRule = MacrobenchmarkRule()

    @Test
    fun startup() {
        benchmarkRule.measureRepeated(
            packageName = "com.example.app",
            metrics = listOf(StartupTimingMetric()),
            iterations = 5
        ) {
            pressHome()
            startActivityAndWait()
        }
    }
}

Ikkala yondashuv — XCTest Performance va Android Macrobenchmark — bir xil konsepsiyadan foydalanadi: oʻrta bilan koʻp martali oʻlchash va chegara bilan solishtirish. Ishlash bitta raqamga qisqartirilishi mumkin emas. Har bir reliz oxirgi 5 qurilma boʻyicha koʻreSatkich tendentsiyalarini oʻz ichiga olgan ishlash hisoboti bilan birga boʻlishi kerak. Bunday hisobot jamoaga foydalanuvchilar sezmasdan oldin yomonlashuvni koʻrishga imkon beradi.

Tez-tez beriladigan savollar

Ishlash Tezligi Testi Load Test dan qanday farq qiladi?

Ishlash Tezligi Testi — Load Test, Stress Test, Volume Test va boshqa turlarni oʻz ichiga olgan keng toifadir. Load Test — kutilayotgan yuk ostida tizimning xatti-harakatini tekshiradigan Ishlash Tezligi Testining alohida holati. Barcha Load Testlar Ishlash Tezligi Testidir, lekin aksincha emas.

Ishlash Tezligi Testi qanchalik tez-tez oʻtkazilishi kerak?

Asosiy oʻlchovlar (sovuq ishga tushirish, FPS, RAM) — har bir pull request da. Toʻliq Ishlash Tezligi Testi toʻplami — har bir relizdan oldin. Tungi yugurishlar — kundalik qurilmalari boʻlgan loyihalar uchun. Google Macrobenchmark ni kuniga kamida bir marta bajarishni tavsiya qiladi.

Qaysi koʻreSatkichlar mobil ilova uchun muhim hisoblanadi?

Uchta koʻreSatkich muhim hisoblanadi: sovuq ishga tushirish vaqti (5 soniyadan koʻp emas), aylantirish paytida FPS (55 FPS dan kam emas) va choʻqqi RAM isteʻmoli (200 MB dan koʻp emas). Google Play Console va App Store Connect avtomatik ravishda bu koʻreSatkichlarni kuzatadi.

Ishlash Tezligi Testini avtomatlashtirish mumkinmi?

Ha, Ishlash Tezligi Testi Xcode CLI (`xcodebuild test`) va Gradle (`gradle connectedCheck`) orqali toʻliq avtomatlashtiriladi. k6 va Gatling kabi vositalar server qismining yuk testini avtomatlashtiradi. CI/CD integratsiyasi inson ishtirokisiz Ishlash Tezligi Testini ishga tushirishga imkon beradi.

Ishlash Tezligi Testida baseline nima?

Baseline (asosiy chiziq) — yangi qurilmalar natijalari bilan solishtiriladigan etalon ishlash oʻlchovidir. Baseline birinchi barqaror reliz bosqichida belgilanadi va JSON yoki XML da saqlanadi. Agar yangi qurilma baseline ni 10% oshib ketsa, CI pipeline regressiya haqida signal beradi.

Xulosa

  • Ishlash Tezligi Testi — yuk, stress va hajm testini oʻz ichiga olgan ilovaning tezligi, javob berish qobiliyati va barqarorligini oʻlchash jarayoni.
  • Asosiy koʻreSatkichlar — ishga tushirish vaqti, FPS, RAM isteʻmoli, batareya sarfi va tarmoq trafigi hajmi.
  • Vositalar — iOS uchun Xcode Instruments, Android uchun Android Studio Profiler, server qismi uchun k6 va JMeter.
  • Avtomatlashtirish CI/CD da Ishlash Tezligi Testi — xcodebuild, Gradle Macrobenchmark va k6 orqali amalga oshiriladigan sanoat standarti.
  • Baseline — regressiyalarni aniqlash uchun yangi qurilmalar solishtiriladigan etalon oʻlchov.
  • Ishlash Tezligi Testi real qurilmalarda oʻtkaziladi, chunki simulyatorlar 15–30% xato beradi.
  • Asosiy oʻlchovlarni har bir pull request da va toʻliq toʻplamni har bir relizdan oldin ishga tushirish tavsiya etiladi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing