整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          html中需要轉(zhuǎn)義的字符如何處理

          html中需要轉(zhuǎn)義的字符如何處理

          產(chǎn)生原因:


          我們知道html是如這些標(biāo)簽包含的格式化文本,當(dāng)用瀏覽器打開時,瀏覽器內(nèi)部的標(biāo)簽解釋器把不同的標(biāo)簽解釋為不同的含義。這時默認(rèn)所有內(nèi)容都是在標(biāo)簽之內(nèi)的,標(biāo)簽本身并不是內(nèi)容。如果內(nèi)容中也有標(biāo)簽怎么辦?這是個問題嗎?當(dāng)然。當(dāng)一個負(fù)責(zé)講解html是什么的頁面輸出時,html頁面中必然包含有標(biāo)簽需要輸出顯示,而瀏覽器并不能智能的分清楚哪些是需要解釋哪些不需要。


          解決方法:


          其中一個辦法就是轉(zhuǎn)義。為了區(qū)分需要解釋和不需要解釋的<>,將不需要解釋的<>用轉(zhuǎn)義字符代替,html會將它們解釋為<>。和html一樣,其他編程語言也有一些內(nèi)置特殊符號需要用這樣的方法處理,比如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)址中的百分號。


          轉(zhuǎn)義字符串有三部分組成:

          &符號+實體名稱/編號+;符號


          例如,HTML的< >&"?的轉(zhuǎn)義字符串分別是

          “&lt;”或者“&#60;”

          “&gt;”或者“&#62;”

          “&amp;”或者“&#38;”

          “&quot;”或者“&#34;”

          “&copy;”或者“&#169;”


          在高級編程語言中已經(jīng)將轉(zhuǎn)義字符的轉(zhuǎn)義處理做成了函數(shù)。如php中的htmlspecialchars()負(fù)責(zé)將函數(shù)參數(shù)轉(zhuǎn)為對應(yīng)的轉(zhuǎn)義字符串

          )JavaScript基本組成

          1.1基本語法幾乎所有瀏覽器基本都支持,有專門的機構(gòu)制定統(tǒng)一標(biāo)準(zhǔn)

          1.2Dom(文檔對象)瀏覽器基本都支持,但有的可能會有差別到時再說(重點)

          1.3Bom(瀏覽器對象)一般功能性的瀏覽器支持這個沒有統(tǒng)一的標(biāo)準(zhǔn),主要操作如打開關(guān)閉瀏覽器窗口,獲取屏幕的分辨率screen,XmlHttpRequest(異步對象)等

          2)JavaScript的語法

          2.1Javascript嚴(yán)格區(qū)分變量的大小寫;比如 a與A代表的是兩個不同的變量

          2.2Javascript中聲明變量時只有一個關(guān)鍵字var(ES5),Javascript是一個弱類型的編程語言;比如聲明一個變量a var a; a=3(數(shù)值) 或者a="3"(字符串)都是正確的,與C#中的不一樣;每條語句后加分號(分號建議加上)

          如果變量使用前不用var聲明,這樣的變量就變成了“全局變量”

          2.3Javascript中的注釋,與C#的相同 //單行注釋、/* 多行注釋 */

          2.4變量的命名規(guī)則:以字母,下劃線或$開頭,中間可以包括任意的字母,數(shù)字,下劃線或$。(與C#相比變量命名中多了一個$)

          2.5JavaScript中即可以使用雙引號或者單引號聲明字符串變量,主要是為了方便和html的兼容,避免轉(zhuǎn)義符的麻煩

          2.6每次修改過JavaScript中的代碼后直接保存,在瀏覽器中刷新即可

          3)JavaScript代碼

          javascript代碼需要寫在<script></script>標(biāo)簽中而<script>標(biāo)簽可以寫在<head>,<body>等任意位置,一個網(wǎng)頁中也可以有多個<script></script>標(biāo)簽(此標(biāo)簽最好是成對出現(xiàn))

          <script>標(biāo)簽標(biāo)準(zhǔn)格式:<script type="text/javascript">js代碼</script>

          如果<script>標(biāo)簽放到<head>中,則代碼在body加載之前就已經(jīng)運行了;如果寫在body中的<script>是隨著頁面的加載而一個個執(zhí)行的

          如果代碼運行遇到錯誤,有錯誤的<script></script>中的代碼不會執(zhí)行,但也不會影響后面的其他<script></script>中的代碼和html的顯示

          JavaScript代碼可以直接寫在網(wǎng)頁中,也可以將JavaScript代碼寫到單獨的js文件中,其擴展名就是**.js, 寫好此js文件后在頁面中再引入此文件;建議寫在網(wǎng)頁的最后,因為javascript代碼執(zhí)行順序是從上到下依次執(zhí)行,如果引用文件寫在head中很大可能會報錯(操作DOM對象)

          <script src="文件名.js" type="text/javascript"></script> src后面的路徑為相對路徑

          查看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);//彈出對話框
             a="3";
             alert(a);
              </script>    
          </head>
          <body>   
          </body>
          <script src="**.js" type="text/javascript">只能引用文件,不能書寫代碼</script>
          </html>

          alert(a);自己查看彈出的對話框的值

          上一篇:主要介紹線程組、HTTP請求默認(rèn)值、用戶定義的變量、固定定時器的應(yīng)用場景及實戰(zhàn)。


          以下主要介紹正則表達式提取器、調(diào)式取樣器(Debug Sampler)、響應(yīng)斷言、HTTP信息頭管理器的應(yīng)用場景及實戰(zhàn)。


          一、正則表達式提取器


          1、使用場景


          從請求的響應(yīng)結(jié)果中取到需要的內(nèi)容,作為下一個接口的入?yún)亩鴮崿F(xiàn)關(guān)聯(lián)。比如登錄后,用正則表達式獲取token,其他接口攜帶token請求。


          2、正則表達式提取器界面說明


          ①HTTP請求右鍵,依次點擊添加--》后置處理器--》正則表達式提取器。


          ②創(chuàng)建的正則表達式提取器頁面如下:

          APPly to:

          • Main sample and sub-samples: 作用于主節(jié)點的取樣器及對應(yīng)子節(jié)點的取樣器;
          • Main sample only:僅作用于主節(jié)點的取樣器;
          • Sub-samples only: 僅作用于子節(jié)點的取樣器;
          • JMeter Variable Name to use: 作用于jmeter變量(輸入框內(nèi)可輸入jmeter的變量名稱),從指定變量值中提取需要的值。


          要檢查的響應(yīng)字段:

          • 主體:響應(yīng)報文的主體,最常用;
          • Body(unescaped):主體,是替換了所有的html轉(zhuǎn)義符的響應(yīng)主體內(nèi)容,注意html轉(zhuǎn)義符處理時不考慮上下文,因此可能有不正確的轉(zhuǎn)換,不太建議使用;
          • Body as a Document:從不同類型的文件中提取文本,注意這個選項比較影響性能;
          • 信息頭:響應(yīng)信息頭;
          • Request Headers:請求信息頭;
          • URL:請求url;
          • 響應(yīng)代碼: 響應(yīng)狀態(tài)碼,比如200、404等;
          • 響應(yīng)信息: 響應(yīng)信息。


          引用名稱

          提取結(jié)果之后的變量名稱,即下個請求需要引用的值,后面引用方式是${變量名}。


          正則表達式

          使用正則表達式解析響應(yīng)結(jié)果,()括號表示提取字符串中的部分值,前后是提取的邊界內(nèi)容。

          一般通用的正則表達式(.+?)。

          如需了解更多關(guān)于正則表達式知識,可參照:Python自動化測試-正則表達式解析一文。


          模板:

          如果正則表達式有多個提取結(jié)果,則結(jié)果是數(shù)組形式。若只有一組表達式,則使用$,兩組正則匹配使用$$,以此類推。


          匹配數(shù)字

          正則表達式匹配數(shù)據(jù)的結(jié)果可以看做一個數(shù)組:-1表示全部,0表示隨機,1表示第一個,2表示第二個,依次類推。


          缺省值

          如果參數(shù)沒有取到值,那默認(rèn)給個值,比如null。


          3、實戰(zhàn)小例子


          提取登錄響應(yīng)結(jié)果的token:

          ①創(chuàng)建一個線程組。

          ②創(chuàng)建一個HTTP請求,用來發(fā)送登錄請求,登錄接口請求參數(shù)配置如下。


          ③HTTP請求,右鍵,創(chuà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
              }
          }

          正則表達式提取token,配置如下:


          ④創(chuàng)建一個察看結(jié)果樹,運行后,接口返回如下:


          二、調(diào)式取樣器

          (Debug Sampler)


          1.使用場景


          主要用于打印出變量進行調(diào)試。比如上面例子,雖然用正則表達式提取了token,但我們并不知道token是否有正確提取,可以使用調(diào)式取樣器查看。


          2.調(diào)試取樣器界面說明


          ①線程組右鍵,依次點擊添加--》取樣器--》Debug Sampler。


          ②調(diào)式取樣器界面如下:

          有三個參數(shù)Jmeter 屬性,選項值默認(rèn)即可。

          Jmeter 屬性,系統(tǒng)屬性,一般不會變,不需要調(diào)試。

          Jmeter 變量調(diào)試的是Jmeter中自定義的變量,包含如下這些自定義變量:

          • 選中線程組,右鍵,添加--配置元件—用戶定義的變量;
          • 通過后置處理器生成的變量:Jmeter關(guān)聯(lián);
          • 使用csv參數(shù)化的變量:Jmeter參數(shù)化。


          3.實戰(zhàn)小例子


          ①創(chuàng)建線程組、HTTP請求、正則表達式提取器、察看結(jié)果樹(介紹正則表達式實戰(zhàn)例子有,這里省略創(chuàng)建步驟)。


          ②創(chuàng)建調(diào)式取樣器(debug sampler),不需要修改,默認(rèn)即可。


          ③運行,在察看結(jié)果樹中,選擇調(diào)試取樣器,可以看到token已經(jīng)正常獲取到。

          注意:一般來說調(diào)式取樣器(debug sampler)用于自測使用,上線時可以刪除。


          三、響應(yīng)斷言


          1.使用場景


          在接口測試過程中,需要判斷接口返回結(jié)果是否正確。


          2.響應(yīng)斷言界面說明


          ①HTTP請求,右鍵,依次選擇添加--》斷言--》響應(yīng)斷言。


          ②響應(yīng)斷言界面如下:

          Apply to:

          • Main sample and sub-samples 范圍包括主取樣器與所有子取樣器。
          • Main sample only 范圍僅限于主取樣器。
          • Sub-samples only 范圍僅限于所有子取樣器。
          • JMeter Variable Name to use 范圍包括使用的Jmeter變量。


          測試字段:

          響應(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)請求頭。

          請求頭:請求頭。

          URL樣本:請求的url。

          文檔(文本):從各種類型的文檔中提取文本。此選項開啟也會嚴(yán)重影響性能,謹(jǐn)慎使用。

          忽略狀態(tài):忽略響應(yīng)狀態(tài)。

          請求數(shù)據(jù):請求的body內(nèi)容。


          模式匹配規(guī)則:

          包括:如果文本包含正則表達式模式,則為true。

          匹配:如果整個文本與正則表達式模式匹配,則為true。

          相等: 如果整個文本等于模式字符串(區(qū)分大小寫),則為true。

          字符串:如果文本包含模式字符串(區(qū)分大小寫),則為true。

          否:對斷言結(jié)果進行否定。

          或者:將多個測試模式以邏輯“或”組合起來。


          3.實戰(zhàn)小例子


          ①創(chuàng)建線程組、HTTP請求、正則表達式提取器、察看結(jié)果樹(上面實戰(zhàn)例子有寫,這里省略創(chuàng)建)。


          ②HTTP請求右鍵,創(chuàng)建一個響應(yīng)斷言。我們再來看下響應(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斷言,配置如下:


          ③運行后,如斷言失敗,在察看結(jié)果樹里http請求會紅色顯示。


          四、HTTP信息頭管理器


          1.使用場景


          在接口測試中,有時候需要攜帶請求頭,比如接口需要攜帶token進行請求,token需要放在請求頭里。


          2.HTTP信息頭管理器界面說明


          ①線程組,右鍵,依次點擊添加--》配置元件--》HTTP信息頭管理器。


          ②HTTP信息頭管理器界面如下:

          HTTP信息頭管理器比較簡單,直接添加請求頭信息的鍵值對就可以。


          3.實戰(zhàn)小例子


          ①創(chuàng)建線程組、HTTP請求、正則表達式提取器、察看結(jié)果樹、響應(yīng)斷言(上面實戰(zhàn)例子有寫,這里省略創(chuàng)建步驟)。


          ②線程組下,新建一個HTTP消息頭管理器。

          在上面介紹正則表達式提取器,我們已經(jīng)將登錄后的token用正則提取出來了,這里直接引用,相當(dāng)于全局設(shè)置了token,其他接口請求時會自動在請求頭帶上token。

          在HTTP信息頭管理器引用token如下:


          ③線程組右鍵,新建一個http請求,用于請求用戶數(shù)據(jù)列表接口。


          ④運行后,發(fā)現(xiàn)用戶數(shù)據(jù)列表接口在請求頭自動攜帶了token。


          總結(jié):本文主要介紹正則表達式提取器、調(diào)式取樣器(debug sampler)、響應(yīng)斷言、HTTP信息頭管理的應(yīng)用場景及實戰(zhàn)。


          今日問題

          你在使用Jmeter過程中,常用的元件或插件有哪些?


          主站蜘蛛池模板: 亚洲AV成人一区二区三区在线看| 欧美日韩精品一区二区在线观看| 一区二区三区在线观看免费| 黑巨人与欧美精品一区| 国产吧一区在线视频| 国产精品一区二区久久精品涩爱| 91福利一区二区| 相泽南亚洲一区二区在线播放| 人妻视频一区二区三区免费| 亚洲av色香蕉一区二区三区蜜桃 | 亚洲国产欧美日韩精品一区二区三区| 亚洲一区无码中文字幕| 久久精品国产第一区二区三区| 亚洲欧洲精品一区二区三区| 亚洲香蕉久久一区二区三区四区| 中文乱码人妻系列一区二区| 欧洲精品码一区二区三区| 视频一区二区三区在线观看| 在线精品动漫一区二区无广告| 精品无码人妻一区二区三区| 日韩视频一区二区| 黑人大战亚洲人精品一区| 3D动漫精品一区二区三区| 国产精品一区二区四区| 国精品无码一区二区三区左线 | 亚洲无圣光一区二区| 八戒久久精品一区二区三区| 日本一区二区三区在线观看| 日韩精品一区二区三区在线观看l| 精品一区二区三区免费观看| 亚洲国产情侣一区二区三区 | 中文字幕无线码一区| 91一区二区三区四区五区| 国产成人精品久久一区二区三区av| 日产亚洲一区二区三区| 东京热无码av一区二区| 无码精品不卡一区二区三区| 亚洲AV福利天堂一区二区三| 无码人妻一区二区三区在线水卜樱| 精品无码人妻一区二区三区 | 伊人久久精品无码av一区|