您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
如何使用Jmeter模擬爬蟲測試?
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2017/6/20 9:34:00 ] 推薦標簽:性能測試工具 Jmeter

  在構建Web應用程序負載壓力測試時,您可能需要模擬一組用戶“抓取”網(wǎng)站并隨機單擊鏈接。 特別是對于動態(tài)網(wǎng)站,如博客,新聞門戶,社交網(wǎng)絡等,新內(nèi)容被頻繁添加或甚至實時添加。 這種形式的測試能確保用戶將獲得流暢的瀏覽體驗,并檢查斷開的鏈接或任何意外錯誤。
  本文介紹了模擬網(wǎng)站“爬網(wǎng)”的3種常用的方法:點擊網(wǎng)頁中找到的所有鏈接、使用HTML鏈接解析器和高級spidering測試計劃。
  1.單擊網(wǎng)頁中找到的所有鏈接
  使用正則表達式提取得到的鏈接的過程在 JMeter的使用正則表達式 一文被描述。算法如下:
  1a。 從響應中提取的所有鏈接 正則表達式提取 并將它們存儲到JMeter的變量。 相關的正則表達式將是:
  <a [^>] * href =“([^”] *)“
  不要忘記設置 匹配編號No. 為 -1 提取所有的鏈接。 如果將其留空,則只返回第一個匹配項。

  1b。 使用 的ForEach控制器 迭代提取的鏈接。
  1c。 使用HTTP請求取樣器點擊選擇URL,在   Output Variable  輸出變量名中  。
  演示

  優(yōu)點
  配置簡單。
  穩(wěn)定性。
  故障轉(zhuǎn)移和恢復能力。
  缺點
  正則表達式很難開發(fā),對標記變化敏感,因此很脆弱。
  實際上不是“爬蟲”或“蜘蛛”,只是對鏈接進行請求。
  2.使用HTML鏈接解析器
  JMeter的提供了一個特殊的測試元件,  HTML解析器的鏈接 。 此元素設計用于提取HTML鏈接和表單,并使用提取的值替換匹配的HTTP請求采樣器相關字段。 因此,HTML鏈接解析器可用于模擬使用少配置抓取網(wǎng)站。 方法如下:
  2a。 把HTML解析器鏈接放入  Logic Controller   邏輯控制器  下
  2b。 把HTTP請求取樣器放入邏輯控制器下,配置 服務器名稱或IP地址 和 路徑 字段提取值限制在一個“有趣”的范圍。 您可能希望專注于屬于被測試應用程序的域,并且不希望它在Internet上爬網(wǎng),因為如果您的應用程序有任何鏈接到外部資源; JMeter會去外面抓爬。 Perl5風格的正則表達式可以用來設置提取的鏈接范圍。

  演示

  優(yōu)點
  易于配置和使用。
  行為像一個“蜘蛛”。
  缺點
  零誤差公差; 任何從響應中提取鏈接的失敗將導致后續(xù)請求的級聯(lián)失敗。
  3.高級“Spidering”測試計劃
  假設上述方法的局限性,您可能想要一個解決方案,它不會因為錯誤而崩潰,并且將爬行整個被測試的應用程序。 下面你可以找到一個參考測試計劃大綱,可以用作你的“蜘蛛”的骨架:
  3a。 打開主頁面。
  從中提取所有鏈接。
  點擊隨機鏈接。
  如果返回值有“good”的 MIME類型 (如果圖片或PDF文件或任何鏈接提取鏈路結果將被跳過); 從響應中提取所有鏈接

  所用元素的說明:
  While Controller   是用來設置請求的大額,所以測試不會永遠持續(xù)下去。 如果您透過排程scheduling限制,可以略過。
  Once Only Controller   用于執(zhí)行調(diào)用的主網(wǎng)頁只有一次。
  XPath Extractor   用于過濾掉不屬于該應用程序下測試不感興趣例如 mailto,   callto  ,等等。一個示例XPath查詢將看起來像網(wǎng)址等各個環(huán)節(jié):
  //a[starts-with(@href,'/') or starts-with(@href,'.') or contains(@href,'${SITE}') and not(contains(@href,'mailto'))]/@href
  使用XPath不是必須的,在某些情況下,它可能是非常內(nèi)存密集型。 您可能需要考慮從響應中提取鏈接的其他方法。 它用于演示目的,因為通常XPath查詢比CSS / JQuery,特別是正則表達式更加人性化。
  __javaScript() function   實際上做了三件事:
  從XPath提取器提取的選擇一個隨機鏈接。
  從URL的開始刪除 ../。
  將HTTP請求標題設置為當前隨機URL。
  Regular Expression Extractor   用于從響應中提取Content-Type頭
  If Controller   使得它使下一輪從響應中提取鏈接,如果響應已匹配的內(nèi)容類型才啟動。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd