2016-08-13 19 views
1

我正在學習JMeter。在我的任務中,我需要加載測試URL,但測試URL實際上會重定向到不同的URL。當我嘗試檢查HTML格式的'View Result Tree'時,我沒有看到任何加載的內容,但'Sampler Result'爲200 OK。JMeter中的網站URL正在重定向,並且未加載測試URL

我獲得以下響應數據

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
</head> 
<script type="text/javascript"> 

var externalURL = "cat04-partner-external.napgsys.com".toLowerCase(); 
internalUrl = "cat04-partner.napgsys.com".toLowerCase(); 


$(document).ready(function() { 
if(window.location.href.indexOf(externalURL) > -1) { 
    window.location.href = window.location.href +"sso/login/#/login2"; 
} 
else{ 
    window.location.href = window.location.href +"sso/login/#/login"; 
} 
}); 
</script> 
<!--<META http-equiv="refresh" content="0;URL=/sso">--> 
</html> 

我試着「自動重定向」和「執行重定向」,但沒有什麼幫助。 如何確保它重定向到正確的URL,並且我可以在HTML中驗證是否加載了正確的測試URL。

回答

3

您嘗試的選項('自動重定向'和'遵循重定向')適用於在服務器端重定向的應用程序,但應用程序使用JavaScript代碼在客戶端重定向,而JMeter的HTTP採樣器在HTTP級別上運行和不運行any JavaScript code

不JMeter的過程動態頁面(例如Javascript和小程序)?

編號JMeter不處理嵌入在HTML頁面中的Javascript或小程序。

JMeter可以下載相關資源(如果設置了正確的選項,一些嵌入式資源會自動下載),但它不處理HTML並執行任何Javascript函數。

所以,你有3種選擇:

  • 選項1:假裝重定向發生

    • 驗證返回的響應具有重定向代碼(例如使用正則表達式後處理器)
    • 將下一個請求發送到重定向鏈接,就好像重定向發生一樣。

    這種方法的這一優點是,它很容易實現,對於性能測試完全夠用,並且允許您控制有多少用戶/迭代去各個重定向鏈接(例如,你可以添加「隨機」控制器讓用戶隨機去loginlogin2或吞吐量控制器重定向一定比例的用戶到login,其餘的到login2)。

    有些人可以感覺到的缺點是,如果你想也測試你的JS代碼,你不會。但是JMeter通常不適用於客戶端測試,因此這種方法並不是真正的缺點,但是它是使用JMeter進行功能測試的一個缺點。

    這裏有這樣的計劃的一個例子: enter image description here

    第一個請求,我們正在檢查響應頁面包含登錄重定向(這是檢查的一種方式,當然還有很多其他方式)。如果確實如此,則該請求被假定爲成功。

    然後隨機控制器確保每次我們選擇loginlogin2。隨機。當然,而不是隨機控制器,您可以根據需要使用任何其他控制器。

  • 選項2:使用硒的webdriver採樣

    基本上你將創建selenium tests, and run them in JMeter

    網絡驅動器採樣自動在瀏覽器(客戶端)的執行和性能指標的集合。到目前爲止,性能測試的很大一部分都在服務器端。然而,隨着技術的進步,HTML5,JS和CSS的改進,越來越多的邏輯和行爲被推到了客戶端。這增加了網站/ web應用程序的整體感知性能,但是此指標在JMeter中不可用。增加整個瀏覽器執行時間的東西可能包括:

    • 客戶端Javascript執行 - 例如, AJAX,JS模板
    • CSS轉換 - 例如, 3D矩陣變換,動畫
    • 第三方插件 - 例如。 Facebook like,雙擊廣告,網站分析等

    上面列出了優勢。缺點是Selenium採樣器不像HTTP採樣器那樣具有可擴展性,並且不能像HTTP採樣器那樣高效。與任何基於UI的測試相比,他們還需要更多的維護。

  • 方案3:結合這兩種方法

    在運行HTTP採樣多數線程,並與硒採樣數測量的最終用戶體驗。這提供了最佳的覆蓋範圍,但是當然需要在創建和維護它們時進行更大的投資。

+0

感謝您的詳細回覆。我更傾向於使用第一個選項。你能告訴我更多這方面的信息嗎?我該如何執行。我將得到響應代碼,然後如何使用Regex後處理器以及如何創建另一個請求。 – Irf

+0

@Irf:我添加了一個示例 –

+0

我試過了但不適合我。您可以使用我的測試網址https://cat04-partner.napgsys.com/sso/login/#/login進行檢查結果顯示爲綠色,但失敗並顯示斷言,如果我檢查HTML(下載資源)數據,它是空白的。正文響應數據顯示

移動對象

可能找到該文檔here Irf