
正則表達(dá)式
概念
正則表達(dá)式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯。
特點(diǎn)
1. 靈活性、邏輯性和功能性非常強(qiáng);
2. 可以迅速地用極簡單的方式達(dá)到字符串的復(fù)雜控制。
3. 對于剛接觸的人來說,比較晦澀難懂。
由于正則表達(dá)式主要應(yīng)用對象是文本,因此它在各種文本編輯器場合都有應(yīng)用,小到著名編輯器EditPlus,大到Microsoft Word、Visual Studio等大型編輯器,都可以使用正則表達(dá)式來處理文本內(nèi)容。
正則表達(dá)式語法
正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等。
例如:
runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 號代表前面的字符必須至少出現(xiàn)一次(1次或多次)。
runoob,可以匹配 runob、runoob、runoooooob 等, 號代表字符可以不出現(xiàn),也可以出現(xiàn)一次或者多次(0次、或1次、或多次)。
colou?r 可以匹配 color 或者 colour,? 問號代表前面的字符最多只可以出現(xiàn)一次(0次、或1次)。
構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣。也就是用多種元字符與運(yùn)算符可以將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式。正則表達(dá)式的組件可以是單個(gè)的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。
正則表達(dá)式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式。模式描述在搜索文本時(shí)要匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。
常見字符
由于這些字符比較多,我就直接截圖了.正式內(nèi)容多以后用的時(shí)候再補(bǔ).
1.非打印字符

2.特殊字符

3.限定符


4.定位符


Jmeter 正則表達(dá)式提取器
正則表達(dá)式提取器是提取響應(yīng)報(bào)文某些字符.因此是在請求里面添加.由于是響應(yīng)里提取字段,又規(guī)內(nèi)在后置處理器中.
Jmeter里的正則表達(dá)式提取器的作用是提取響應(yīng)報(bào)文的某個(gè)字段存在變量中可供一個(gè)線程組下面的請求body data/paremeters引用變量名作為值.
配合debug sampler 進(jìn)行調(diào)試!
使用Jmeter開發(fā)腳本時(shí),難免需要調(diào)試,這時(shí)可以使用Jmeter的Debug Sampler

debug sampler 數(shù)據(jù)顯示在響應(yīng)數(shù)據(jù)中.

正式表達(dá)式提取器 界面解析

-
賬戶余額:(.*?)分"
括號可以看做定位,左邊字段是左邊界,右邊字段是右邊界。
image.png 我們截取含有需要判斷的部分 賬戶余額:6290分" 作為響應(yīng)報(bào)文中需要判斷的字段,把需要判斷的6290改為(.*?),就得到我們的正則表達(dá)式。
即:把需要提取的字符串前后都復(fù)制下來,保證其他部分是不變的,然后需要提取的字符串用(.*?)代替.
添加 正則表達(dá)式的基本操作
核心是在請求里面添加,正則表達(dá)式提取器放在請求里面的
因此 請求-----后置處理器----正則表達(dá)式提取器

舉個(gè)例子:做一個(gè)查詢流水---充值的流程 充值的請求里面引用查詢流水的正則里面的變量名.
1.前端操作水流接口和充值接口進(jìn)行抓包.fiddler打標(biāo)記導(dǎo)出jmx格式的文件,再導(dǎo)入到Jmeter里面.

2.對查詢流水添加后置處理器--正則表達(dá)式提取器


