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

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

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

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

  演示

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

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

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