欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

jmeter學(xué)習(xí)指南之管理Cookies

今日文章主要內(nèi)容介紹

目前累計服務(wù)客戶上1000家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗。以網(wǎng)站設(shè)計水平和技術(shù)實力,樹立企業(yè)形象,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁設(shè)計、網(wǎng)絡(luò)營銷、VI設(shè)計、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。成都創(chuàng)新互聯(lián)公司始終以務(wù)實、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設(shè)計的研究、對客戶形象的視覺傳遞、對應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

一、使用Jmeter cookie的業(yè)務(wù)背景

二、解讀Jmeter官方文檔中的cookie管理器

三、線程組內(nèi)部傳遞cookies

四、跨線程組傳遞cookies


jmeter視頻:https://edu.51cto.com/course/14305.html

1使用Jmeter cookie的業(yè)務(wù)背景

一、業(yè)務(wù)背景:

我們在工作中經(jīng)常會遇到如下壓測場景:

登錄后對查詢、充值、購買...等業(yè)務(wù)進(jìn)行壓測;

這種場景很熟悉吧?很多業(yè)務(wù)操作是要依賴登錄的,但是一個用戶在每次進(jìn)行登錄時通常會生成cookie,而且在接下來的操作中都必須攜帶上它的cookie,服務(wù)器對后續(xù)的每次請求都會進(jìn)行校驗。

首先想到的是從登錄響應(yīng)中用正則表達(dá)式提取出cookies,然后在其它操作中調(diào)用不就行了嗎?

不行!

因為cookies并不是在登錄的響應(yīng)結(jié)果中生成的,而是在response header中攜帶的,所以不能用正則表達(dá)式提取。

那用什么來獲取呢?我們先來看一下jmeter官方文檔中怎么說的吧:


2解讀Jmeter官方文檔

Jmeter官方文檔是這樣寫的:

jmeter學(xué)習(xí)指南之管理Cookies

下面我簡單翻譯一下:

cookie管理器元件有兩大功能:

  • 首先,它能夠像web瀏覽器一樣存儲和發(fā)送cookies。

  • 如果你有一個HTTP請求和響應(yīng)包含一個cookie,cookie管理器會自動存儲該cookie,并能夠在該特定網(wǎng)站上接下來的所有請求中使用該 cookie。

  • JMeter的每個線程都有自己的“cookie存儲區(qū)”。所以,如果你正在測試一個使用cookie來存儲會話信息的網(wǎng)站,那么每個JMeter線程都有自己的會話。請注意,這種cookies不會在cookie管理器中展示出來,但可以在“查看結(jié)果樹”中看到它們。

  • JMeter會檢查收到的cookies是否對URL有效。這意味著跨域的cookie不能被存儲。如果你有竊聽行為,或者想要存儲跨域cookies,需要在jmeter.poperties中設(shè)置:“ CookieManager.check.cookies = false”。

  • 接收到的Cookies可以存儲為JMeter的線程變量。如果要把 cookies保存為變量,需要設(shè)置:

 “ CookieManager.save.cookies =true”。

  • 此外,默認(rèn)情況下jmeter中的cookies在存儲時名字前綴為“ COOKIE_ ”,這是為了避免因局部變量重名引起的異常情況。如果不想用這個前綴,需要定義屬性“CookieManager.name.prefix = ”(一個或多個空格)。如果使用了前綴,則一個名稱為TEST的cookie的值可以通過$ {COOKIE_TEST}獲取 。

  • 其次,你可以手動添加一個cookie到cookie管理器。但是,如果你這樣做,這個cookie將被所有JMeter的線程共享。注意,這樣的cookies創(chuàng)建后生命周期會很長。

  • 空值的cookies默認(rèn)被忽略掉。這可以通過設(shè)置JMeter的屬性進(jìn)行更改:CookieManager.delete_null_cookies =false。請注意,這也適用手工定義的cookies-任何此類cookies在更新后會從cookie manager中移除。

  • 還需要注意的是cookie名稱必須是唯一的-如果一個cookie的名稱與已有cookie同名,它將取代原有的cookie。

  • 如果在一個sampler作用域中有多個cookie manager,目前沒有辦法去指定使用某一個。并且,一個cookie manager中保存的cookie不能被其它的cookie manager使用,所以要慎用多個cookie manger。

有沒有覺得很難理解呢?

 沒關(guān)系,下面我們來總結(jié)一下:

Cookie Manager主要有兩大作用:

1、自動管理cookie:

  • 就像瀏覽器一樣能夠自動存儲和發(fā)送Cookie,如果一個http請求的響應(yīng)中包含Cookie,那么Cookie Manager就會自動地保存這些Cookie并在所有后來發(fā)送到該站點的請求中使用這些Cookie的值。每個線程都自己存儲cookie的區(qū)域。

  • 在cookie manager中看不到自動保存的cookie,我們可以在察看結(jié)果樹View Results Tree中看到被發(fā)送請求的Cookie Data。

  • 要把Cookies保存到線程變量中,要定義屬性"CookieManager.save.cookies=true"。線程變量名為COOKIE_ + Cookie名。屬性CookieManager.name.prefix= 可以用來修改默認(rèn)的COOKIE_的值。