-
"accountName":"xiaoxiao1", -----------------把xiaoxiao1 換成(.*?)---"accountName":"(.*?)",?表示非貪婪```
image.png
3.充值里面請求accountName 的值 引用上面正則的變量 格式${變量名}

4.添加debug sampler 調(diào)試 觀察

5.跑一下

HTTP Cookie管理器
發(fā)送請求,經(jīng)常要校驗(yàn)cookies信息,使用的cookie管理器,會(huì)默認(rèn)把服務(wù)端返回的cookie數(shù)據(jù)記錄下來 。如果沒有cookie管理器,測試時(shí)要登錄之后的操作就無法進(jìn)行。

cookie和token
- cookie是tomcat自定義的.token是程序員寫代碼自定義的
cookie和session的區(qū)別
一、cookie:
在網(wǎng)站中,http請求是無狀態(tài)的。也就是說即使第一次和服務(wù)器連接后并且登錄成功后,第二次請求服務(wù)器依然不能知道當(dāng)前請求是哪個(gè)用戶。cookie的出現(xiàn)就是為了解決這個(gè)問題,第一次登錄后服務(wù)器返回一些數(shù)據(jù)(cookie)給瀏覽器,然后瀏覽器保存在本地,當(dāng)該用戶發(fā)送第二次請求的時(shí)候,就會(huì)自動(dòng)的把上次請求存儲(chǔ)的cookie數(shù)據(jù)自動(dòng)的攜帶給服務(wù)器,服務(wù)器通過瀏覽器攜帶的數(shù)據(jù)就能判斷當(dāng)前用戶是哪個(gè)了。cookie存儲(chǔ)的數(shù)據(jù)量有限,不同的瀏覽器有不同的存儲(chǔ)大小,但一般不超過4KB。因此使用cookie只能存儲(chǔ)一些小量的數(shù)據(jù).
二、session:
session和cookie的作用有點(diǎn)類似,都是為了存儲(chǔ)用戶相關(guān)的信息。不同的是,cookie是存儲(chǔ)在本地瀏覽器,而session存儲(chǔ)在服務(wù)器。存儲(chǔ)在服務(wù)器的數(shù)據(jù)會(huì)更加的安全,不容易被竊取。但存儲(chǔ)在服務(wù)器也有一定的弊端,就是會(huì)占用服務(wù)器的資源,但現(xiàn)在服務(wù)器已經(jīng)發(fā)展至今,一些session信息還是綽綽有余的。
三、cookie和session結(jié)合使用:
web開發(fā)發(fā)展至今,cookie和session的使用已經(jīng)出現(xiàn)了一些非常成熟的方案。在如今的市場或者企業(yè)里,一般有兩種存儲(chǔ)方式:
1、存儲(chǔ)在服務(wù)端:通過cookie存儲(chǔ)一個(gè)session_id,然后具體的數(shù)據(jù)則是保存在session中。如果用戶已經(jīng)登錄,則服務(wù)器會(huì)在cookie中保存一個(gè)session_id,下次再次請求的時(shí)候,會(huì)把該session_id攜帶上來,服務(wù)器根據(jù)session_id在session庫中獲取用戶的session數(shù)據(jù)。就能知道該用戶到底是誰,以及之前保存的一些狀態(tài)信息。這種專業(yè)術(shù)語叫做server side session。
2、將session數(shù)據(jù)加密,然后存儲(chǔ)在cookie中。這種專業(yè)術(shù)語叫做client side session。flask采用的就是這種方式,但是也可以替換成其他形式.
cookie和token的五點(diǎn)區(qū)別
①:token和cookie一樣都是首次登陸時(shí),由服務(wù)器下發(fā),都是當(dāng)交互時(shí)進(jìn)行驗(yàn)證的功能,作用都是為無狀態(tài)的HTTP提供的持久機(jī)制。
②:token存在哪兒都行,localstorage或者cookie。
③:token和cookie舉例,token就是說你告訴我你是誰就可以。
cookie 舉例:服務(wù)員看你的身份證,給你一個(gè)編號,以后,進(jìn)行任何操作,都出示編號后服務(wù)員去看查你是誰。
token 舉例:直接給服務(wù)員看自己身份證
④:對于token而言,服務(wù)器不需要去查看你是誰,不需要保存你的會(huì)話。當(dāng)用戶logout的時(shí)候cookie和服務(wù)器的session都會(huì)注銷;但是當(dāng)logout時(shí)候token只是注銷瀏覽器信息,不查庫。
⑤:token優(yōu)勢在于,token由于服務(wù)器端不存儲(chǔ)會(huì)話,所以可擴(kuò)展性強(qiáng),token還可用于APP中。
總結(jié):
Token 完全由應(yīng)用管理,所以它可以避開同源策略
Token 可以避免 CSRF 攻擊
Token 可以是無狀態(tài)的,可以在多個(gè)服務(wù)間共享
如果你的用戶數(shù)據(jù)可能需要和第三方共享,或者允許第三方調(diào)用 API 接口,用 Token,如果之上自己的那就無所謂了。
舉例
1.打開登錄注冊頁面

2.注冊跳轉(zhuǎn)到登錄頁面

3.打開fiddler抓包:用正確的用戶名登錄,并且輸入姓名查詢


-
cookie和token
image.png
導(dǎo)出添加到j(luò)meter看前面幾天的簡書有詳細(xì)說明.
4.填好信息,啟動(dòng)cookie,設(shè)置好斷言跑一下觀察!

5.關(guān)閉cookie跑一下 查詢掛了

6.在登錄請求里面添加后置處理器---正則表達(dá)式提取器


7.設(shè)置正則表達(dá)式提取器
7.1

7.2

8.在查詢--http信息管理頭里面添加 cookie =$({token})

9.跑一下看看

10.如果等一會(huì)又掛了怎么辦.復(fù)制Set-Cookie:后面的值到正則里面缺省值里面就OK!


*cookie和token一定要會(huì)用
待續(xù).......CSV 和if 控制器一起寫吧!


