【轉】Jmeter筆記:響應斷言詳解

來源:互聯網
上載者:User

標籤:

平時我們使用jmeter進行 效能測試時,經常會用到斷言。jmeter提供了很多種斷言,本來想全都寫一下,但發現每一個斷言裡面的東西都很多,所以就先寫一下我們經常使用的響應斷言。  第一次在cnblog上寫東西,不會排版,希望達人指點。    響應斷言 :對伺服器的響應進行斷言校正   (1)應用範圍: main sample and sub sample, main sample only , sub-sample only , jmeter variable  關於應用範圍,我們大多數勾選“main sample only” 就足夠了,因為我們一個請求,實質上只有一個請求。但是當我們發一個請求時,可以觸發多個伺服器請求,類似於ajax那種,那麼就有main sample  和 sub-sample之分了。  此外,對於有重新導向的請求,並且勾選了“跟隨重新導向”, 那麼這兩個請求都是 sub-sample,重新導向後的請求(第二個請求)就是main-sample  關於main sample and sub sample,有興趣的可以看看這個文章  http://stackoverflow.com/questions/28214936/jmeter-in-which-scenario-i-can-use-main-sample-or-sub-sample-or-both-for-te   (2)響應欄位: 響應文本,Document(Text),url樣本,響應代碼,響應資訊,Response Header,ignore status  響應文本: 伺服器響應文本,一般普通http響應,都勾選這個。  Document(Text):一切Apache Tika 支援伺服器響應,包括文本響應,還支援 PDF, Office, Audio, Video formats。jmeter會用Apache Tika 去解析伺服器響應內容,會很耗記憶體,而且也很容易解析失敗。所以一般普通http請求,不要選擇這個。  url樣本:是對sample的url進行斷言。如果請求沒有重新導向(302),那麼就是這個就是請求url。 如果有重新導向(且跟隨重新導向),那麼url就包含請求url 和 重新導向url  響應代碼:http響應代碼,如101,200,302,404,501等。但當我們要驗證404,501等http響應代碼時,需要勾選“ ignore status”。因為當http 響應代碼為400,500時,jmeter預設這個請求時失敗的。  響應資訊:http響應代碼對應的響應資訊,例如:OK, Found  HTTP/1.1 200 Ok  HTTP/1.1 302 Found  Response Header : 回應標頭資訊,例如  Server: Tengine  Date: Thu, 12 Mar 2015 09:43:52 GMT  Content-Type: text/html  Content-Length: 260  Connection: close  Location: http://www.baidu.com/404.html   (3)模式比對規則  包括:返回結果包括你指定的內容,支援正則匹配  例如:  響應欄位為: 響應文本  模式比對規則:匹配  斷言為:1、invalid    2、[a-z]+  當傳回值為:{"msg":"channel invalid."} , 這兩個斷言都是ok的,返回true  匹配:  (1) 相當於 equals 。當傳回值固定時,可以傳回值做斷言,效果和equals相同  (2) 正則匹配 。 用Regex匹配返回結果,但必須全部匹配。 即Regex必須能匹配整個傳回值,而不是傳回值的一部分。  例如:  響應欄位為: 響應文本  模式比對規則:匹配  斷言為:1、{"msg":"channel invalid."}   2、\{"msg":"[a-z]+ invalid\."\}  , 3、[a-z]+  當傳回值為:{"msg":"channel invalid."}   ,斷言1 2 是ok的, 斷言3是false  當傳回值為:{"msg":"channel invalid."} , 斷言1 3是false, 斷言2才是ok的。  原因是,斷言1 只能用於equals,而斷言3 只匹配了傳回值部分,而不是全部匹配。  Equals : 返回結果與你指定斷言完全一致  SubString:與 “包括”差不多,都是指返回結果包括你指定的內容,但是subString不支援正則字串  例如:  響應欄位為: 響應文本  模式比對規則:匹配  斷言為:1、invalid    2、[a-z]+  當傳回值為:{"msg":"channel invalid."} , 斷言1返回true, 但斷言2返回false  否:就相當於取反。 如果上面斷言結果為true,勾選“否”後,最終斷言結果為false。如果上面斷言結果為false,勾選“否”後,則最終斷言結果為 true。

【轉】Jmeter筆記:響應斷言詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.