LR使用web_add_cookie函數進行cookie模擬

1    爲何要使用cookie模擬
  從平常項目測試過程當中的問題提及。
好比要進行論壇中的文件下載功能的測試。咱們都知道只有登陸用戶才能進行下載操做,這樣咱們的測試過程可能就變成了先登陸系統,而後再進行下載操做。在使用loadrunner設計腳本時就要先在初始化部分寫登陸腳本,而後再action中寫下載操做,當單個用戶運行時咱們可能看不到什麼問題。當用戶併發量較多時,問題立刻暴露出來了。大部分用戶可能很長時間也沒有下載成功,大量的初始化登陸操做已經給系統形成了很大的壓力,而在平常訪問中,這種大量短期登陸的壓力是不容易出現的。這樣的測試結果可能沒法達到咱們的測試目標。
  的確,不能處理較大的登陸吞吐可能已是系統的瓶頸了,咱們能夠經過這種全流程的測試方式發現登陸的問題。可是後續的測試咱們可能就沒法進行下去了。當項目組解決了登陸的吞吐問題時,可能項目工期已經十分緊張了,再進行重要的下載功能測試可能已經太晚了。
這種狀況在測試過程當中常常會出現,咱們要如何繞過登陸儘早的進行後續的下載操做呢?若是網站使用了cookie的機制,則咱們能夠嘗試使用下面的方法。php

2    怎麼使用loadrunner模擬
Loadrunner的web函數中提供了幾個關於cookie的函數。
web_remove_cookie()
web_add_cookie()
web_cleanup_cookies();
web_reg_add_cookie();
這裏咱們爲了模擬cookie繞過登陸使用web_add_cookie();
首先獲取網站留在客戶端上的cookie都存儲了什麼。一般主要內容包括名字,值,過時時間,做用域和路徑,分爲會話cookie和文件cookie。會話cookie存儲在內存裏,關閉瀏覽器後就沒有了,這種很難模擬。文件cookie是將cookie信息寫到硬盤上,關閉瀏覽器再次打開後仍能夠使用。咱們要模擬的就是這種存儲在硬盤文件裏的cookie。咱們觀察cookie文件的內容,若是使用ie的話,在「C:\Documents and Settings\用戶名\Local Settings\Temporary Internet Files」中的用戶名@域名的文件裏,cookie存儲都是加密的,因此咱們直接看並看不出什麼特別的東西,也搞不清楚具體是什麼。這時咱們藉助IE webdeveloper 工具獲取cookie值以下所示:
cdb_cookietime=2592000;cdb_smile=1D1; cdb_sid=71WKOd; cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMsa9s; cdb_visitedfid=20; cdb_onlineusernum=28
得到了cookie信息後,咱們進行編輯loadrunner腳本。將cookie每一個分號分行,使用UltraEdit進行列模式操做,在每句後面加上域名。(域名在webdeveloper的Attributes下也能夠找到domain對應值),修改完成後以下。
web_add_cookie("cdb_cookietime=2592000;domain=172.16.1.3");
web_add_cookie("cdb_smile=1D1;domain=172.16.1.3");
web_add_cookie("cdb_sid=71WKOd;domain=172.16.1.3");
web_add_cookie("cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMsa9s;domain=172.16.1.3");
web_add_cookie("cdb_visitedfid=20;domain=172.16.1.3");
web_add_cookie("cdb_onlineusernum=28;domain=172.16.1.3");html

把這些值放在要訪問的url的web函數以前,你就能夠繞過登陸進行後續操做了。
如:
Action()
{web

web_add_cookie("cdb_cookietime=2592000;DOMAIN=172.16.1.3");
web_add_cookie("cdb_smile=1D1;DOMAIN=172.16.1.3");
web_add_cookie("cdb_oldtopics=D280D39523D39418D;DOMAIN=172.16.1.3");
web_add_cookie("cdb_sid=eSuWgw;DOMAIN=172.16.1.3");
web_add_cookie("cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMsa9s;DOMAIN=172.16.1.3");
web_add_cookie("cdb_visitedfid=20;DOMAIN=172.16.1.3");瀏覽器

        web_url("cookies",
        "URL=http://172.16.1.3:8080/bbs/index.php",
        "referer=http://172.16.1.3/newiweb/index/dealIndex.do?action=Index",
        "Mode=HTML",
        "RecContentType=text/html",
        LAST
        );cookie

        return 0;
}併發

最後註明一下:loadrunner的web錄製功能是自動的增長cookie的,只要在cookie不過時的狀況下,咱們不須要手工的增長cookie,當出現錄製不上或錄製的值發生變化時能夠手工進行添加。
在loadrunner場景設計使用其餘負載機器時,一樣能夠使用你本機的這個cookie值進行,不會由於客戶端機器發生變化而產生影響。dom

 

本文轉自:http://www.cnblogs.com/Lemon_s/articles/1759696.html函數

相關文章
相關標籤/搜索