Jmeter之處理session、cookie以及如何做關聯


session和cookie的概念

關於session和cookie應該有很多文章都進行了一一說明,這里就不再重復贅述,我覺得有一個博客寫的挺不錯的!可以去參照他寫的博客,寫的非常的詳細,比喻也非常的形象,看了之后秒懂!

http://blog.csdn.net/axin66ok/article/details/6175522

按照我的理解就是:

cookie保持你訪問的權限信息。

session限制你訪問權限信息的有效時間,一旦過期就不能在訪問了,比如說我們經常遇到了,很長一段時間網頁沒有去操作,就會自動退出登陸。你要進行操作就必須要重新登陸!

 

關聯的概念

既然說到了上面的session和cookie,其實這個session和cookie是每次都會變化的!所以在session和cookie失效后,你需要重新獲取這些值,如果用到Jmeter來做這些操作的話,你不能每次手動去修改,那么就需要用關聯,做好關聯后,讓Jmeter自動去獲取這些變化的值。

所以在這里,就要跟大家說說,什么是關聯。

一句話解釋:在每次請求中都會變化的值,且每次都是從服務器發送過來的,那么就需要去做些特別的處理來獲取這個動態值!這個就叫做關聯!舉個例子:

1.你往數據庫插入數據時,有一個id,這個就是動態值,每次都會變得!

2.你提交bug時,bug id 是動態值,有序遞增的!

3.比如上面說到的cookie和session

你如果用Jmeter來代替你手工做這些事情,就需要用到關聯,讓Jmeter自動跟服務器請求並傳給下一步。

 

實例說明

1.用Badboy錄制腳本后,導出為jmeter文件,並在Jmeter中打開

2.有時在http請求頁面中“路徑”會看到網頁鏈接引用:http://www.xxx.com/xxx_app;jsessionid=${jsessionid}。或者網頁鏈接后顯示:?jsessionid   或者顯示一串數字,如下圖所示:

 

 

解決:
1、因為Session默認是需要Cookie支持的,但有些客戶瀏覽器是關閉Cookie的

 

【而jsessionid是存儲在Cookie中的,如果禁用Cookie的話,服務器得不到jsessionid,這樣也就沒法根據jsessionid獲得對應的session,獲得不了session就得不到session中存儲的數據了。】

 

這個時候就需要在URL中指定服務器上的session標識,也就是類似“jsessionid=5F4771183629C9834F8382E23BE13C4C” 這種格式。

 

 

2、此jsessionid是跟隨上一網頁獲取的,是隨機的故,我們需要通過上一網頁的響應數據,引用該jsessionid

 

步驟:

1)、查找到上一頁面中響應數據中的jessionid的value

 

 

2)、在該頁面下添加子節點:右鍵添加正則表達式,我們要獲取的是jsessionid,正則如下:

正則表達式一定要正確,不能貪婪匹配,必須精確匹配!

3)這樣,正則表達式就獲取到了每次請求都會變化的jsessionid

 

然后再請求,就會發現jsessionid會自動變化,由Jmeter來獲取!

 

參考文檔:http://blog.csdn.net/ydppqh/article/details/46859997

如果你想進一步了解關聯方面的知識,我覺得小坦克的博客寫的挺不錯的,還有實際的練習給你們!

推薦鏈接:http://www.cnblogs.com/TankXiao/p/4045439.html

關於cookie的保持,還有另外一個鏈接可以提供給大家:http://blog.csdn.net/ydppqh/article/details/46861455

如果有更多問題想要討論,可以加入我們的群:333782754

或者直接在貼吧發問:http://tieba.baidu.com/f?kw=%E6%9F%A0%E6%AA%AC%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95&ie=utf-8&tp=0

 

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM