• 12-10-2020, 15:11:40
    #1
    Merhaba arkadaşlar, bir siteye çoklu kullanıcı sokmaya çalışıyorum Selenium/Python kullanarak. Bunu threading ile yapıyorum ve tabiî bir şekilde 10-20 kullanıcıyı aynı anda sokmayı denediğimde CPU coşuyor. Bunu 100 kullanıcıda yapmam bu yönden mantıklı gelmiyor. Bunu gerçekleştirmek için daha uygun bir yöntem tavsiye edebilecek var mı acaba? Elimde olan userID ve Passler ile loop içinde dönerek her seferinde thread başlatıyorum. Bunu yaklaşık da olsa aynı anda giriş yapmalarını sağlayabilmek için yapıyorum.


    for user_email, user_passwoard in users.items(): 
                  threading.Thread(target=user_qsinav_normal, args=(user_email, user_passwoard, True)).start()
  • 12-10-2020, 15:18:24
    #2
    Her işlem için tarayıcı açılıyorsa normal, bu gibi işlemler de tarayıcının çok düşük bellek kullanıldığı düşünülüyor bu nedenle fazla yükleniliyor. Aynı anda 100 tarayıcı açtırmak mümkün olmayacaktır. Eş zamanlı olarak yapılması zor görünüyor.
  • 12-10-2020, 15:20:22
    #3
    headless kullanırsanız ort 80 - 120 arası ram kullanıyor. Bu da 20 30 tarayıcı eş zamanlı rahat çalıştırabileceğiniz anlamına geliyor.
  • 12-10-2020, 15:28:47
    #4
    weqale34 adlı üyeden alıntı: mesajı görüntüle
    Her işlem için tarayıcı açılıyorsa normal, bu gibi işlemler de tarayıcının çok düşük bellek kullanıldığı düşünülüyor bu nedenle fazla yükleniliyor. Aynı anda 100 tarayıcı açtırmak mümkün olmayacaktır. Eş zamanlı olarak yapılması zor görünüyor.
    Haklısınız. Bana da pek makûl gelmiyor ama yapmak istediğm bir sınav/quiz sitesine 100 tane kullanıcıyı sokup denemek gibi bir durum. Peki belirlediğim kullanıcıları 20'şer 20'şer alsam threadler bittiğinde? Aynı anda sokmuş olmayacağım ama en azından 1-2 dk farkla yapmış olacaklar sanıırm. Selenium Grid varmış bir de, ama o konuyu tam anlayamadım. Benim işime yarayıp yaramayacağı konusunda bir bilginiz var mı acaba?

    SpyBey adlı üyeden alıntı: mesajı görüntüle
    headless kullanırsanız ort 80 - 120 arası ram kullanıyor. Bu da 20 30 tarayıcı eş zamanlı rahat çalıştırabileceğiniz anlamına geliyor.
    Şu argümanı eklemem yeterli sanırım bunun için değil m?
    options.add_argument('headless')
  • 12-10-2020, 15:30:10
    #5
    teknodram adlı üyeden alıntı: mesajı görüntüle
    Haklısınız. Bana da pek makûl gelmiyor ama yapmak istediğm bir sınav/quiz sitesine 100 tane kullanıcıyı sokup denemek gibi bir durum. Peki belirlediğim kullanıcıları 20'şer 20'şer alsam threadler bittiğinde? Aynı anda sokmuş olmayacağım ama en azından 1-2 dk farkla yapmış olacaklar sanıırm. Selenium Grid varmış bir de, ama o konuyu tam anlayamadım. Benim işime yarayıp yaramayacağı konusunda bir bilginiz var mı acaba?


    Şu argümanı eklemem yeterli sanırım bunun için değil m?
    options.add_argument('headless')
    Evet hocam headless. Bir test edip geri dönüş yaparsanız sevinirim.
  • 12-10-2020, 15:32:19
    #6
    SpyBey adlı üyeden alıntı: mesajı görüntüle
    Evet hocam headless. Bir test edip geri dönüş yaparsanız sevinirim.
    Şu hatayı alıyorum. Kısaca yapmaya çalıştığımı belirtmem gerekirse tekrar: Kullanıcılar giriş yapıp bazı yerleri seçip sınava giriyorlar. Sınavdaki soruları seçtikten sonra sınav ekranını kapatıyorlar. Sanırım headless yaptığımda erişmek istediğim elementlere erişemiyorum. Tarayacılar görünür halde olmayınca elementler tıklanabilir olmuyor.

    selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
      (Session info: headless chrome=86.0.4240.75)