CodeGym /Kurslar /Python SELF AZ /Skriptin işini tamamlanması və test edilməsi

Skriptin işini tamamlanması və test edilməsi

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Sessiyanın tamamlanması

Brauzer iş sessiyasını düzgün necə bitirməli

Deməli, sizdə möhtəşəm bir skript var, məlumat toplayır, düymələrə basır və brauzerdə bir sıra sehrli işlər görür. İndi isə onun işini düzgün bitirmək vacibdir. Təsəvvür edin ki, brauzeriniz asta-yavaş bir fil kimidir: qapını çırpıb çıxıb gedə bilməzsiniz. Onun işini nəzakətlə və sakitcə bitirmək lazımdır. Bunun üçün quit() metodundan istifadə edin.

Python

from selenium import webdriver

# Brauzer driver-inin inizializasiyası
driver = webdriver.Chrome()

# burada brauzer sehri baş verir... 🧙‍♂️

# Brauzerin işini tamamlayır
driver.quit()

quit() metodu brauzerin bütün pəncərələrini bağlayır və onun işini tamamlayır. Əgər bu metodu çağırmağı unutsaq, arxa planda açıq bir brauzerlə və anlaşılmaz yaddaş sızması ilə bağlı qəribə hekayələr başlayacaq. Razılaşarsınız ki, xoşbəxt bir həyat hər kəsin istəyidir.

Bəzən Selenium ilə işdən sonra brauzer prosesləri fon rejimində qərarsız real vaxt strategiyasının vahidləri kimi qalıb "gəzə bilir". Məsələn, ssenariniz haradasa "düşübsə" belə bir vəziyyət baş verə bilər. Bu problemi həll etməyin bir yollarından biri paket prosesi ilə işin bitirilməsi, məsələn, Python-da psutil və ya digər sistem komandalarından istifadə etməkdir.

Python

import psutil

# Chrome-un qalıq proseslərini bağlamaq
for proc in psutil.process_iter():
    # Prosesin brauzere aid olub olmadığını yoxlayırıq
    if 'chrome' in proc.name().lower():
        proc.kill()

Bu ən elegant üsul deyil, amma bəzi hallarda bu proseslər idarəolunmaz olduqda başqa variant qalmır. Unutmayın ki, belə bir halda bütün brauzer proseslərini bağlayacaqsınız, ona görə də ağılla istifadə edin.

2. Scriptin testləşdirilməsi

Ssenaridəki bütün addımların düzgün icrasının yoxlanılması

Scriptin uğurla tamamlanması işin yalnız yarısıdır. Hər bir addımın düzgün icra edildiyini yoxlamaq vacibdir. Bu məqsəd üçün proqram təminatının testləşdirilməsi alətləri, məsələn unittest və ya pytest, çox uyğundur. Testlər yaza bilərsiniz ki, scriptinizin səhifələri düzgün açdığını, düymələrə klik etdiyini və məlumatları topladığını təsdiqləyəsiniz.

unittest istifadə edərək minimal test nümunəsini nəzərdən keçirək:

Python

import unittest
from selenium import webdriver

class TestBrowserAutomation(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()

    def test_open_page(self):
        self.driver.get("https://example.com")
        self.assertEqual("Example Domain", self.driver.title)

    def tearDown(self):
        self.driver.quit()

unittest.main()

Bu test, scriptimizin https://example.com səhifəsini açdığını və səhifənin başlığının gözləniləndən uyğun olduğunu yoxlayır. Bu, sadə, amma güclü bir üsuldur ki, skriptinizin əsas hissələrinin düzgün işlədiyini təsdiqləsin.

Debug və optimizasiya

Bəzən, testlər yazdıqdan sonra belə, scriptiniz inadkar bir uşaq kimi davranır, düzgün işləməkdən imtina edir. Bu zaman debug yardımınıza gəlir. print() istifadə edərək aralıq dəyərləri çap edin ki, dəqiq nəyin səhv olduğunu izah edə biləsiniz. Əlbəttə ki, koda əyləncəli şərhlər əlavə etmək olar, amma əsas məqsədi unutmayın: vəziyyəti anlamaq.

Məsələn, səhifədə some_element tapılmayanda problem yaşayabilirsiniz:

Python

try:
    some_element = driver.find_element_by_id('missing-id')
except Exception as e:
    print(f"Whoops! Nəsə səhv getdi: {e}")

Bundan əlavə, scriptinizin performansını diqqətlə izləyin. Bəzən, işləməni optimallaşdırmaq üçün sorğu tezliyini azaltmaq, ya da element axtarış məntiqini optimallaşdırmaq kimi müxtəlif strategiyalardan istifadə edə bilərsiniz.

Gələcəkdə xətaların və nasazlıqların qarşısını almaq

Optimizasiya və debugdan sonra scriptiniz İsveçrə saatı kimi dəqiq işləməlidir, amma həmişə yeni problemlərin yaranması riski var. logging kimi log sistemlərindən istifadə edərək scriptinizdə nə baş verdiyini qeyd edə bilərsiniz. Bu, nəyin və niyə səhv getdiyini görə bilmənizə imkan verəcək.

Python

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

logger.info("Scriptin işə başlaması")

# buraya əlavə hərəkətlərin logunu yazın...

logger.info("Scriptin tamamlanması")

Unutmayın ki, xüsusilə sabit olmayan məlumatlar və ya səhifələrlə işləyirsinizsə, gözlənilməz hadisələr üçün həmişə bir ehtiyat planı olmalıdır. Scriptin ən kiçik nasazlıq zamanı çöküməməsi üçün retry sistemi və ya timeout-ların tətbiqini nəzərdən keçirin.

1
Опрос
Formalarla işləmək,  36 уровень,  4 лекция
недоступен
Formalarla işləmək
Formalarla işləmək
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION