2012-05-25 16 views
17

Web uygulamalarımı test etmek için Selenium2/WebDriver kullanıyorum. Tüm testler Java'da yazılır ve Maven ile çalışır.Webdriver'de sayfa tarafından yapılan tüm istekler nasıl alınır? Browsermob'a alternatif var mı?

Webdriver ile bir sayfa açarken sayfa tarafından yapılan tüm istekleri (resimler, js ve css dosyaları, vb.) Almak istiyorum. Ben analitik kod bağlı

(bu uygun istekleri gönderiyor olmadığını kontrol) çalışıp çalışmadığını kontrol aramalar

  • 404 (ve diğer hatalar) denetleme iki nedenden

    • için esas olarak bu verileri kullanmak Ben Netexport veya Browsermob proxy ile Firebug kullanın. Her iki durumda da kolayca bir HAR (Html ​​Archive) dosyası alabilir, ayrıştırıp istediğim veriyi çıkarabilirim.

      İşte sorun: Bu çözümlerden hiçbirinden memnun değilim. Bir sayfa çok uzun yüklenen video içeriyorsa, özellikle HAR dosyası alma ile ilgili problemlerim var. Daha kararlı bir şey arıyorum.

      Yani, sorular şunlardır:

      Browsermob için herhangi bir alternatif var mı? FiddlerCore'u biliyorum ama bir .NET kütüphanesi ve testlerim Java'da yazılıyor. Ayrıca Ajax DynaTrace hakkında da bir şeyler duydum ve bunu Selenium ile entegre etmenin bir yolu olduğunu biliyorum, ancak bulduğum belgeler Selenium-RC için WebDriver değil.

      DynaTrace'i WebDriver ile entegre etmenin ya da FiddlerCore'u Java ile kullanmanın bir yolu var mı?

      Bahsettiğim hedeflere ulaşmanın başka bir yolu var mı? Kodumdan kolayca kontrol edebileceğim bir vekil arıyorum. Verileri HAR'a vermek büyük bir artı olurdu.

  • +0

    Benim bu cevabı çok yararlı buldum C# webservice oluşturmak kullanmak ve java – Indraneel

    cevap

    5

    42+ ver firefox ile alternatif vardır,

    File harExportApi = new File(System.getProperty("user.dir") 
            + "/src/main/resources/firebug/harexporttrigger-0.5.0-beta.7.xpi"); 
    
    netExportProfile.addExtension(harExportApi); 
    netExportProfile.setPreference("extensions.netmonitor.har.enableAutomation", true); 
        netExportProfile.setPreference("extensions.netmonitor.har.contentAPIToken", "test"); 
        netExportProfile.setPreference("extensions.netmonitor.har.autoConnect", true); 
    
    cap.setCapability(FirefoxDriver.PROFILE, netExportProfile); 
    
    Firefox HarExport denilen eklenti var

    ve aşağıdaki scr çalışıyor ut bize tüm istek yanıtları

    verecek
    String getHarLogScript = "var options = {\n" + 
           " token: \"test\",\n" + 
           " getData: true,\n" + 
           " title: \"my custom title\",\n" + 
           " jsonp: false,\n" + 
           " };\n" + 
           "\n" + 
           " HAR.triggerExport(options).then(result => {\n" + 
           " var har = JSON.parse(result.data);\n" + 
           "\n" + 
           " // Use performance.timing to provide onContentLoad\n" + 
           " + 
           "  + 
           " var t = performance.timing;\n" + 
           " var pageTimings = har.log.pages[0].pageTimings;\n" + 
           " pageTimings.onContentLoad = t.domContentLoadedEventStart - t.navigationStart;\n" + 
           " pageTimings.onLoad = t.loadEventStart - t.navigationStart;\n" + 
           "\n" + 
           " window.HarEntries=har.log.entries\n" + 
           "\n" + 
           " console.log(\"HAR log (\" + result.data.length + \") \", har.log);\n" + 
           " }, err => {\n" + 
           " console.error(err);\n" + 
           " });" 
    
    LOG.info("Loading HAR log entries object into browser HarEntries object"); 
    SeleniumUtils.executeScript(driver, getHarLogScript); 
    
    harEntries = ((List<Object>) SeleniumUtils.executeScript(driver, "return window.HarEntries")); 
    
    +0

    Denedim Yukarıdaki kod. diyor ~ org.openqa.selenium.JavascriptException: ReferenceError: HAR tanımlı değil ~ Bu bağımlılığı nasıl ekleyebilirim? Selenium3.0.0, FF 51, Mac OS. – user2649233

    İlgili konular