2、手動管理Cookie:

  • 手動添加Cookie到Cookie Manager,這些Cookie的值會被所有線程共享。 

  • 比較簡單的做法是使用firefox的firebug導(dǎo)出cookies ,然后再導(dǎo)入到j(luò)meter的cookie manager中,當(dāng)然,這里也可以通過Add按鈕手動添加cookies。

jmeter學(xué)習(xí)指南之管理Cookies

jmeter學(xué)習(xí)指南之管理Cookies

Tips:

1、需要注意的是域、路徑必須填上,尤其是域;因為Jmeter現(xiàn)版本默認(rèn)不支持跨域的請求,不填的話設(shè)置的Cookie不會被帶上。

2、在需要取Cookie的線程里添加一個Http Cookie管理器,可以默認(rèn)為空,但是一定要添加,否則是不會存儲cookie變量的

3、這樣在同一個線程(組)內(nèi)其它操作組件都是可以直接通過${COOKIE_xxxx}來獲取

4、目前jmeter在一個sampler中不能同時有多個cookie manager

5、想要跨域存儲cookies,需要設(shè)置 CookieManager.check.cookies =false


3線程組內(nèi)部傳遞cookies

了解了cookie manager,現(xiàn)在我們回到業(yè)務(wù)場景中來:

如何實現(xiàn)對查詢接口(必須先登錄,攜帶cookie)進(jìn)行壓測?

jmeter學(xué)習(xí)指南之管理Cookies

這是一個很簡單的場景,但是如果直接按照上面這樣的方式去執(zhí)行,你會發(fā)現(xiàn)結(jié)果會報錯,因為jmeter默認(rèn)不會保存cookies,需要加上cookie manager,如下所示:

jmeter學(xué)習(xí)指南之管理Cookies

如上,加一個空的cookie manager即可以自動保存cookie,并且能夠在同一個線程組之間傳遞cookie,此時再次運行腳本就通過了。

但是我們并不需要同時對登錄操作進(jìn)行壓測,也就是說,我只需要用一個用戶登錄一次,然后循環(huán)進(jìn)行其它業(yè)務(wù)操作,這時候需要把登錄和查詢操作分別放在兩個線程組中,但是jmeter官方文檔中說cookies不能跨域傳遞的,也就是不能在線程組中共享,那要怎么實現(xiàn)呢?


 4 跨線程組傳遞cookies

官方文檔中說cookie變量是線程內(nèi)有效,線程外無效,但是實際測試同一個線程組的其它線程是可以直接訪問的。

如果是跨線程組的情況,不能直接訪問,可以用其它的方式來進(jìn)行cookie變量的共享,試驗了幾種方式,下面這種方式最簡單:

通過JMeterUtils.setProperty和JMeterUtils.getPropDefault方法實現(xiàn)

1、在生成cookie的請求中添加beanshell postprocessor后置處理器,并添加如下腳本,把cookie保存在Jmeter屬性參數(shù)中:

import org.apache.jmeter.util.JMeterUtils; 
JMeterUtils.setProperty(“cookie_name”, “cookie_value”); 

其中cookie_name和cookie_value分別換成你對應(yīng)的cookie名稱(不帶COOKIE_前綴)和cookie值


2、在需要使用cookie的另一個線程組的請求中添加beanshell preprocessor前置處理器,并添加如下腳本,取出cookie的值,并存入線程變量中:
import org.apache.jmeter.util.JMeterUtils; 
String value = JMeterUtils.getPropDefault(“cookie_name”);

Vars.put(“cookie_name”,value);

這里的cookie_name和前面設(shè)置的名稱一樣。

然后在該線程組中就可以使用${cookie_name}來獲取cookie的值,也就是實現(xiàn)了跨線程組傳遞cookie。

新聞標(biāo)題:jmeter學(xué)習(xí)指南之管理Cookies
URL標(biāo)題:http://aaarwkj.com/article40/peijeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計公司、電子商務(wù)、App設(shè)計、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
在线观看免费国产k片| 午夜美女精品福利视频| 免费搜索国产男女视频| 亚洲三级伦理中文字幕| 欧美黄片免费在线视频| 亚洲欧美日韩激情另类| 久久久久久精品人妻网| 色桃子av一区二区三区| 中文字幕国产精品91| 熟妇高潮一区二区三区| 老湿机午夜十分钟视频| 国产男女免费完整视频| 免费国产黄片在线播放| 日本高清一区二区网站| 日本人妻系列中文字幕| 国产亚洲精品免费专线视频| 成人国产精品三上悠亚久久| 亚洲一区二区三区av电影| 丰满人妻毛片一区二区三区| 蜜桃视频在线中文字幕| 国内一级片内射视频播放| 999久久久久亚洲精品| 成人免费av在线网址| 欧美三级美国三级亚洲三级| 久久久久久97精品| 日韩av在线高清播放| 亚洲欧美综合另类久久| 亚洲国际天堂av在线| 日本一区两区三区不卡视频| 欧美日韩一区二区三区色| 国产一区 亚洲精品| 爱我久久视频网免费视频| 免费女性啪啪无遮挡网站| 97在线公开免费视频| 操老熟女一区二区三区| 国产在线麻豆在拍91精品| 色婷婷亚洲婷婷亚洲最大| 国产精品综合久久久久久| 精品一区二区三区在线观看国产| 麻豆成人久久精品二区三| 亚洲国产欧美精品综合在线|