Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
產(chǎn)生原因:
我們知道html是如這些標(biāo)簽包含的格式化文本,當(dāng)用瀏覽器打開(kāi)時(shí),瀏覽器內(nèi)部的標(biāo)簽解釋器把不同的標(biāo)簽解釋為不同的含義。這時(shí)默認(rèn)所有內(nèi)容都是在標(biāo)簽之內(nèi)的,標(biāo)簽本身并不是內(nèi)容。如果內(nèi)容中也有標(biāo)簽怎么辦?這是個(gè)問(wèn)題嗎?當(dāng)然。當(dāng)一個(gè)負(fù)責(zé)講解html是什么的頁(yè)面輸出時(shí),html頁(yè)面中必然包含有標(biāo)簽需要輸出顯示,而瀏覽器并不能智能的分清楚哪些是需要解釋哪些不需要。
解決方法:
其中一個(gè)辦法就是轉(zhuǎn)義。為了區(qū)分需要解釋和不需要解釋的<>,將不需要解釋的<>用轉(zhuǎn)義字符代替,html會(huì)將它們解釋為<>。和html一樣,其他編程語(yǔ)言也有一些內(nèi)置特殊符號(hào)需要用這樣的方法處理,比如php中的$,下面列舉一些:
如HTML轉(zhuǎn)義符、java 轉(zhuǎn)義符、xml 轉(zhuǎn)義符、 oracle 轉(zhuǎn)義符、sql 轉(zhuǎn)義符 、sqlserver 轉(zhuǎn)義符、php 轉(zhuǎn)義符、asp 轉(zhuǎn)義符、vb轉(zhuǎn)義符、 javascript 轉(zhuǎn)義符等等,還有網(wǎng)址中的百分號(hào)。
轉(zhuǎn)義字符串有三部分組成:
&符號(hào)+實(shí)體名稱/編號(hào)+;符號(hào)
例如,HTML的< >&"?的轉(zhuǎn)義字符串分別是
“&lt;”或者“&#60;”
“&gt;”或者“&#62;”
“&amp;”或者“&#38;”
“&quot;”或者“&#34;”
“&copy;”或者“&#169;”
在高級(jí)編程語(yǔ)言中已經(jīng)將轉(zhuǎn)義字符的轉(zhuǎn)義處理做成了函數(shù)。如php中的htmlspecialchars()負(fù)責(zé)將函數(shù)參數(shù)轉(zhuǎn)為對(duì)應(yīng)的轉(zhuǎn)義字符串
)JavaScript基本組成
1.1基本語(yǔ)法幾乎所有瀏覽器基本都支持,有專門的機(jī)構(gòu)制定統(tǒng)一標(biāo)準(zhǔn)
1.2Dom(文檔對(duì)象)瀏覽器基本都支持,但有的可能會(huì)有差別到時(shí)再說(shuō)(重點(diǎn))
1.3Bom(瀏覽器對(duì)象)一般功能性的瀏覽器支持這個(gè)沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),主要操作如打開(kāi)關(guān)閉瀏覽器窗口,獲取屏幕的分辨率screen,XmlHttpRequest(異步對(duì)象)等
2)JavaScript的語(yǔ)法
2.1Javascript嚴(yán)格區(qū)分變量的大小寫(xiě);比如 a與A代表的是兩個(gè)不同的變量
2.2Javascript中聲明變量時(shí)只有一個(gè)關(guān)鍵字var(ES5),Javascript是一個(gè)弱類型的編程語(yǔ)言;比如聲明一個(gè)變量a var a; a=3(數(shù)值) 或者a="3"(字符串)都是正確的,與C#中的不一樣;每條語(yǔ)句后加分號(hào)(分號(hào)建議加上)
如果變量使用前不用var聲明,這樣的變量就變成了“全局變量”
2.3Javascript中的注釋,與C#的相同 //單行注釋、/* 多行注釋 */
2.4變量的命名規(guī)則:以字母,下劃線或$開(kāi)頭,中間可以包括任意的字母,數(shù)字,下劃線或$。(與C#相比變量命名中多了一個(gè)$)
2.5JavaScript中即可以使用雙引號(hào)或者單引號(hào)聲明字符串變量,主要是為了方便和html的兼容,避免轉(zhuǎn)義符的麻煩
2.6每次修改過(guò)JavaScript中的代碼后直接保存,在瀏覽器中刷新即可
3)JavaScript代碼
javascript代碼需要寫(xiě)在<script></script>標(biāo)簽中而<script>標(biāo)簽可以寫(xiě)在<head>,<body>等任意位置,一個(gè)網(wǎng)頁(yè)中也可以有多個(gè)<script></script>標(biāo)簽(此標(biāo)簽最好是成對(duì)出現(xiàn))
<script>標(biāo)簽標(biāo)準(zhǔn)格式:<script type="text/javascript">js代碼</script>
如果<script>標(biāo)簽放到<head>中,則代碼在body加載之前就已經(jīng)運(yùn)行了;如果寫(xiě)在body中的<script>是隨著頁(yè)面的加載而一個(gè)個(gè)執(zhí)行的
如果代碼運(yùn)行遇到錯(cuò)誤,有錯(cuò)誤的<script></script>中的代碼不會(huì)執(zhí)行,但也不會(huì)影響后面的其他<script></script>中的代碼和html的顯示
JavaScript代碼可以直接寫(xiě)在網(wǎng)頁(yè)中,也可以將JavaScript代碼寫(xiě)到單獨(dú)的js文件中,其擴(kuò)展名就是**.js, 寫(xiě)好此js文件后在頁(yè)面中再引入此文件;建議寫(xiě)在網(wǎng)頁(yè)的最后,因?yàn)閖avascript代碼執(zhí)行順序是從上到下依次執(zhí)行,如果引用文件寫(xiě)在head中很大可能會(huì)報(bào)錯(cuò)(操作DOM對(duì)象)
<script src="文件名.js" type="text/javascript"></script> src后面的路徑為相對(duì)路徑
查看javascript代碼
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>JavaScript</title>
<script type="text/javascript">
// javascript代碼 單行注釋
/* javascript代碼 多行注釋*/
var a=3;
alert(a);//彈出對(duì)話框
a="3";
alert(a);
</script>
</head>
<body>
</body>
<script src="**.js" type="text/javascript">只能引用文件,不能書(shū)寫(xiě)代碼</script>
</html>
alert(a);自己查看彈出的對(duì)話框的值
上一篇:主要介紹線程組、HTTP請(qǐng)求默認(rèn)值、用戶定義的變量、固定定時(shí)器的應(yīng)用場(chǎng)景及實(shí)戰(zhàn)。
以下主要介紹正則表達(dá)式提取器、調(diào)式取樣器(Debug Sampler)、響應(yīng)斷言、HTTP信息頭管理器的應(yīng)用場(chǎng)景及實(shí)戰(zhàn)。
1、使用場(chǎng)景
從請(qǐng)求的響應(yīng)結(jié)果中取到需要的內(nèi)容,作為下一個(gè)接口的入?yún)亩鴮?shí)現(xiàn)關(guān)聯(lián)。比如登錄后,用正則表達(dá)式獲取token,其他接口攜帶token請(qǐng)求。
2、正則表達(dá)式提取器界面說(shuō)明
②創(chuàng)建的正則表達(dá)式提取器頁(yè)面如下:
APPly to:
要檢查的響應(yīng)字段:
引用名稱:
提取結(jié)果之后的變量名稱,即下個(gè)請(qǐng)求需要引用的值,后面引用方式是${變量名}。
正則表達(dá)式:
使用正則表達(dá)式解析響應(yīng)結(jié)果,()括號(hào)表示提取字符串中的部分值,前后是提取的邊界內(nèi)容。
一般通用的正則表達(dá)式(.+?)。
如需了解更多關(guān)于正則表達(dá)式知識(shí),可參照:Python自動(dòng)化測(cè)試-正則表達(dá)式解析一文。
模板:
如果正則表達(dá)式有多個(gè)提取結(jié)果,則結(jié)果是數(shù)組形式。若只有一組表達(dá)式,則使用$,兩組正則匹配使用$$,以此類推。
匹配數(shù)字:
正則表達(dá)式匹配數(shù)據(jù)的結(jié)果可以看做一個(gè)數(shù)組:-1表示全部,0表示隨機(jī),1表示第一個(gè),2表示第二個(gè),依次類推。
缺省值:
如果參數(shù)沒(méi)有取到值,那默認(rèn)給個(gè)值,比如null。
3、實(shí)戰(zhàn)小例子
提取登錄響應(yīng)結(jié)果的token:
②創(chuàng)建一個(gè)HTTP請(qǐng)求,用來(lái)發(fā)送登錄請(qǐng)求,登錄接口請(qǐng)求參數(shù)配置如下。
③HTTP請(qǐng)求,右鍵,創(chuàng)建一個(gè)正則表達(dá)式提取器。
先來(lái)看下登錄接口返回結(jié)果:
{
"data": {
"mobile": "12345678",
"id": 500,
"rid": 0,
"email": "adsfad@qq.com",
"username": "admin",
"token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1OTA5MDY3MzAsImV4cCI6MTU5MDk5MzEzMH0.M3CWrgsDUMvnhkprQMBJ1wWY5OKO-mKiOD4EJ2YV4zc"
},
"meta": {
"msg": "登錄成功",
"status": 200
}
}
正則表達(dá)式提取token,配置如下:
④創(chuàng)建一個(gè)察看結(jié)果樹(shù),運(yùn)行后,接口返回如下:
(Debug Sampler)
1.使用場(chǎng)景
主要用于打印出變量進(jìn)行調(diào)試。比如上面例子,雖然用正則表達(dá)式提取了token,但我們并不知道token是否有正確提取,可以使用調(diào)式取樣器查看。
2.調(diào)試取樣器界面說(shuō)明
①線程組右鍵,依次點(diǎn)擊添加--》取樣器--》Debug Sampler。
②調(diào)式取樣器界面如下:
有三個(gè)參數(shù)Jmeter 屬性,選項(xiàng)值默認(rèn)即可。
Jmeter 屬性,系統(tǒng)屬性,一般不會(huì)變,不需要調(diào)試。
Jmeter 變量調(diào)試的是Jmeter中自定義的變量,包含如下這些自定義變量:
3.實(shí)戰(zhàn)小例子
①創(chuàng)建線程組、HTTP請(qǐng)求、正則表達(dá)式提取器、察看結(jié)果樹(shù)(介紹正則表達(dá)式實(shí)戰(zhàn)例子有,這里省略創(chuàng)建步驟)。
②創(chuàng)建調(diào)式取樣器(debug sampler),不需要修改,默認(rèn)即可。
③運(yùn)行,在察看結(jié)果樹(shù)中,選擇調(diào)試取樣器,可以看到token已經(jīng)正常獲取到。
注意:一般來(lái)說(shuō)調(diào)式取樣器(debug sampler)用于自測(cè)使用,上線時(shí)可以刪除。
1.使用場(chǎng)景
在接口測(cè)試過(guò)程中,需要判斷接口返回結(jié)果是否正確。
2.響應(yīng)斷言界面說(shuō)明
①HTTP請(qǐng)求,右鍵,依次選擇添加--》斷言--》響應(yīng)斷言。
②響應(yīng)斷言界面如下:
Apply to:
測(cè)試字段:
響應(yīng)文本:響應(yīng)正文。(常用)。
響應(yīng)代碼:響應(yīng)狀態(tài)碼,比如200、304、404等。
響應(yīng)信息:響應(yīng)消息。,比如OK、Not Modified、Not Found等。
響應(yīng)頭:響應(yīng)請(qǐng)求頭。
請(qǐng)求頭:請(qǐng)求頭。
URL樣本:請(qǐng)求的url。
文檔(文本):從各種類型的文檔中提取文本。此選項(xiàng)開(kāi)啟也會(huì)嚴(yán)重影響性能,謹(jǐn)慎使用。
忽略狀態(tài):忽略響應(yīng)狀態(tài)。
請(qǐng)求數(shù)據(jù):請(qǐng)求的body內(nèi)容。
模式匹配規(guī)則:
包括:如果文本包含正則表達(dá)式模式,則為true。
匹配:如果整個(gè)文本與正則表達(dá)式模式匹配,則為true。
相等: 如果整個(gè)文本等于模式字符串(區(qū)分大小寫(xiě)),則為true。
字符串:如果文本包含模式字符串(區(qū)分大小寫(xiě)),則為true。
否:對(duì)斷言結(jié)果進(jìn)行否定。
或者:將多個(gè)測(cè)試模式以邏輯“或”組合起來(lái)。
3.實(shí)戰(zhàn)小例子
①創(chuàng)建線程組、HTTP請(qǐng)求、正則表達(dá)式提取器、察看結(jié)果樹(shù)(上面實(shí)戰(zhàn)例子有寫(xiě),這里省略創(chuàng)建)。
②HTTP請(qǐng)求右鍵,創(chuàng)建一個(gè)響應(yīng)斷言。我們?cè)賮?lái)看下響應(yīng)結(jié)果的信息:
{
"data": {
"mobile": "12345678",
"id": 500,
"rid": 0,
"email": "adsfad@qq.com",
"username": "admin",
"token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1OTA5MDY3MzAsImV4cCI6MTU5MDk5MzEzMH0.M3CWrgsDUMvnhkprQMBJ1wWY5OKO-mKiOD4EJ2YV4zc"
},
"meta": {
"msg": "登錄成功",
"status": 200
}
}
斷言的方式可以多種,比如斷言msg、status或者msg、status一起斷言,甚至你用其他返回的字段也是可以的。
這里我們用msg斷言,配置如下:
③運(yùn)行后,如斷言失敗,在察看結(jié)果樹(shù)里http請(qǐng)求會(huì)紅色顯示。
四、HTTP信息頭管理器
1.使用場(chǎng)景
在接口測(cè)試中,有時(shí)候需要攜帶請(qǐng)求頭,比如接口需要攜帶token進(jìn)行請(qǐng)求,token需要放在請(qǐng)求頭里。
2.HTTP信息頭管理器界面說(shuō)明
①線程組,右鍵,依次點(diǎn)擊添加--》配置元件--》HTTP信息頭管理器。
②HTTP信息頭管理器界面如下:
HTTP信息頭管理器比較簡(jiǎn)單,直接添加請(qǐng)求頭信息的鍵值對(duì)就可以。
3.實(shí)戰(zhàn)小例子
①創(chuàng)建線程組、HTTP請(qǐng)求、正則表達(dá)式提取器、察看結(jié)果樹(shù)、響應(yīng)斷言(上面實(shí)戰(zhàn)例子有寫(xiě),這里省略創(chuàng)建步驟)。
②線程組下,新建一個(gè)HTTP消息頭管理器。
在上面介紹正則表達(dá)式提取器,我們已經(jīng)將登錄后的token用正則提取出來(lái)了,這里直接引用,相當(dāng)于全局設(shè)置了token,其他接口請(qǐng)求時(shí)會(huì)自動(dòng)在請(qǐng)求頭帶上token。
在HTTP信息頭管理器引用token如下:
③線程組右鍵,新建一個(gè)http請(qǐng)求,用于請(qǐng)求用戶數(shù)據(jù)列表接口。
④運(yùn)行后,發(fā)現(xiàn)用戶數(shù)據(jù)列表接口在請(qǐng)求頭自動(dòng)攜帶了token。
總結(jié):本文主要介紹正則表達(dá)式提取器、調(diào)式取樣器(debug sampler)、響應(yīng)斷言、HTTP信息頭管理的應(yīng)用場(chǎng)景及實(shí)戰(zhàn)。
今日問(wèn)題:
你在使用Jmeter過(guò)程中,常用的元件或插件有哪些?
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。