接口測(cè)試從基礎(chǔ)到熟練

網(wǎng)絡(luò)協(xié)議

<meta charset="utf-8">

0.1 http與https

10.1.1 什么是超文本
   1960年美國(guó)人Ted Nelson構(gòu)思了一種通過計(jì)算機(jī)處理文本信息的方法,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標(biāo)準(zhǔn)架構(gòu)的發(fā)展根基。

超文本是用超鏈接的方法嗡载,將各種不同空間的文字信息組織在一起的網(wǎng)狀文本踏拜。超文本更是一種用戶界面范式鞋邑,用以顯示文本及與文本之間相關(guān)的內(nèi)容∶ダ保現(xiàn)時(shí)超文本普遍以電子文檔方式存在,其中的文字包含有可以鏈結(jié)到其他位置或者文檔的連結(jié)袱蚓,允許從當(dāng)前閱讀位置直接切換到超文本連結(jié)所指向的位置钞啸。

10.1.2 http協(xié)議
   HTTP(HyperText Transport Protocol)是超文本傳輸協(xié)議的縮寫,它用于傳送WWW方式的數(shù)據(jù)喇潘。

超文本傳輸協(xié)議(HTTP体斩,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)颖低。設(shè)計(jì)HTTP最初的目的
是為了提供一種發(fā)布和接收HTML頁(yè)面的方法絮吵。

10.1.3 http與https基本概念
  • HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP)忱屑,用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議蹬敲,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少莺戒。
  • HTTPS:是以安全為目標(biāo)的HTTP通道伴嗡,簡(jiǎn)單講是HTTP的安全版,即HTTP下加入SSL(Secure Sockets Layer)層从铲,HTTPS的安全基礎(chǔ)是SSL瘪校,因此加密的詳細(xì)內(nèi)容就需要SSL。
    HTTPS協(xié)議的主要作用可以分為兩種:一種是建立一個(gè)信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩逖铮涣硪环N就是確認(rèn)網(wǎng)站的真實(shí)性泣懊。
10.1.4 http與https的區(qū)別

簡(jiǎn)單來說,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸麻惶、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議馍刮,要比http協(xié)議安全。區(qū)別主要如下:
  1用踩、https協(xié)議需要到ca申請(qǐng)證書渠退,一般免費(fèi)證書較少,因而需要一定費(fèi)用脐彩。
  2碎乃、http是超文本傳輸協(xié)議,信息是明文傳輸惠奸,https則是具有安全性的ssl加密傳輸協(xié)議梅誓。
  3、http和https使用的是完全不同的連接方式佛南,用的默認(rèn)端口也不一樣梗掰,前者是80,后者是443嗅回。
  4及穗、http的連接很簡(jiǎn)單,是無狀態(tài)的绵载;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸宣脉、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議漆枚,比http協(xié)議安全。

10.2 http請(qǐng)求的組成

從客戶端到服務(wù)器端的請(qǐng)求消息,信息由4部分組成請(qǐng)求行令花、消息報(bào)頭掏父、空行兜叨、請(qǐng)求正文

image
10.2.1 請(qǐng)求行(請(qǐng)求方法URI協(xié)議/版本)

請(qǐng)求的第一行是“方法URI協(xié)議/版本”例如:GET/sample.jsp HTTP/1.1
以上代碼中“GET”代表請(qǐng)求方法档玻,“/sample.jsp”表示URI,“HTTP/1.1代表協(xié)議和協(xié)議的版本躯畴。

10.2.2 消息報(bào)頭(請(qǐng)求頭Request Header)

請(qǐng)求頭包含許多有關(guān)的客戶端環(huán)境和請(qǐng)求正文的有用信息民鼓。例如,請(qǐng)求頭可以聲明瀏覽器所用的語(yǔ)言蓬抄,請(qǐng)求正文的長(zhǎng)度等摹察。例如:
Accept:image/gif.image/jpeg./(請(qǐng)求的圖片內(nèi)容格式)
Accept-Language:zh-cn(zh-CN 是表示中文,fr-FR 是表示法語(yǔ)倡鲸。 這是RFC1766定義的語(yǔ)言表示方式)
Connection:Keep-Alive(又稱持久連接供嚎、連接重用,Keep-Alive功能使客戶端到服務(wù)器端的連接持續(xù)有效,當(dāng)出現(xiàn)對(duì)服務(wù)器的后繼請(qǐng)求時(shí)克滴,Keep-Alive功能避免了建立或者重新建立連接逼争。)
Host:localhost(主機(jī)名字)
User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)(客戶端身份信息)
Accept-Encoding:gzip,deflate( 以壓縮格式接收請(qǐng)求數(shù)據(jù))

10.2.3 空行

必須有,發(fā)送回車符和換行符劝赔,通知服務(wù)器以下不再有請(qǐng)求頭

10.2.4 請(qǐng)求正文(body)

請(qǐng)求頭和請(qǐng)求正文之間是一個(gè)空行誓焦,這個(gè)行非常重要,它表示請(qǐng)求頭已經(jīng)結(jié)束着帽,接下來的是請(qǐng)求正文杂伟。請(qǐng)求正文中可以包含客戶提交的查詢字符串信息:
username=jinqiao&password=1234
在以上的例子的HTTP請(qǐng)求中,請(qǐng)求的正文只有一行內(nèi)容仍翰。當(dāng)然赫粥,在實(shí)際應(yīng)用中,HTTP請(qǐng)求正文可以包含更多的內(nèi)容予借。

案例

image

10.4 請(qǐng)求方法

請(qǐng)求方法 解釋
GET 請(qǐng)求獲取Request-URI所標(biāo)識(shí)的資源
POST 在Request-URI所標(biāo)識(shí)的資源后附加新的數(shù)據(jù)
HEAD 請(qǐng)求獲取由Request-URI所標(biāo)識(shí)的資源的響應(yīng)消息報(bào)頭
PUT 請(qǐng)求服務(wù)器存儲(chǔ)一個(gè)資源越平,并用Request-URI作為其標(biāo)識(shí)
DELETE 請(qǐng)求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源
TRACE 請(qǐng)求服務(wù)器回送收到的請(qǐng)求信息,主要用于測(cè)試或診斷
CONNECT 保留將來使用
OPTIONS 請(qǐng)求查詢服務(wù)器的性能灵迫,或者查詢與資源相關(guān)的選項(xiàng)和需求

10.5 http響應(yīng)格式

從服務(wù)器端到客戶器端的響應(yīng)信息秦叛,信息由4部分組成:狀態(tài)行、消息報(bào)頭瀑粥、空行挣跋、響應(yīng)正文。

image
10.5.1 狀態(tài)行

HTTP-1.1 Status-Code Reason-Phrase CRLF其中狞换,HTTP-Version表示服務(wù)器HTTP協(xié)議的版本浆劲;Status-Code表示服務(wù)器發(fā)回的響應(yīng)狀態(tài)代碼;Reason-Phrase表示狀態(tài)代碼的文本描述哀澈。
例如:HTTP/1.1 200 OK \r\n

狀態(tài)碼

當(dāng)瀏覽者訪問一個(gè)網(wǎng)頁(yè)時(shí),瀏覽者的瀏覽器會(huì)向網(wǎng)頁(yè)所在服務(wù)器發(fā)出請(qǐng)求度气。當(dāng)瀏覽器接收并顯示網(wǎng)頁(yè)前割按,此網(wǎng)頁(yè)所在的服務(wù)器會(huì)返回一個(gè)包含HTTP狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請(qǐng)求。

HTTP狀態(tài)碼的英文為HTTP Status Code磷籍。
下面是常見的HTTP狀態(tài)碼:

狀態(tài)碼 描述
200 請(qǐng)求成功
301 資源(網(wǎng)頁(yè)等)被永久轉(zhuǎn)移到其它URL
404 請(qǐng)求的資源(網(wǎng)頁(yè)等)不存在
500 內(nèi)部服務(wù)器錯(cuò)誤

HTTP狀態(tài)碼分類
HTTP狀態(tài)碼由三個(gè)十進(jìn)制數(shù)字組成适荣,第一個(gè)十進(jìn)制數(shù)字定義了狀態(tài)碼的類型,后兩個(gè)數(shù)字沒有分類的作用院领。HTTP狀態(tài)碼共分為5種類型:

狀態(tài)碼 解釋
100-199 信息狀態(tài)碼弛矛,表示成功接收請(qǐng)求,要求客戶端繼續(xù)提交下一次請(qǐng)求才能完成整個(gè)處理過程比然。100(continue)繼續(xù)發(fā)送
200-299 成功狀態(tài)碼丈氓,表示成功接收請(qǐng)求并已完成整個(gè)處理過程,常用200(OK)成功接收
300-399 重定向狀態(tài)碼,例如万俗,請(qǐng)求的資源已經(jīng)移動(dòng)一個(gè)新地址湾笛,常用302、307和304
400-499 客戶端的請(qǐng)求有錯(cuò)誤闰歪,常用404(Not Found)嚎研,403(Fobidden)
500-599 服務(wù)器端出現(xiàn)錯(cuò)誤,常用 500

<meta charset="utf-8">

<article class="_2rhmJa">

10.5.2 消息報(bào)頭

服務(wù)器傳遞給客戶端用于說明服務(wù)器的一些信息库倘,以及將來繼續(xù)訪問該資源時(shí)的策略临扮。

Location:Location響應(yīng)報(bào)頭域用于重定向接受者到一個(gè)新的位置。
Server:Server響應(yīng)報(bào)頭域包含了服務(wù)器用來處理請(qǐng)求的軟件信息教翩。?WWW-Authenticate:WWW-Authenticate響應(yīng)報(bào)頭域必須被包含在401(未授權(quán)的)響應(yīng)消息中下面是WWW-Authenticate響應(yīng)報(bào)頭域的一個(gè)杆勇,例子:WWW-Authenticate: Basic realm="Basic Auth Test!“
Content-Encoding:Content-Encoding實(shí)體報(bào)頭域被使用作媒體類型的修飾符.
Content-Language:Content-Language實(shí)體報(bào)頭域描述了資源所用的自然語(yǔ)言。
Content-Length:  Content-Length實(shí)體報(bào)頭域用于指明正文的長(zhǎng)度.
Content-Type:Content-Type實(shí)體報(bào)頭域用語(yǔ)指明發(fā)送給接收者的實(shí)體正文的媒體類型迂曲。
Last-Modified:Last-Modified實(shí)體報(bào)頭域用于指示資源最后的修改日期及時(shí)間靶橱。
Expires: Expires實(shí)體報(bào)頭域給出響應(yīng)過期的日期和時(shí)間。
Expires實(shí)體報(bào)頭域使用的日期和時(shí)間必須是RFC 1123中的日期格式路捧,例如:?Expires: Thu, 15 Sep 2005 16:00:00 GMT

10.5.3 響應(yīng)正文

服務(wù)端返回給客戶端的HTML文本內(nèi)容关霸,或者其他格式的數(shù)據(jù),比如:視頻流杰扫、圖片或者音頻數(shù)據(jù)队寇。
如果請(qǐng)求的是HTML頁(yè)面,那么返回的就是HTML代碼章姓。如果是JS就是JS代碼佳遣。

image

10.4 http協(xié)議的各版本

版本號(hào) 詳情
HTTP/0.9 只接受GET一種請(qǐng)求方法,沒有在通信中指定版本號(hào)凡伊,且不支持請(qǐng)求頭零渐。由于該版本不支持POST方法,因此客戶端無法向服務(wù)器傳遞太多信息系忙。
HTTP/1.0 第一個(gè)在通信中指定的版本號(hào)诵盼,至今被廣泛采用,特別是在代理服務(wù)器中银还。
HTTP/1.1 當(dāng)前版本號(hào)风宁,持久連接被默認(rèn)采用,并能很好地配合代理服務(wù)器工作蛹疯。還支持以管道方式在同時(shí)發(fā)送多個(gè)請(qǐng)求戒财,以便降低線路負(fù)載,提高傳輸速度捺弦。
HTTP/2.0 為了解決1.1版本利用率不高的問題饮寞,提出了HTTP/2.0版本孝扛。增加雙工模式,增加服務(wù)器推送的功能

當(dāng)前主流的協(xié)議版本還是HTTP/1.1版本骂际。

HTTP/1.1與HTTP/1.0的區(qū)別

1疗琉、persistent connection(持久連接)

HTTP/1.0中,每對(duì)請(qǐng)求/ 響應(yīng)都使用一個(gè)新的連接歉铝。
HTTP/1.1則支持持久連接(默認(rèn))盈简。

2、Host域

HTTP/1.1在請(qǐng)求消息頭多一個(gè)Host域太示;HTTP/1.0 則沒有這個(gè)域柠贤,建立TCP連接的時(shí)候已經(jīng)指定了IP地址,而且默認(rèn)一個(gè)IP地址只對(duì)應(yīng)一個(gè)主機(jī)名类缤,IP地址上只有一個(gè)host臼勉。

3、.帶寬優(yōu)化

HTTP/1.1加入了一個(gè)新的狀態(tài)碼100(Continue)餐弱⊙绨裕客戶端事先發(fā)送一個(gè)只帶頭域的請(qǐng)求,如果服務(wù)器因?yàn)闄?quán)限拒絕了請(qǐng)求膏蚓,就回送響應(yīng)碼 401(Unauthorized)

4瓢谢、請(qǐng)求方法和狀態(tài)碼

HTTP1.1增加了OPTIONS, PUT, DELETE, TRACE, CONNECT這些Request方法。
在HTTP/1.1中新增了24個(gè)狀態(tài)響應(yīng)碼驮瞧,如409(Conflict)表示請(qǐng)求的資源與資源的當(dāng)前狀態(tài)發(fā)生沖突氓扛;410(Gone)表示服務(wù)器上的某個(gè)資源被永久性的刪除。

接口測(cè)試以及用例編寫

<meta charset="utf-8">

11.1 接口

11.1.1 接口概述

定義:接口就是API(Application Programming Interface论笔,應(yīng)用程序接口)采郎,是一個(gè)軟件或服務(wù)對(duì)外提供的接口,別人只要調(diào)用這接口狂魔,而內(nèi)部如何實(shí)現(xiàn)蒜埋,不需要關(guān)心窖维。你只要按照要求進(jìn)行接口調(diào)用即可议惰。
外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各子系統(tǒng)之間的交互點(diǎn)。包括外部接口勉失、內(nèi)部接口管嬉。

舉例:
假設(shè)物流中“貨物”是數(shù)據(jù),存放貨物的“總倉(cāng)庫(kù)”是數(shù)據(jù)庫(kù)朗鸠,“店鋪”是我們的網(wǎng)站蚯撩、App。頁(yè)面上顯示的內(nèi)容烛占、數(shù)字胎挎,以及用戶的操作請(qǐng)求和結(jié)果都是需要不停搬運(yùn)的“貨物”——數(shù)據(jù)沟启,則負(fù)責(zé)調(diào)配分配打包的中轉(zhuǎn)站就是API,快遞小哥直接從中轉(zhuǎn)站取貨就好犹菇。

作用:對(duì)于軟件提供商來說德迹,留出API,讓別的應(yīng)用程序來調(diào)用揭芍,軟件才能發(fā)揮最大的價(jià)值胳搞,才能更有生命力。(同時(shí)別人也看不見代碼称杨,不傷害商業(yè)機(jī)密肌毅。)
對(duì)于應(yīng)用開發(fā)者來說,有了開放的API姑原,就可以直接調(diào)用多家公司做好的功能來做自己的應(yīng)用悬而,不需要所有的事情都自己操刀,節(jié)省精力锭汛。

11.1.2 接口的表現(xiàn)形式

客戶端要先操作服務(wù)端資源笨奠,首先要找到服務(wù)端提供的接口,然后才能向服務(wù)端發(fā)送資源請(qǐng)求唤殴,那么何為服務(wù)端接口呢般婆?其實(shí)就是一個(gè)地址(URL),比如:

http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1

image
  1. 采用的協(xié)議(http:):一般來講網(wǎng)址中第一個(gè)“:”前面的就是該網(wǎng)址所采用的協(xié)議眨八。這里的HTTP就是個(gè)協(xié)議 腺兴。HTTPS是HTTP的安全版本,HTTPS在HTTP的基礎(chǔ)對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行了加密和簽名廉侧,以保證數(shù)據(jù)傳輸?shù)陌踩砸诚臁N覀兤匠4蜷_兩頁(yè)的時(shí)候會(huì)看到網(wǎng)址前面都有一個(gè)HTTP或HTTPS,這就是告訴你段誊,你在向服務(wù)器發(fā)送此請(qǐng)求的過程中要遵循的協(xié)議是HTTP或HTTPS (也就是規(guī)則)闰蚕。
  2. 服務(wù)器地址(//www.qubaobei.com)以雙斜杠“//”開頭,后面跟的就是這個(gè)服務(wù)器的地址连舍,專業(yè)術(shù)語(yǔ)叫域名没陡。
  3. 請(qǐng)求資源路徑(/ios/cf/dish_list.php) :表示你要請(qǐng)求的資源在該服務(wù)器下/ios/cf/dish_list.php的路徑下。
  4. 參數(shù)(?stage_id=1&limit=20&page=1):參數(shù)可以找到具體內(nèi)容索赏,和路徑之間使用“?”隔開盼玄,參數(shù)之間使用“&”隔開。參數(shù)是以鍵值對(duì)的形式表現(xiàn)出來的潜腻。

把此URLhttp://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1稱為食品模塊個(gè)接口埃儿, 也稱為接口地址。

11.2 接口文檔

接口文檔展示

11.2.1 封皮

封面最好是本公司規(guī)定的封面融涣,有l(wèi)ogo童番,內(nèi)容標(biāo)題精钮,版本號(hào),公司名稱剃斧,文檔產(chǎn)生
日期轨香。(錯(cuò)誤地方在于,文檔的標(biāo)題要和頁(yè)眉中的標(biāo)題一致)

11.2.2 修訂歷史

表格形式較好些幼东。包括:
版本臂容,修訂說明,修訂日期筋粗,修訂人策橘,審核時(shí)間,審核人娜亿。

11.2.3 接口信息

接口調(diào)用方式丽已,是post方式還是get方式,接口地址买决,別人需要線上的哪個(gè)地址就寫哪個(gè)沛婴。(自己提前測(cè)試好線上的這個(gè)接口,是否有其他問題督赤,千萬別犯低級(jí)的錯(cuò)誤嘁灯,尤其是某個(gè)字母寫錯(cuò))

11.2.4 功能描述

一定要清晰的描述接口功能。(不要遺漏一些細(xì)節(jié)躲舌,比如接口獲取的信息不包括哪些丑婿,哪些要寫明白)

11.2.5 接口參數(shù)說明

每個(gè)參數(shù)都要和實(shí)際中調(diào)用的一樣,包括大小寫没卸;參數(shù)的含義言簡(jiǎn)意賅的說明羹奉;格式是string 還是int 還是long等格式(例如參數(shù)為@RequestParam("appKey") StringappKey, @RequestParam("randomId") Integer randomId);說明部分约计,說明參數(shù)值是需要哪個(gè)公司提供诀拭,并詳細(xì)說明參數(shù)怎么生成的,例如時(shí)間戳煤蚌,是哪個(gè)時(shí)間段的耕挨;參數(shù)是否必填,一些參數(shù)是必須要有的尉桩,有些是可選參數(shù)筒占,一定要注意寫清晰。

11.2.6 返回值說明

1蜘犁、有一個(gè)模板返回值翰苫,并說明每個(gè)返回參數(shù)的意義。
2沽瘦、提供一個(gè)真實(shí)的調(diào)用接口革骨,真實(shí)的返回值。
注:現(xiàn)實(shí)工作中析恋,對(duì)接口有疑問要及時(shí)跟同事交流良哲。

11.3 接口測(cè)試的概念

11.3.1 概念

測(cè)試系統(tǒng)組件間接口的一種測(cè)試。接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)助隧。

11.3.2 接口測(cè)試本質(zhì)

實(shí)質(zhì)就是數(shù)據(jù)的傳輸和接受筑凫,傳輸?shù)氖墙涌诘刂分械膮?shù),接受的是文本字符串并村,然后對(duì)比文本字符串是否正確巍实。

11.4 接口測(cè)試的目的和原理

11.4.1 目的

測(cè)試接口的正確性和穩(wěn)定性。

11.4.2 原理

接口測(cè)試的原理是通過測(cè)試程序模擬客戶端向服務(wù)器發(fā)送請(qǐng)求報(bào)文哩牍,服務(wù)器接收請(qǐng)求報(bào)文后對(duì)相應(yīng)的報(bào)文做出處理然后再把應(yīng)答報(bào)文發(fā)送給客戶端棚潦,客戶端接收應(yīng)答報(bào)文這一個(gè)過程。

11.5 常用接口測(cè)試工具

11.5.1 典型商業(yè)工具:

  1. LoadRunner(LR):一款商業(yè)性能測(cè)試工具膝昆,用來做接口測(cè)試丸边,很好很強(qiáng)大 ,但是配置比較麻煩荚孵。
  2. SoapUI:開源測(cè)試工具妹窖,通過soap/http來檢查、調(diào)用收叶、實(shí)現(xiàn)Web Service的功能/負(fù)載/符合性測(cè)試骄呼;該工具既可作為一個(gè)單獨(dú)的接口測(cè)試工具使用,也可利用插件集成到Eclipse判没,maven2.X蜓萄,Netbeans 和intellij中使用。 了解就可以了哆致,基本已經(jīng)不用了绕德。

11.5.2 典型開源工具

Jmeter :一款開源的接口測(cè)試工具,操作簡(jiǎn)單摊阀,方便耻蛇,既有jdbc request操作數(shù)據(jù)庫(kù)數(shù)據(jù),也有http request和soap request應(yīng)對(duì)測(cè)試

13.5.3 擴(kuò)展插件

postman:谷歌瀏覽器的擴(kuò)展工具胞此,主要用來做接口測(cè)試臣咖,谷歌商店中選中安裝,界面同poster差別不大漱牵,界面簡(jiǎn)潔夺蛇。
<meta charset="utf-8">

13.6 接口測(cè)試應(yīng)該測(cè)什么

13.6.1 單一接口

單一接口功能的測(cè)試主要測(cè)試返回的數(shù)據(jù)結(jié)構(gòu)是否和接口文檔給出的一致,接口的正常功能是否完成,接口的參數(shù)檢查測(cè)試赡矢,接口的異常測(cè)試。

13.6.2 組合接口

定義:組合接口測(cè)試主要是通過組合多個(gè)單一接口斥滤,來測(cè)試一個(gè)業(yè)務(wù)場(chǎng)景
案例:測(cè)試購(gòu)物網(wǎng)站的一個(gè)下單的功能甚脉,那么因?yàn)樵谙聠沃斑€有一些流程丸升,所以要測(cè)試一個(gè)場(chǎng)景。
測(cè)試:搜索商品 --> 選中商品 --> 添加進(jìn)購(gòu)物車 --> 提交訂單 -->支付
(提交訂單時(shí)還涉及到地址的選取等)
注:涉及到如果使用從cookie或者session在本例中的區(qū)別:如果使用cookie加入購(gòu)物車牺氨,那么換一臺(tái)電腦購(gòu)物車?yán)锏纳唐肪筒淮嬖诹私瞥埽绻褂玫氖莝ession,購(gòu)物車?yán)锩娴臇|西就一直存在猴凹,即:cookie是本機(jī)作用的夷狰,session不止于本機(jī)作用。

13.6.3 結(jié)構(gòu)檢查

(1)檢查返回值的結(jié)構(gòu)是否正確郊霎,如是json類型還是xml類型的數(shù)據(jù)
(2)字段名稱是否正確等
XML和JSON都使用結(jié)構(gòu)化方法來標(biāo)記數(shù)據(jù)

13.7 接口測(cè)試內(nèi)容

13.7.1 功能邏輯

通過查數(shù)據(jù)庫(kù)或緩存等驗(yàn)證數(shù)據(jù)是否處理正確沼头。
通過其他輔助途徑進(jìn)行驗(yàn)證

13.7.2 異常測(cè)試

接口測(cè)試中主要測(cè)試接口正常邏輯,但僅邏輯測(cè)試不能保證數(shù)據(jù)的安全及程序接口在異常情況下的邏輯處理的正確性书劝。

13.7.3 路徑測(cè)試

當(dāng)被測(cè)接口的實(shí)現(xiàn)方法中瘫证,判斷邏輯復(fù)雜分支多,且判斷中又調(diào)用了其他的接口庄撮,此時(shí)必須要進(jìn)行路徑覆蓋測(cè)試背捌。

13.7.4 其他異常場(chǎng)景

研發(fā)的項(xiàng)目,有些項(xiàng)目是底層使用的系統(tǒng)洞斯,根據(jù)項(xiàng)目特點(diǎn)毡庆,可能會(huì)存在特殊的異常場(chǎng)景。
例如: 支付的異步操作烙如,支付消息重試等

11.8 測(cè)試案例

11.8.1 get請(qǐng)求

11.8.2 post請(qǐng)求

13.9 接口測(cè)試用例模板

image

抓包工具的安裝與使用 Charles Fiddler

<meta charset="utf-8">

一么抗、抓包概述

1. 抓包概念

抓包是將網(wǎng)絡(luò)傳輸發(fā)送與接收的數(shù)據(jù)包進(jìn)行截獲、重發(fā)亚铁、編輯蝇刀、轉(zhuǎn)存等操作,也用來檢查網(wǎng)絡(luò)安全等徘溢。下面小編就介紹幾種抓包軟件吞琐。

2. 常見抓包工具

Charles、fiddler然爆、wireShark

軟件名稱 簡(jiǎn)介 獨(dú) 立運(yùn)行 支持移動(dòng)設(shè)備 是否收費(fèi)
Fiddler 免費(fèi)的HTTP查看工具站粟,系統(tǒng)代理,工作在應(yīng)用層
Charles HTTP代理曾雕、HTTP監(jiān)控奴烙、HTTP反代理、查看HTTP通訊、查看工作信息工具 收費(fèi)版/免費(fèi)版
Wireshark 半免費(fèi)切诀,網(wǎng)絡(luò)抓包揩环、監(jiān)聽網(wǎng)卡,工作在網(wǎng)絡(luò)接口層
HttpWatch 集成到IE幅虑、Chrome中的網(wǎng)頁(yè)數(shù)據(jù)分析工具 基礎(chǔ)版/專業(yè)版
BurpSuite Http代理检盼。是用于攻擊web應(yīng)用程序的集成平臺(tái),包含了許多工具:抓包翘单、掃漏、爆破等蹦渣。黑客必備工具之一

測(cè)試為什么要學(xué)習(xí)Charles抓包哄芜?

  1. 能夠使用Charles來分析前后端問題
  2. 能夠使用Charles模擬弱網(wǎng)測(cè)試環(huán)境
  3. 能夠使用Charles的斷點(diǎn)構(gòu)建異常的測(cè)試場(chǎng)景

一、Charles簡(jiǎn)介

1. 什么是Charles

  • Charles中文名字青花瓷柬唯,是一款Http代理服務(wù)器和Http監(jiān)視器认臊,當(dāng)移動(dòng)端在無線網(wǎng)連接中按要求設(shè)置好代理服務(wù)器,使所有對(duì)網(wǎng)絡(luò)的請(qǐng)求都經(jīng)過Charles客戶端來轉(zhuǎn)發(fā)時(shí)锄奢,Charles可以監(jiān)控這個(gè)客戶端各個(gè)程序所有連接互聯(lián)網(wǎng)的Http通信失晴。
  • 特點(diǎn):跨平臺(tái)、半免費(fèi)
  • 免費(fèi)版本:一是啟動(dòng)等待十秒才能啟動(dòng)拘央,二是半小時(shí)重啟一次

2. Charles工作原理

2.1 原理

截獲真實(shí)客戶端的HTTPS請(qǐng)求涂屁,偽裝客戶端向真實(shí)服務(wù)端發(fā)送HTTPS請(qǐng)求
接受真實(shí)服務(wù)器響應(yīng),用Charles自己的證書偽裝服務(wù)端向真實(shí)客戶端發(fā)送數(shù)據(jù)內(nèi)容

2.2 原理圖
image
2.3 原理案例

租房子 房客 中介 房東
前置步驟:
(1)需要運(yùn)行Charles并配置代理
(2)在客戶端上面需要配置代理
步驟:
(1)有客戶端發(fā)送請(qǐng)求
(2)Charles接受再發(fā)送給服務(wù)端
(3)服務(wù)端返回請(qǐng)求結(jié)果給Charles
(4)由Charles轉(zhuǎn)發(fā)給客戶端

3. Charles主要功能

  • 支持HTTP/HTTPS代理
  • 支持流量控制
  • 支持接口并發(fā)請(qǐng)求
  • 支持重發(fā)網(wǎng)絡(luò)請(qǐng)求灰伟,方便后端調(diào)試
  • 支持?jǐn)帱c(diǎn)調(diào)試
  • 支持修改網(wǎng)絡(luò)請(qǐng)求參數(shù)
  • 支持網(wǎng)絡(luò)請(qǐng)求的截獲并動(dòng)態(tài)修改
  • 支持模擬慢速網(wǎng)絡(luò)

4. Charles優(yōu)點(diǎn)(相對(duì)Fiddler)

  • Charles能夠支持Linux拆又、macOS,fiddler不支持
  • Charles支持按域名和按接口查看報(bào)文栏账,簡(jiǎn)潔明了
  • Charles支持反向代理帖族,fiddler不支持
  • Charles網(wǎng)絡(luò)限速可選擇網(wǎng)絡(luò)類型,選擇3G挡爵、4G竖般、5G等
  • Charles可以解析AMF協(xié)議,一般用不到

二 茶鹃、安裝與配置

1. Charles安裝

官網(wǎng)下載:官網(wǎng)

image

雙擊涣雕,下一步即可

image

2. Charles組件介紹

image
image

校驗(yàn)是否符合w3c標(biāo)準(zhǔn)。

image
image

3. Charles設(shè)置

3.1 代理設(shè)置
image
image
3.2 Charles訪問控制
image
image

4. 客戶端設(shè)置

4.1 Windows代理設(shè)置
image

http://ihrm-test.itheima.net/

4.2 Android手機(jī)代理設(shè)置(見3.1)

三闭翩、實(shí)戰(zhàn)

3.1 抓取移動(dòng)設(shè)備發(fā)送的Http請(qǐng)求

  1. 先將移動(dòng)設(shè)備連接到Charles客戶端胞谭。首先在電腦中輸入cmd打開命令行窗口,輸入ipconfig查看本機(jī)連接無線網(wǎng)絡(luò)的IP地址男杈,這個(gè)地址作為移動(dòng)設(shè)備連接Charles客戶端的代理地址

    image
  2. 打開Charles客戶端丈屹,點(diǎn)擊Proxy->Proxy Settings菜單,可以設(shè)置移動(dòng)設(shè)備連接到Charles的端口(8888),這樣移動(dòng)設(shè)備代理配置需要的ip地址和端口號(hào)都有了旺垒。

    image
  3. 打開手機(jī)wifi彩库,設(shè)置所連接的wifi的代理網(wǎng)絡(luò);wifi代理設(shè)置為手動(dòng)先蒋,代理的服務(wù)器ip填寫上一步驟中查看到的電腦ip骇钦,端口填寫上一步驟提到的charles的服務(wù)端口:

    image
    image

注意:
①移動(dòng)設(shè)備配置之后,第一次通過手機(jī)訪問手機(jī)中的發(fā)送請(qǐng)求時(shí)竞漾,Charles會(huì)彈出提示框眯搭,提示有設(shè)備嘗試連接到Charles,是否允許业岁,如果不允許的話鳞仙,手機(jī)發(fā)送請(qǐng)求失敗,點(diǎn)擊Allow允許笔时,這樣這個(gè)設(shè)備的IP地址就會(huì)添加到允許列表中棍好,如果錯(cuò)誤點(diǎn)擊了Deny可以重啟Charles會(huì)再此提示,或者通過Proxy->Access Control Settings手動(dòng)添加地址允耿,如果不想每個(gè)設(shè)備連接Charles都要點(diǎn)擊允許的話借笙,可以添加0.0.0.0/0允許所有設(shè)備連接到Charles。
②手機(jī)與電腦必須連接同一個(gè)WiFi
③不要勾選Proxy → SSL Proxying setting 中的Enable SSL Proxying
④Charles是通過將自己設(shè)置成代理服務(wù)器來完成抓包的较锡,勾選系統(tǒng)代理后业稼,本地系統(tǒng)(如果通過瀏覽器發(fā)送請(qǐng)求)發(fā)送出去的請(qǐng)求都能被截取下來。因此蚂蕴,如果想只抓取手機(jī)APP發(fā)送的請(qǐng)求的話盼忌,可以不勾選WindowsProxy選項(xiàng),這樣在測(cè)試時(shí)就不會(huì)被本機(jī)Http請(qǐng)求所干擾掂墓。

image

⑤如果想要抓取瀏覽器發(fā)送的請(qǐng)求包谦纱,勾選WindowsProxy選項(xiàng)之后還是抓取失敗,可能是瀏覽器沒有設(shè)置成使用系統(tǒng)的代理服務(wù)器君编,只要設(shè)置成使用系統(tǒng)的代理服務(wù)器跨嘉,或者將瀏覽器的代理服務(wù)器設(shè)置成127.0.0.1:8888也可以成功。

  1. 啟動(dòng)手機(jī)吃嘿,打開軟件祠乃,就可以進(jìn)行聯(lián)網(wǎng)抓包測(cè)試
    Charles提供兩種查看封包的頁(yè)簽,一個(gè)是Structure(結(jié)構(gòu))兑燥,另一個(gè)是Sequence(序列)亮瓷,Structure用來將訪問請(qǐng)求按訪問的域名分類,Sequence用來將請(qǐng)求按訪問的時(shí)間排序降瞳。任何程序都可以在Charles中的Structure窗口中看到訪問的域名嘱支。

    image

<meta charset="utf-8">

四蚓胸、證書安裝

1. 為什么要安裝證書

我們以前抓包都是抓取的是HTTP的請(qǐng)求,如果抓取HTTPS就會(huì)亂碼除师,并不是沒有抓取到沛膳,見下圖:

image

怎么解決呢?安裝證書

2. Windows證書安裝

image
image
image
image
image
image
image

3. Charles證書導(dǎo)出

1汛聚、打開charles
2锹安、選擇help-ssl proxying
3、save
4倚舀、選擇存放路徑以及證書名

4. charls證書導(dǎo)入

IE瀏覽器:設(shè)置 → Internet選項(xiàng) → 內(nèi)容 → 證書 → 導(dǎo)入 → 下一步 → 選擇證書 → 選擇所有證書都放入下列存儲(chǔ)(P) → 瀏覽叹哭,選擇“受信任的根證書頒發(fā)機(jī)構(gòu)” → 下一步 → 完成。
chrome瀏覽器:設(shè)置 → 管理證書(安全) → 導(dǎo)入 → 下一步 → 選擇證書 → 選擇所有證書都放入下列存儲(chǔ)(P) → 瀏覽痕貌,選擇“受信任的根證書頒發(fā)機(jī)構(gòu)” → 下一步 → 完成风罩。

<meta charset="utf-8">

5. Chales HTTPS代理配置

證書安裝之后發(fā)現(xiàn)還是亂碼和unknown,需要配置代理

image
image

五竹挡、Charles常用功能

1. 過濾不必要的網(wǎng)絡(luò)包

在抓取手機(jī)發(fā)送的請(qǐng)求時(shí)抄罕,有許多請(qǐng)求包是對(duì)圖片等不需要關(guān)注的資源的請(qǐng)求,我們只想對(duì)指定目錄服務(wù)器上發(fā)送的請(qǐng)求進(jìn)行抓取,這時(shí)候就可以通過過濾網(wǎng)絡(luò)包的方式實(shí)現(xiàn)乳附。有兩種實(shí)現(xiàn)方式:
1)選擇Proxy->Recording Settings菜單,然后在include欄添加需要抓取包的指定服務(wù)器請(qǐng)求協(xié)議箱残、地址求妹、端口號(hào),也可以在exclude欄添加不抓取包的地址汹忠。

image
image

include:能抓取到的
exclude:不能抓取到的
2)在主界面的中部的 Filter 欄中填入需要過濾出來的關(guān)鍵字淋硝。例如我們的服務(wù)器的地址是:http://blog.csdn.net, 那么只需要在 Filter 欄中填入 csdn 即可。
注意:通常情況下宽菜,我們使用方法一做一些臨時(shí)性的封包過濾谣膳,使用方法二做一些經(jīng)常性的封包過濾。

2. 斷點(diǎn)替換/修改數(shù)據(jù)

2.1. 斷點(diǎn)的作用:用來構(gòu)建異常的測(cè)試場(chǎng)景

2.2. 步驟:

方式一:

  1. 右擊接口鏈接铅乡,選擇“BreakPoints”

    image
  2. 在瀏覽器刷新對(duì)應(yīng)接口的頁(yè)面

  3. 此時(shí)會(huì)自動(dòng)跳轉(zhuǎn)到Charles并顯示出接口請(qǐng)求信息

  4. 點(diǎn)擊“Edit Request”继谚,修改請(qǐng)求信息,點(diǎn)擊“Execute”

    image
  5. 點(diǎn)擊“Edit Response”

  6. 在數(shù)據(jù)格式蘭中選擇合適的顯示格式阵幸,比如“json”

  7. 修改對(duì)應(yīng)的數(shù)據(jù)花履,點(diǎn)擊“Execute”

  8. 回到瀏覽器查看數(shù)據(jù)應(yīng)該為修改之后的response的信息
    方式二:

  • Proxy → Breakpoint settings...中手動(dòng)新建/啟用某個(gè)斷點(diǎn);
    要求勾選enable breakpoints之后當(dāng)下次再有該請(qǐng)求時(shí),會(huì)自動(dòng)進(jìn)入斷點(diǎn)模式

    image
    image
  • 新建斷點(diǎn)

    image

    <meta charset="utf-8">

3. 模擬慢網(wǎng)速

  • 為什么要做模擬慢網(wǎng)速
    不是所有的地方網(wǎng)絡(luò)都好,所以要模擬慢網(wǎng)速挚赊。主要用在App端诡壁,因?yàn)镻C一般都是寬帶聯(lián)網(wǎng),而App哪里都有可能去荠割。比如妹卿,測(cè)試上廁所

    image

4. 壓測(cè)服務(wù)器

依次點(diǎn)擊tools—Repeat Advanced
選擇好并發(fā)線程數(shù)和打壓次數(shù),點(diǎn)擊ok就能進(jìn)行對(duì)產(chǎn)品的GET和POST請(qǐng)求進(jìn)行測(cè)試服務(wù)器并發(fā)處理的性能,當(dāng)然這里只是簡(jiǎn)單的進(jìn)行壓測(cè)纽帖,并且只能對(duì)Charles抓到的http協(xié)議的請(qǐng)求進(jìn)行重復(fù)并發(fā)宠漩,缺點(diǎn)就是如TCP類的抓不到的就不能了,算是個(gè)小小的缺陷吧懊直。

image

5 . 模擬404

1扒吁、tools——>blacklist

image

2、 允許啟用黑名單功能室囊,選擇接口返回錯(cuò)誤的形式(404 或者403)雕崩,添加接口地址并保存

image

【blocking connection】 選項(xiàng)可以選擇“drop connection”或者 “403 respose”.前者接口會(huì)直接返回404錯(cuò)誤,后者接口返回403錯(cuò)誤
3融撞、 選中需要返回404/403的接口,點(diǎn)擊【ok】

image

Charles破解
<meta charset="utf-8">

14.1 Fiddler簡(jiǎn)介

14.1.1 簡(jiǎn)介

Fiddler是位于客戶端和服務(wù)器端之間的代理盼铁,也是目前最常用的抓包工具之一 。它能夠記錄客戶端和服務(wù)器之間的所有請(qǐng)求尝偎,可以針對(duì)特定的請(qǐng)求饶火,分析請(qǐng)求數(shù)據(jù)、設(shè)置斷點(diǎn)致扯、調(diào)試web應(yīng)用肤寝、修改請(qǐng)求的數(shù)據(jù),甚至可以修改服務(wù)器返回的數(shù)據(jù)抖僵,功能非常強(qiáng)大鲤看,是web調(diào)試的利器。

14.1.2 功能

1耍群、能夠監(jiān)聽http/httpS的流量义桂,可以截獲從瀏覽器或者客戶端軟件向服務(wù)器發(fā)送的http/https請(qǐng)求;
2蹈垢、對(duì)截獲之后的請(qǐng)求慷吊,我們還能夠查看請(qǐng)求中的內(nèi)容;
3曹抬、偽造請(qǐng)求罢浇。不僅可以偽造客戶端的請(qǐng)求,還能夠偽造服務(wù)器的響應(yīng)沐祷∪卤眨——該功能能夠方便我們進(jìn)行前后端的調(diào)式。
4赖临、測(cè)試網(wǎng)站的性能胞锰;
5、解密https的外部會(huì)話兢榨。因?yàn)閔ttps本身是一種加密的協(xié)議嗅榕,通過fiddle我們可以進(jìn)行解密操作顺饮;
6、提供第三方擴(kuò)展插件凌那,滿足更多需求兼雄。

14.1.3 Fiddler工作原理

image

14.2 Fiddler下載安裝

14.3 Fiddler界面介紹

image

Fiddler界面從上到下分為:菜單欄、工具欄帽蝶、回話列表赦肋、功能頁(yè)簽、命令行励稳,狀態(tài)欄六大板塊

14.4 菜單欄

14.4.1File菜單

1佃乘、Capture Traffic:可以控制是否把Fiddler注冊(cè)為系統(tǒng)代理。
2驹尼、New Viewer:打開一個(gè)新的fiddler窗口
3趣避、Load Archive:用于重新加載之前捕獲的以SAZ文件格式保存的數(shù)據(jù)包。
4新翎、Save:支持以多種方式把數(shù)據(jù)包保存到文件中程帕。
5、Import Sessions...:支持導(dǎo)入從其他工具捕獲的數(shù)據(jù)包地啰,也支持導(dǎo)入以其他格式存儲(chǔ)的數(shù)據(jù)包愁拭。
6、Export Sessions...:把Fiddler捕捉到的回話以多種文件格式保存髓绽。
7敛苇、Exit:取消把Fiddler注冊(cè)為系統(tǒng)代理妆绞,并關(guān)閉Fiddler

14.4.2 Edit菜單

1顺呕、Copy:復(fù)制會(huì)話。
2括饶、Remove:刪除會(huì)話株茶。
3、Select All:選擇所有會(huì)話图焰。
4启盛、Undelete:撤銷刪除會(huì)話。
5技羔、Paste as Session把剪貼板上的內(nèi)容粘貼成一個(gè)或多個(gè)模擬的會(huì)話僵闯。
6、Mark:選擇一種顏色標(biāo)記選中會(huì)話藤滥。
7鳖粟、Unlock for Editing 解鎖會(huì)話。
8拙绊、Find Session...打開Find Session窗口向图,搜索捕獲到的數(shù)據(jù)包泳秀。

14.4.3 Rules菜單

1、Hide Image Request:隱藏圖片回話榄攀。
2嗜傅、Hide CONNECTS:隱藏連接通道回話。
3檩赢、Automatic Breakpoints:自動(dòng)在[請(qǐng)求前]或[響應(yīng)后]設(shè)置斷點(diǎn)吕嘀。Ignore Image觸發(fā)器控制這些斷點(diǎn)是否作用于圖片請(qǐng)求。
4漠畜、Customize Rules...:打開Fiddler腳本編輯窗口币他。
5、Require Proxy Authentication:憔狞,要求客戶端安裝證書蝴悉。該規(guī)則可以用于測(cè)試HTTP客戶端,確保所有未提交Proxy-Authorization請(qǐng)求頭的請(qǐng)求會(huì)返回HTTP/407響應(yīng)碼瘾敢。
6拍冠、Apply GZIP Encoding:只要請(qǐng)求包含具有g(shù)zip標(biāo)識(shí)的Accept-Encoding請(qǐng)求頭,就會(huì)對(duì)所有響應(yīng)使用GZIP HTTP進(jìn)行壓縮(圖片請(qǐng)求除外)簇抵。
7庆杜、Remove All Encoding:刪除所有請(qǐng)求和響應(yīng)的HTTP內(nèi)容編碼和傳輸編碼
8、Hide 304s:隱藏響應(yīng)為HTTP/304 Not Modified狀態(tài)的所有回話碟摆。
9晃财、Request Japanese Content:選項(xiàng)會(huì)把所有請(qǐng)求的Accept-Encoding請(qǐng)求頭設(shè)置或替換為ja標(biāo)識(shí),表示客戶端希望響應(yīng)以日語(yǔ)形式發(fā)送典蜕。
10断盛、User-Agents:把所有請(qǐng)求的User-Agent請(qǐng)求頭設(shè)置或替換成指定值。
11愉舔、performance:模擬弱網(wǎng)測(cè)試速度钢猛。

14.4.4 Tools菜單

1、Options...:打開Fiddler選項(xiàng)窗口轩缤。
2命迈、WinINET Options...打開IE的Internet屬性窗口
3、Clear WinINET Cache:清空IE和其他應(yīng)用中所使用的WinINET緩存中的所有文件火的。
4壶愤、Clear WinINET Cookies:清空IE和其他應(yīng)用中所發(fā)送的WinINET Cookie
5、TextWizard...:選項(xiàng)會(huì)啟動(dòng)TextWizard窗口馏鹤,對(duì)文本進(jìn)行編碼和解碼征椒。
6、Compare Session:比較回話假瞬。
7陕靠、Reset Script:重置Fiddler腳本迂尝。
8、Sandbox:打開http://webdbg.com/sandbox/
9剪芥、View IE Cache:打開IE緩存窗口鳖悠。

14.4.5 View菜單

1旬陡、Show Toolbar:控制Fiddler工具欄是否可見

2趣钱、Default Layout负乡、Stacked Layout、Wide Layout三種界面布局

3益兄、Minimize to Tray:最小化Fiddler到系統(tǒng)托盤(快捷鍵:CTRL+M )

4锻梳、Squish Session List:控制回話列表是否水平收縮。

5净捅、AutoScroll Session list:添加新的回話時(shí)疑枯,自動(dòng)滾動(dòng)到回話列表底部

14.5 工具欄

image

1.備注功能
2.重新發(fā)送請(qǐng)求,快捷鍵:R鍵蛔六。
3.刪除請(qǐng)求
4.當(dāng)有請(qǐng)求前斷點(diǎn)時(shí)荆永,點(diǎn)擊去發(fā)送請(qǐng)求。
5.流模式国章。(默認(rèn)是緩沖模式)
6.解碼
7.保持回話的數(shù)量具钥。
8.選擇你想要抓包或者監(jiān)聽的程序
9.查找
10.保存所有會(huì)話,文件名以.saz為擴(kuò)展名
11.截圖
12.計(jì)時(shí)器
13.快捷的打開IE瀏覽器

image

14.清除IE緩存
15.文本的編碼解碼工具
16.分離面板
17.MSDN查詢
18.本機(jī)的信息

14.6 會(huì)話列表

image

1.請(qǐng)求的ID編號(hào)
2.http響應(yīng)狀態(tài)碼
3.會(huì)話使用的協(xié)議
4.請(qǐng)求發(fā)送到的服務(wù)器主機(jī)名
5.數(shù)據(jù)包在服務(wù)器中的路徑和文件
6.響應(yīng)body的字節(jié)數(shù)
7.響應(yīng)頭信息Cache-Control的值
8液兽、響應(yīng)頭信息Content-Type的值
9.發(fā)起請(qǐng)求的本地windows進(jìn)程
10.注釋
11.自定義備注

14.7 功能頁(yè)簽

14.7.1 Statistics頁(yè)簽

通過該頁(yè)簽骂删,用戶可以通過選擇多個(gè)會(huì)話來得到這幾個(gè)會(huì)話的總的信息統(tǒng)計(jì),比如多個(gè)請(qǐng)求傳輸?shù)淖止?jié)數(shù)四啰。訪問頁(yè)面時(shí)選擇第一個(gè)請(qǐng)求和最后一個(gè)請(qǐng)求宁玫,可獲得整個(gè)頁(yè)面加載所消耗的總體時(shí)間。從條形圖表中還可以分別出哪些請(qǐng)求耗時(shí)最多拟逮,從而對(duì)頁(yè)面的訪問進(jìn)行速度性能優(yōu)化撬统。

14.7.2 inspectors頁(yè)簽(常用頁(yè)簽)

<meta charset="utf-8">

它提供headers适滓、textview敦迄、hexview,Raw等多種方式查看一條http請(qǐng)求的請(qǐng)求和響應(yīng),它分為上下兩部分:上部分為請(qǐng)求展示凭迹,下部分為響應(yīng)展示罚屋。

14.7.3 AutoResponse頁(yè)簽(常用頁(yè)簽)

它可以抓取在線頁(yè)面保存到本地進(jìn)行調(diào)試,大大減少了在線調(diào)試的困難嗅绸,可以讓我們修改服務(wù)器端返回的數(shù)據(jù)脾猛,例如讓返回都是404的數(shù)據(jù)包讀取本地文件作為返回內(nèi)容。

14.7.4 composer頁(yè)簽常用頁(yè)簽)

支持手動(dòng)構(gòu)建和發(fā)送HTTP鱼鸠,HTTPS和FTP請(qǐng)求猛拴,我們還可以從回話列表中拖曳回話羹铅,把它放到composer選項(xiàng)卡中,當(dāng)我們點(diǎn)擊Execute按鈕時(shí)則把請(qǐng)求發(fā)送到服務(wù)器端愉昆。

14.7.5 FiddlerScripts頁(yè)簽

打開Fiddler腳本編輯职员。
log頁(yè)簽:
打印日志

14.7.6 Filters頁(yè)簽(常用頁(yè)簽)

過濾器可以對(duì)左側(cè)的數(shù)據(jù)流列表進(jìn)行過濾,我們可以標(biāo)記跛溉、修改或隱藏某些特征的數(shù)據(jù)流焊切。

14.7.7 Timeline頁(yè)簽

時(shí)間軸,也稱為Fiddler的瀑布圖芳室,展示網(wǎng)絡(luò)請(qǐng)求時(shí)間的功能专肪。每個(gè)網(wǎng)絡(luò)請(qǐng)求都會(huì)經(jīng)歷域名解析、建立連接堪侯、發(fā)送請(qǐng)求嚎尤、接受數(shù)據(jù)等階段。把多個(gè)請(qǐng)求以時(shí)間作為X軸伍宦,用圖表的形式展現(xiàn)出來诺苹,就形成了瀑布圖。在左側(cè)會(huì)話窗口點(diǎn)擊一個(gè)或多個(gè)回話雹拄,Timeline 便會(huì)顯示指定內(nèi)容從服務(wù)端傳輸?shù)娇蛻舳说臅r(shí)間收奔。

14.7.8 命令行

help 打開官方的使用頁(yè)面介紹,所有的命令都會(huì)列出來滓玖。
cls 清屏 (Ctrl+x 也可以清屏)
select 選擇所有相應(yīng)類型的回話(如select image或select css)坪哄。
?sometext 查找字符串并高亮顯示查找到的會(huì)話。

size 選擇請(qǐng)求響應(yīng)大小小于size字節(jié)的會(huì)話势篡。
=status/=method/@host 查找狀態(tài)翩肌、方法、主機(jī)相對(duì)應(yīng)的會(huì)話
1uit 退出fiddler
bpafter xxx 中斷URL包含指定字符的全部回話響應(yīng)
bps xxx 中斷HTTP響應(yīng)狀態(tài)為指定字符的全部回話響應(yīng)禁悠。
bpv xxx 中斷指定請(qǐng)求方式的全部回話響應(yīng)
bpm xxx 中斷指定請(qǐng)求方式的全部回話響應(yīng)念祭。等同于bpv xxx
bpu xxx: 與bpafter類似。

14.8 狀態(tài)欄

image

1碍侦、顯示的Fiddler是否處于捕捉狀態(tài)(開啟/關(guān)閉狀態(tài)),可以點(diǎn)擊該區(qū)域切換
2粱坤、顯示當(dāng)前捕捉哪些進(jìn)程。
All Processes 捕獲所有進(jìn)程的請(qǐng)求
Web Browsers 捕獲 Web 瀏覽器的請(qǐng)求瓷产,應(yīng)該特指 IE
Non-Browser 捕獲非 Web 瀏覽器的請(qǐng)求
Hide All 隱藏所有請(qǐng)求
3站玄、顯示當(dāng)前斷點(diǎn)設(shè)置狀態(tài),通過鼠標(biāo)點(diǎn)擊切換濒旦。有三種:
不設(shè)置斷點(diǎn)
所有請(qǐng)求在斷點(diǎn)處被暫停
所有響應(yīng)在斷點(diǎn)處被暫停
4株旷,顯示當(dāng)前共捕獲了多少回話(如:300,表示共捕獲了300個(gè)會(huì)話尔邓,如:10/300晾剖,表示當(dāng)前選擇10個(gè)會(huì)話锉矢,共捕獲300個(gè)會(huì)話)。
5齿尽,第五區(qū)塊沈撞,描述當(dāng)前狀態(tài)。
如果是剛打開Fiddler雕什,會(huì)顯示什么時(shí)間加載了CustomRules.js缠俺;如果選擇了一個(gè)會(huì)話,會(huì)顯示該會(huì)話的URL贷岸;如果在命令行輸入一個(gè)命令壹士,就會(huì)顯示命令相關(guān)信息。

14.9 web抓包

我們雙擊打開軟件偿警,進(jìn)入到如下的一個(gè)界面躏救,然后點(diǎn)擊某一個(gè)請(qǐng)求,你會(huì)發(fā)現(xiàn)請(qǐng)求的內(nèi)容是一堆明顯不對(duì)的文字螟蒸,然后該請(qǐng)求的左邊是一個(gè)鎖的樣式盒使,聯(lián)想到https加密,你會(huì)發(fā)現(xiàn)原因可能是沒有配置Fiddler七嫌。然后解釋一下右邊的默認(rèn)返回內(nèi)容少办,第一句是“這是一個(gè)CONNECT隧道,加密的HTTPS流量通過該隧道流動(dòng)诵原∮⒓耍”,就證實(shí)了我們的猜測(cè)绍赛,果然是因?yàn)閔ttps加密的原因蔓纠。

image

那么如何配置FIddler來解析這些加密的請(qǐng)求呢?
方法一:是查官網(wǎng)的安裝文檔吗蚌,
方法二:看提示腿倚,軟件公司還是很人性化的在返回內(nèi)容里面提示了需要在哪里設(shè)置,就是第二行那一句:enable the Tools > Options > HTTPS > Decrypt HTTPS traffic option.
我們按照提示來進(jìn)行設(shè)置蚯妇,先在左上角的工具欄里面找到Tools敷燎,然后依次選擇Options、HTTPS 侮措,然后勾選Decrypt HTTPS traffic選項(xiàng)懈叹,勾選后安裝證書乖杠。

image

安裝證書兩種方法:

勾選后點(diǎn)擊右邊的Actions按鈕選擇“Trust Root Certificate”選項(xiàng)分扎,然后全部選擇是就行了。
勾選后點(diǎn)擊右邊的Actions按鈕選擇第二個(gè)選項(xiàng)將證書導(dǎo)出到桌面胧洒,然后再在對(duì)應(yīng)的瀏覽器里面添加即可畏吓。
然后我們?cè)俅蜷_一個(gè)新的網(wǎng)頁(yè)(例如百度)墨状,查看請(qǐng)求

至此,已經(jīng)可以監(jiān)聽PC端瀏覽器的請(qǐng)求了菲饼。

14.10 移動(dòng)端抓包

首先你的Fiddler所在的電腦和手機(jī)必須處在同一個(gè)局域網(wǎng)內(nèi)(即連著同一個(gè)路由器)肾砂。
查看你的本機(jī)IP地址,在Fiddler的右上角有一個(gè)Online按鈕宏悦,點(diǎn)擊一下會(huì)顯示你的IP信息
配置連接信息:Tools > Options >Connections

  • 端口默認(rèn)是8888镐确,你可以進(jìn)行修改。

  • 勾選Allow remote computers to connect選項(xiàng)饼煞,然后重啟Fiddler源葫,再次打開時(shí)會(huì)彈出一個(gè)信息,選擇ok即可砖瞧。

    image

    打開你的手機(jī)息堂,找到你所連接的WIFI,長(zhǎng)按選擇修改網(wǎng)絡(luò)块促,輸入密碼后往下拖動(dòng)荣堰,然后勾選顯示高級(jí)選項(xiàng),然后在代理一欄選擇手動(dòng)竭翠,再將你先前查看的IP地址和端口號(hào)輸入進(jìn)去振坚,然后保存。

    image

    最后安裝手機(jī)證書斋扰,在手機(jī)瀏覽器一欄輸入電腦的IP地址和端口號(hào)
    這里我是192.168.1.157:8888

    進(jìn)入一個(gè)網(wǎng)頁(yè)屡拨,點(diǎn)擊最下面那個(gè)FiddlerRoot certificate下載證書,下載成功后在設(shè)置里面安裝褥实,安裝步驟:打開高級(jí)設(shè)置->安全->從SD卡安裝證書->找到證書文件->點(diǎn)擊后為證書命名點(diǎn)擊確定即可安裝成功
    測(cè)試一下呀狼,比如在手機(jī)上打開抖音app,找到評(píng)論的那一個(gè)請(qǐng)求损离。

    image

    可以看到我們已經(jīng)成功的找到了評(píng)論所對(duì)應(yīng)的那個(gè)請(qǐng)求

Jmeter組件介紹

<meta charset="utf-8">

一. 性能測(cè)試

1.1. 性能測(cè)試是什么

1.1.1 廣義定義

基于協(xié)議模擬用戶發(fā)出請(qǐng)求哥艇,對(duì)服務(wù)器形成一定負(fù)載,來測(cè)試服務(wù)器的性能指標(biāo)是否滿足要求性能指標(biāo)關(guān)注點(diǎn):時(shí)間性能僻澎、空間性能性能測(cè)試與頁(yè)面無關(guān)

1.1.1 狹義定義

指通過自動(dòng)化的測(cè)試工具模擬多種正常貌踏、峰值以及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。

1.2. 性能測(cè)試工具

image

二. Jmeter簡(jiǎn)介

2.1. 我們?yōu)槭裁词褂肑meter

開源窟勃,免費(fèi)祖乳,基于Java編寫,可集成到其他系統(tǒng)可拓展各個(gè)功能插件
支持接口測(cè)試秉氧,壓力(負(fù)載和壓力)測(cè)試等多種功能眷昆,支持錄制回放认轨,
入門簡(jiǎn)單相較于自己編寫框架活其他開源工具誊抛,有較為完善的UI界面,便于接口調(diào)試
多平臺(tái)支持,可在Linux随珠,Windows归榕,Mac上運(yùn)行走芋,支持多協(xié)議

2.2. Jmeter的作用

  1. 接口測(cè)試 面試說postman陈症,因?yàn)榉奖愫糜谩?/li>
  2. 性能測(cè)試 jmeter,也可以用postman(runner)赖瞒,但是沒有性能指標(biāo)
  3. 數(shù)據(jù)庫(kù)測(cè)試

2.3. Jmeter怎么用

Windows下Jmeter下載安裝女揭,登錄 http://jmeter.apache.org/download_jmeter.cgi ,根據(jù)自己平臺(tái)栏饮,下載對(duì)應(yīng)文件

image

2.4. 安裝JAVA環(huán)境

安裝JDK田绑,配置環(huán)境變量(具體步驟不做介紹)

image

將下載Jmeter文件解壓,打開/bin/jmeter.bat

image
image

2.5. Jmeter的目錄結(jié)構(gòu)

image

/bin 目錄常用文件介紹:

examples:目錄下包含Jmeter使用實(shí)例
ApacheJMeter.jar:JMeter源碼包
jmeter.bat:windows下啟動(dòng)文件
jmeter.sh:Linux下啟動(dòng)文件
jmeter.log:Jmeter運(yùn)行日志文件
jmeter.properties:Jmeter配置文件
jmeter-server.bat:windows下啟動(dòng)負(fù)載生成器服務(wù)文件
jmeter-server:Linux下啟動(dòng)負(fù)載生成器文件
/docs目錄——Jmeter幫助文檔
/extras目錄——提供了對(duì)Ant的支持文件抡爹,可也用于持續(xù)集成
/lib目錄——存放Jmeter依賴的jar包掩驱,同時(shí)安裝插件也放于此目錄
/licenses目錄——軟件許可文件,不用管
/printable_docs目錄——Jmeter用戶手冊(cè)

三. 使用Jmeter測(cè)試快速入門

3.1. 線程組是什么

進(jìn)程: 一個(gè)正在執(zhí)行的程序?qū)?yīng)一個(gè)進(jìn)程
線程: 一個(gè)進(jìn)程有多個(gè)執(zhí)行線程
線程組:   按照線程性質(zhì)對(duì)線程分組冬竟。查看任務(wù)管理器(愛奇藝有多個(gè))
三者關(guān)系: 一個(gè)進(jìn)程有多個(gè)線程組欧穴,一個(gè)線程組有多個(gè)線程

測(cè)試計(jì)劃—線程組—線程組屬性中的線程數(shù)
并發(fā)執(zhí)行:多個(gè)線程同時(shí)執(zhí)行,特點(diǎn):執(zhí)行結(jié)束的順序與開始的順序不一致
順序執(zhí)行:按照線程的啟動(dòng)順序挨個(gè)執(zhí)行
默認(rèn)情況下泵殴,線程組中的線程是并發(fā)執(zhí)行
每一個(gè)線程都要執(zhí)行組內(nèi)的http請(qǐng)求
設(shè)置線程組順序執(zhí)行:勾選測(cè)試計(jì)劃中的(獨(dú)立運(yùn)行每個(gè)線程組)
線程組用來模擬用戶的并發(fā)訪問

3.1.1. 創(chuàng)建線程組

image

<meta charset="utf-8">

3.1.2. 線程組主要包含三個(gè)參數(shù):

線程數(shù)涮帘、準(zhǔn)備時(shí)長(zhǎng)(Ramp-Up Period(in seconds))、循環(huán)次數(shù)笑诅。

3.1.3. 線程數(shù):

虛擬用戶數(shù)调缨。一個(gè)虛擬用戶占用一個(gè)線程。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)吆你。

3.1.4. 準(zhǔn)備時(shí)長(zhǎng)(秒):

設(shè)置的虛擬用戶數(shù)需要多長(zhǎng)時(shí)間全部啟動(dòng)弦叶。如果線程數(shù)為20 ,準(zhǔn)備時(shí)長(zhǎng)為10 妇多,那么需要10秒鐘啟動(dòng)20個(gè)線程伤哺。也就是每秒鐘啟動(dòng)2個(gè)線程。

3.1.5. 循環(huán)次數(shù):

每個(gè)線程發(fā)送請(qǐng)求的次數(shù)者祖。如果線程數(shù)為20 立莉,循環(huán)次數(shù)為100 ,那么每個(gè)線程發(fā)送100次請(qǐng)求七问◎殉埽總請(qǐng)求數(shù)為20*100=2000 。如果勾選了“永遠(yuǎn)”械巡,那么所有線程會(huì)一直發(fā)送請(qǐng)求刹淌,一直到選擇停止運(yùn)行腳本饶氏。

3.1.6. 調(diào)度器

設(shè)置線程組啟動(dòng)的開始時(shí)間和結(jié)束時(shí)間(配置調(diào)度器時(shí),需要勾選循環(huán)次數(shù)為永遠(yuǎn))

3.1.7. 持續(xù)時(shí)間(秒)

測(cè)試持續(xù)時(shí)間芦鳍,會(huì)覆蓋結(jié)束時(shí)間

3.1.8. 啟動(dòng)延遲(秒)

測(cè)試延遲啟動(dòng)時(shí)間嚷往,會(huì)覆蓋啟動(dòng)時(shí)間

3.1.9. 啟動(dòng)時(shí)間

測(cè)試啟動(dòng)時(shí)間葛账,啟動(dòng)延遲會(huì)覆蓋它柠衅。當(dāng)啟動(dòng)時(shí)間已過,手動(dòng)只需測(cè)試時(shí)當(dāng)前時(shí)間也會(huì)覆蓋它籍琳。

3.1.10. 結(jié)束時(shí)間

測(cè)試結(jié)束時(shí)間菲宴,持續(xù)時(shí)間會(huì)覆蓋它。

image

3.2. 創(chuàng)建http請(qǐng)求

見得最多趋急,所以我們著重講解:

image

3.3. 指定請(qǐng)求域名喝峦,請(qǐng)求路徑

接口文檔講解

image
一個(gè)HTTP請(qǐng)求有著許多的配置參數(shù),下面將詳細(xì)介紹:
名稱:本屬性用于標(biāo)識(shí)一個(gè)取樣器呜达,建議使用一個(gè)有意義的名稱谣蠢。
注釋:對(duì)于測(cè)試沒有任何作用,僅用戶記錄用戶可讀的注釋信息查近。
服務(wù)器名稱或IP :HTTP請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱或IP地址眉踱。
端口號(hào):目標(biāo)服務(wù)器的端口號(hào)。
方法:發(fā)送HTTP請(qǐng)求的方法霜威,可用方法包括GET谈喳、POST、HEAD戈泼、PUT婿禽、OPTIONS、TRACE大猛、DELETE等扭倾。
Content encoding :內(nèi)容的編碼方式,默認(rèn)值為iso8859
路徑:目標(biāo)URL路徑(不包括服務(wù)器地址和端口)

點(diǎn)擊run測(cè)試挽绩,很麻煩吆录,我們使用postman測(cè)試更簡(jiǎn)單,使用postman操作琼牧。
可以使用剛才的接口文檔中的恢筝,聚合接口中演示一個(gè)。

3.4. 設(shè)置對(duì)應(yīng)的查看內(nèi)容

image

注意:如果監(jiān)聽器中有jp@gc開頭的巨坊,都是第三方插件

3.5. 查看表格信息

image
Sample:每個(gè)請(qǐng)求的序號(hào)
Start Time:每個(gè)請(qǐng)求開始時(shí)間
Thread Name:每個(gè)線程的名稱
Label:Http請(qǐng)求名稱
Sample Time:每個(gè)請(qǐng)求所花時(shí)間撬槽,單位毫秒
Status:請(qǐng)求狀態(tài),如果為勾則表示成功趾撵,如果為叉表示失敗侄柔。
Bytes:請(qǐng)求的字節(jié)數(shù)
樣本數(shù)目:也就是上面所說的請(qǐng)求個(gè)數(shù)共啃,成功的情況下等于你設(shè)定的并發(fā)數(shù)目乘以循環(huán)次數(shù)
平均:每個(gè)線程請(qǐng)求的平均時(shí)間
最新樣本:表示服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間
偏離:服務(wù)器響應(yīng)時(shí)間變化、離散程度測(cè)量值的大小暂题,或者移剪,換句話說,就是數(shù)據(jù)的分布薪者。

3.6. 查看結(jié)果樹

  • 請(qǐng)求的數(shù)據(jù)展示(請(qǐng)求頭信息纵苛,請(qǐng)求參數(shù),,)

    image
  • 響應(yīng)的數(shù)據(jù)展示(響應(yīng)碼,響應(yīng)頭,,)

    image

    通過察看結(jié)果樹言津,我們可以看到每個(gè)請(qǐng)求的結(jié)果攻人,其中紅色的是出錯(cuò)的請(qǐng)求,綠色的為通過悬槽。

Thread Name:線程組名稱
Sample Start: 啟動(dòng)開始時(shí)間
Load time:加載時(shí)長(zhǎng)
Latency:等待時(shí)長(zhǎng)
Size in bytes:發(fā)送的數(shù)據(jù)總大小
Headers size in bytes:發(fā)送數(shù)據(jù)的其余部分大小
Sample Count:發(fā)送統(tǒng)計(jì)
Error Count:交互錯(cuò)誤統(tǒng)計(jì)
Response code:返回碼
Response message:返回信息
Response headers:返回的頭部信息

3.7. 聚合報(bào)告參數(shù)說明

image
lable:對(duì)應(yīng)每一個(gè)http請(qǐng)求怀吻,顯示的是http請(qǐng)求的Name,如百度http請(qǐng)求name為baidu
#Samples:表示這一次的測(cè)試中一共發(fā)出了多少請(qǐng)求初婆,如上圖所示蓬坡,sougou和baidu的http請(qǐng)求每個(gè)都發(fā)出30個(gè)請(qǐng)求
Average:平均響應(yīng)時(shí)間,指的是所有的請(qǐng)求的平均響應(yīng)時(shí)間磅叛,如上圖的30個(gè)請(qǐng)求的總的響應(yīng)時(shí)間除以30得出的平均響應(yīng)時(shí)間屑咳,默認(rèn)的情況下是單個(gè)請(qǐng)求的平均響應(yīng)時(shí)間,但當(dāng)使用了“事務(wù)控制器”時(shí)宪躯,則以事物為單位顯示平均響應(yīng)時(shí)間
Median:中位數(shù)乔宿,也就是50%用戶的響應(yīng)時(shí)間
90%Line:90%用戶的響應(yīng)時(shí)間
Min:最小響應(yīng)時(shí)間
Max:最大的響應(yīng)時(shí)間
Error%:本次測(cè)試中出現(xiàn)錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù),如上圖所示访雪,本次的測(cè)試中详瑞,sougou的http請(qǐng)求66.6%的請(qǐng)求出錯(cuò),而baidu的請(qǐng)求則沒有出錯(cuò)的請(qǐng)求
Throughput:吞吐量臣缀,默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)坝橡,如上圖所示,每秒完成的請(qǐng)求數(shù)分別為6.6個(gè)每秒精置,6.2個(gè)每秒
Recived KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量计寇,以kb為計(jì)算的單位

掌握:平均時(shí)間、錯(cuò)誤率脂倦、吞吐量番宁。

<meta charset="utf-8">

3.8. 圖形結(jié)果

作用:通過圖形展示出本次性能測(cè)試數(shù)據(jù)的分布。 圖形結(jié)果一般作為聚合報(bào)告的分析輔佐

image
樣本數(shù)目:總共發(fā)送到服務(wù)器的請(qǐng)求數(shù)赖阻。
最新樣本:代表時(shí)間的數(shù)字蝶押,是服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間。
吞吐量:服務(wù)器每分鐘處理的請(qǐng)求數(shù)火欧。
平均值:總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請(qǐng)求數(shù)棋电。
中間值:有一半的服務(wù)器響應(yīng)時(shí)間低于該值而另一半高于該值茎截。
偏離:表示服務(wù)器響應(yīng)時(shí)間變化、離散程度測(cè)量值的大小赶盔。

四. Jmeter主要組件介紹

  1. 測(cè)試計(jì)劃:使用 JMeter 進(jìn)行測(cè)試的起點(diǎn)企锌,它是其它 JMeter 測(cè)試元件的容器。
  2. 線程組:代表一定數(shù)量的并發(fā)用戶于未,它可以用來模擬并發(fā)用戶發(fā)送請(qǐng)求撕攒。實(shí)際的請(qǐng)求內(nèi)容在Sampler中定義,它被線程組包含沉眶〈蛉矗可以在“測(cè)試計(jì)劃->添加->線程組”來建立它杉适,然后在線程組面板里有幾個(gè)輸入欄:線程數(shù)谎倔、Ramp-Up Period(in seconds)、循環(huán)次數(shù)猿推,其中Ramp-Up Period(in seconds)表示在這時(shí)間內(nèi)創(chuàng)建完所有的線程片习。如有8個(gè)線程,Ramp-Up = 200秒蹬叭,那么線程的啟動(dòng)時(shí)間間隔為200/8=25秒藕咏,這樣的好處是:一開始不會(huì)對(duì)服務(wù)器有太大的負(fù)載。線程組是為模擬并發(fā)負(fù)載而設(shè)計(jì)秽五。
  3. 取樣器(Sampler):模擬各種請(qǐng)求孽查。所有實(shí)際的測(cè)試任務(wù)都由取樣器承擔(dān),存在很多種請(qǐng)求坦喘。如:HTTP 盲再、ftp請(qǐng)求等等。
  4. 監(jiān)聽器:負(fù)責(zé)收集測(cè)試結(jié)果瓣铣,同時(shí)也被告知了結(jié)果顯示的方式答朋。功能是對(duì)取樣器的請(qǐng)求結(jié)果顯示、統(tǒng)計(jì)一些數(shù)據(jù)(吞吐量棠笑、KB/S……)等梦碗。
  5. 斷言:用于來判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望,是否正確蓖救。它可以用來隔離問題域洪规,即在確保功能正確的前提下執(zhí)行壓力測(cè)試。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的循捺。
  6. 邏輯控制器:允許自定義JMeter發(fā)送請(qǐng)求的行為邏輯斩例,它與Sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列。
  7. 定時(shí)器:負(fù)責(zé)定義請(qǐng)求(線程)之間的延遲間隔巨柒,模擬對(duì)服務(wù)器的連續(xù)請(qǐng)求樱拴。
  8. 配置元件維護(hù)Sampler需要的配置信息柠衍,并根據(jù)實(shí)際的需要會(huì)修改請(qǐng)求的內(nèi)容。
  9. 前置處理器和后置處理器負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作晶乔。前置處理器常常用來修改請(qǐng)求的設(shè)置珍坊,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)。

4.1. 測(cè)試計(jì)劃

image
1.測(cè)試計(jì)劃就是一個(gè)完整的場(chǎng)景
2.“獨(dú)立運(yùn)行每個(gè)線程組” :勾選以后所有的線程組都是順序執(zhí)行的了正罢。一般不勾選阵漏,讓所有 的線程組并發(fā)啟動(dòng)九默。
3.“函數(shù)測(cè)試模式” :勾選后會(huì)有詳細(xì)的請(qǐng)求記錄好渠,消耗資源,影響客戶端性能拼窥。一般不勾選裆泳。
4.用戶定義的變量:全局變量叹洲,測(cè)試計(jì)劃上可以添加用戶定義的變量。一般添加一些系統(tǒng)常用的配置工禾。如果測(cè)試過程中想切換環(huán)境运提,切換配置,一般不建議在測(cè)試計(jì)劃上添加變量

image

4.2. 線程組

image

(1)thread group(線程組)

這個(gè)就是我們通常添加運(yùn)行的線程闻葵。通俗的講一個(gè)線程組民泵,可以看做一個(gè)虛擬用戶組,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶槽畔。

(2)setup thread group

一種特殊類型的ThreadGroup的栈妆,可用于執(zhí)行預(yù)測(cè)試操作。這些線程的行為完全像一個(gè)正常的線程組元件厢钧。不同的是鳞尔,這些類型的線程執(zhí)行測(cè)試前進(jìn)行定期線程組的執(zhí)行;類似LoadRunner的init坏快,測(cè)試開始時(shí)進(jìn)行初始化的工作铅檩。

(3)teardown thread group

一種特殊類型的ThreadGroup的,可用于執(zhí)行測(cè)試后動(dòng)作莽鸿。這些線程的行為完全像一個(gè)正常的線程組元件昧旨。不同的是,這些類型的線程執(zhí)行測(cè)試結(jié)束后執(zhí)行定期的線程組祥得;類似LoadRunnner的end兔沃,測(cè)試結(jié)束時(shí)進(jìn)行回收工作。

image

4.3. 取樣器(Http請(qǐng)求)

image

關(guān)于http請(qǐng)求的的屬性參數(shù)說明:

1)名稱:用于標(biāo)識(shí)一個(gè)sample级及。建議使用一個(gè)有意義的名稱
2)注釋:對(duì)于測(cè)試沒任何影響乒疏,僅用來記錄用戶可讀的注釋信息
3)服務(wù)器名稱或IP:http請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱或者IP地址,比如http://www.baidu.com
4)端口號(hào):目標(biāo)服務(wù)器的端口號(hào)饮焦,默認(rèn)值為80怕吴,可不填
5)協(xié)議:向目標(biāo)服務(wù)器發(fā)送http請(qǐng)求時(shí)的協(xié)議窍侧,http/https,大小寫不敏感转绷,默認(rèn)http
6)方法:發(fā)送http請(qǐng)求的方法(鏈接:http://www.cnblogs.com/imyalost/p/5630940.html)
7)Content encoding:內(nèi)容的編碼方式(Content-Type=application/json;charset=utf-8)
8)路徑:目標(biāo)的URL路徑(不包括服務(wù)器地址和端口)
9)自動(dòng)重定向:如果選中該項(xiàng)伟件,發(fā)出的http請(qǐng)求得到響應(yīng)是301/302,jmeter會(huì)重定向到新的界面
10)Use keep Alive:jmeter 和目標(biāo)服務(wù)器之間使用 Keep-Alive方式進(jìn)行HTTP通信(默認(rèn)選中)
11)Use multipart/from-data for HTTP POST :當(dāng)發(fā)送HTTP POST 請(qǐng)求時(shí)议经,使用
12)Parameters斧账、Body Data以及Files Upload的區(qū)別:
 1. parameter是指函數(shù)定義中參數(shù),而argument指的是函數(shù)調(diào)用時(shí)的實(shí)際參數(shù)
 2. 簡(jiǎn)略描述為:parameter=形參(formal parameter)煞肾, argument=實(shí)參(actual parameter)
 3.在不很嚴(yán)格的情況下咧织,現(xiàn)在二者可以混用,一般用argument籍救,而parameter則比較少用
  While defining method, variables passed in the method are called parameters.
  當(dāng)定義方法時(shí)习绢,傳遞到方法中的變量稱為參數(shù).
  While using those methods, values passed to those variables are called arguments.
  當(dāng)調(diào)用方法時(shí),傳給變量的值稱為引數(shù).(有時(shí)argument被翻譯為“引數(shù)“)
 4钧忽、Body Data指的是實(shí)體數(shù)據(jù)毯炮,就是請(qǐng)求報(bào)文里面主體實(shí)體的內(nèi)容逼肯,一般我們向服務(wù)器發(fā)送請(qǐng)求耸黑,攜帶的實(shí)體主體參數(shù),可以寫入這里
 5篮幢、Files Upload指的是:從HTML文件獲取所有有內(nèi)含的資源:被選中時(shí)大刊,發(fā)出HTTP請(qǐng)求并獲得響應(yīng)的HTML文件內(nèi)容后還對(duì)該HTML
   進(jìn)行Parse 并獲取HTML中包含的所有資源(圖片、flash等):(默認(rèn)不選中)
   如果用戶只希望獲取特定資源三椿,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達(dá)式缺菌,只有能匹配指定正則表達(dá)式的URL指向資源會(huì)被下載

4.4. 監(jiān)聽器

監(jiān)聽器(Listener)負(fù)責(zé)收集測(cè)試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式搜锰。我們常用的包括:聚合報(bào)告伴郁、查看結(jié)果樹、用表格查看結(jié)果蛋叼,都支持將結(jié)果數(shù)據(jù)寫入文件焊傅。其他的添加上去看看就行。聚合報(bào)告前面我們介紹過狈涮,后面是查看結(jié)果樹和用表格查看結(jié)果的截圖狐胎。

image

<meta charset="utf-8">

4.5. 循環(huán)控制器

image
image
image

4.6. 事務(wù)控制器

作用: 事務(wù)控制器會(huì)生產(chǎn)一個(gè)額外的采樣器,用來統(tǒng)計(jì)該控制器子結(jié)點(diǎn)的所有時(shí)間歌馍。
在線程組下創(chuàng)建事務(wù)控制器
參數(shù):
· Generate parent sample:(選中這個(gè)參數(shù)結(jié)果展示如下圖紅框握巢,否則顯示為下圖藍(lán)框)
· Include duration of timer and pre-post processors in generated sample:選中這一項(xiàng)會(huì)統(tǒng)計(jì)定時(shí)器(timer)的時(shí)間,否則只統(tǒng)計(jì)采樣器(sample)的時(shí)間

image

創(chuàng)建sample 訪問首頁(yè)和注冊(cè)頁(yè)面

image

生成聚合報(bào)告

image

勾選

image

聚合報(bào)告中只有一項(xiàng)事務(wù)報(bào)告

image

4.7. 斷言---檢查點(diǎn)

斷言(Assertions)可以用來判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望的松却。它可以用來隔離問題域暴浦,即在確保功能正確的前提下執(zhí)行壓力測(cè)試溅话。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的。
兩個(gè)重要斷言:響應(yīng)斷言和JSONAssertion
響應(yīng)斷言:

image

JSON斷言:

image

4.8. 前置處理器和后置處理器

image

前置處理器(Pre Processors)和后置處理器(Post Processors)負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作歌焦。前置處理器常常用來修改請(qǐng)求的設(shè)置公荧,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)。我們主要在動(dòng)態(tài)關(guān)聯(lián)中用到后置處理器的正則表達(dá)式提取器同规。
https://www.cnblogs.com/fengpingfan/p/4755411.html

4.9. 定時(shí)器

定時(shí)器(Timer)負(fù)責(zé)定義請(qǐng)求之間的延遲間隔

image
image

五. Jmeter組件參數(shù)化

5.1. 參數(shù)化是什么

動(dòng)態(tài)的獲取并設(shè)置數(shù)據(jù)

5.2. 為什么使用參數(shù)化

執(zhí)行批量操作循狰,批量添加批量刪除,人工效率太低
運(yùn)用程序代替人工獲取并設(shè)置數(shù)據(jù)券勺,安全高效
比如:對(duì)被測(cè)系統(tǒng)的用戶名和密碼進(jìn)行參數(shù)化绪钥,來模擬多個(gè)用戶同時(shí)登錄系統(tǒng)

5.3. 參數(shù)化實(shí)現(xiàn)之用戶自定義變量

通過這個(gè)功能,能實(shí)現(xiàn)多接口共享數(shù)據(jù)关炼,修改一條即可修改全部

image

Filename:所需數(shù)據(jù)文件的路徑程腹。如和腳本同一路徑,可直接填寫文件名
File encoding:編碼和文件保持一致即可儒拂,默認(rèn)為ANSI寸潦。如有中文,建議為UTF-8
Variable Names:引用變量時(shí)的變量名社痛,對(duì)應(yīng)數(shù)據(jù)文件中的每一列见转,以逗號(hào)分隔。如不填寫蒜哀,文件的第一行數(shù)據(jù)將被讀取為變量名
Delimiter:在.txt斩箫、.dat文件中,可以用逗號(hào)(,)或者Tab鍵(\t)來區(qū)分列與列
Allow quote data:選項(xiàng)選為“true”的時(shí)候?qū)θ亲址奶幚沓霈F(xiàn)亂碼
Recycle on EOF:到數(shù)據(jù)文件結(jié)尾時(shí)是否循環(huán)讀取撵儿。設(shè)置為True時(shí)乘客,線程數(shù)過多,數(shù)據(jù)文件讀取到最后一行時(shí)淀歇,會(huì)再次從第一行開始讀取易核。設(shè)置為False,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取浪默,則值會(huì)默認(rèn)為<EOF>牡直,可通過設(shè)置jmeter屬性csvdataset.eofstring來改變?cè)撝怠?br> Stop thread on EOF:Recycle on EOF設(shè)置為False,Stop thread on EOF設(shè)置為True浴鸿,則讀取數(shù)據(jù)文件最后一行后井氢,停止測(cè)試,不管還有多少線程組未執(zhí)行岳链。
Sharing mode:共享模式花竞。默認(rèn)在所有線程組中使用,可選擇每個(gè)線程組單獨(dú)打開
相同的部分使用用戶自定義變量
只需要修改一次接口
效果展示
<meta charset="utf-8">

5.4. 參數(shù)化實(shí)現(xiàn)之CSV Data Set Config

添加CSV Data Set Config:

image

添加界面:

image

通過這個(gè)組件可以動(dòng)態(tài)獲取并設(shè)置數(shù)據(jù),實(shí)現(xiàn)批量添加操作
名詞解釋:

Filename:所需數(shù)據(jù)文件的路徑约急。如和腳本同一路徑零远,可直接填寫文件名
File encoding:編碼和文件保持一致即可,默認(rèn)為ANSI厌蔽。如有中文牵辣,建議為UTF-8
Variable Names:引用變量時(shí)的變量名,對(duì)應(yīng)數(shù)據(jù)文件中的每一列奴饮,以逗號(hào)分隔纬向。Delimiter:在.txt、.dat文件中戴卜,可以用逗號(hào)(,)或者Tab鍵(\t)來區(qū)分列與列
Allow quote data:選項(xiàng)選為“true”的時(shí)候?qū)θ亲址奶幚沓霈F(xiàn)亂碼
Recycle on EOF:到數(shù)據(jù)文件結(jié)尾時(shí)是否循環(huán)讀取逾条。設(shè)置為True時(shí),線程數(shù)過多投剥,數(shù)據(jù)文件讀取到最后一行時(shí)师脂,會(huì)再次從第一行開始讀取。設(shè)置為False江锨,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取吃警,則值會(huì)默認(rèn)為<EOF>,可通過設(shè)置jmeter屬性csvdataset.eofstring來改變?cè)撝怠?Stop thread on EOF:Recycle on EOF設(shè)置為False啄育,Stop thread on EOF設(shè)置為True酌心,則讀取數(shù)據(jù)文件最后一行后,停止測(cè)試灸撰,不管還有多少線程組未執(zhí)行谒府。
Sharing mode:共享模式。默認(rèn)在所有線程組中使用浮毯,可選擇每個(gè)線程組單獨(dú)打開

添加引用文件:

image

引用:
在jmeter中添加

image
image

線程數(shù)改為某個(gè)值
查看結(jié)果樹:

image

其他:

  1. 線程組線程數(shù)改為大于文件中數(shù)據(jù)的處理:
    遇到結(jié)束符在循環(huán)
    遇到結(jié)束符停止線程
  2. 如果數(shù)據(jù)來自數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)導(dǎo)出txt文件

<meta charset="utf-8">

5.5. 使用Jmeter函數(shù)助手(文件中不要出現(xiàn)中文):

1、點(diǎn)擊 選項(xiàng)-->函數(shù)助手 調(diào)出函數(shù)助手對(duì)話框
2泰鸡、選擇 _CSVRead 函數(shù)(下圖第一個(gè)框)
3债蓝、函數(shù)參數(shù):
 1)第一個(gè)參數(shù):填寫文件路徑。
 2)第二個(gè)參數(shù):文件列號(hào)是從0開始的盛龄,第一列0饰迹、第二列1、第三列2余舶、依次類推,然后點(diǎn)擊【生成】按鈕啊鸭,則會(huì)自動(dòng)生成我們需要的參數(shù)化函數(shù)。
  3) 復(fù)制生成的參數(shù)化函數(shù)匿值, copy過程需要使用的地方即可赠制。
  4) _Random函數(shù)是從某數(shù)據(jù)段隨機(jī)讀取數(shù)據(jù)替換參數(shù),當(dāng)需要添加多條數(shù)據(jù)記錄且某些字段需要唯一性時(shí)使用挟憔。

image
image
image

六. Jmeter正則表達(dá)式提取

6.1. 使用正則提取

運(yùn)用Jmeter正則提取器钟些,可以從請(qǐng)求的響應(yīng)結(jié)果中取到需要的內(nèi)容烟号,從而實(shí)現(xiàn)關(guān)聯(lián)。關(guān)聯(lián)是請(qǐng)求與請(qǐng)求之間存在數(shù)據(jù)依賴關(guān)系政恍,需要從上一個(gè)請(qǐng)求獲取下一個(gè)請(qǐng)求需要回傳回去的數(shù)據(jù)
正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern)汪拥,可以用來檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等篙耗。

字符 描述
* 匹配前面的子表達(dá)式零次或多次迫筑。例如,zo* 能匹配 "z" 以及 "zoo"宗弯。* 等價(jià)于{0,}铣焊。
+ 匹配前面的子表達(dá)式一次或多次。例如罕伯,'zo+' 能匹配 "zo" 以及 "zoo"曲伊,但不能匹配 "z"。+ 等價(jià)于 {1,}追他。
? 匹配前面的子表達(dá)式零次或一次坟募。例如,"do(es)?" 可以匹配 "do" 邑狸、 "does" 中的 "does" 懈糯、 "doxy" 中的 "do" 。? 等價(jià)于 {0,1}单雾。
( ) 標(biāo)記一個(gè)子表達(dá)式的開始和結(jié)束位置赚哗。子表達(dá)式可以獲取供以后使用。
. 匹配除換行符 \n 之外的任何單字符硅堆。要匹配 . 屿储,請(qǐng)使用 . 。

構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣渐逃。也就是用多種元字符與運(yùn)算符可以將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式够掠。正則表達(dá)式的組件可以是單個(gè)的字符、字符集合茄菊、字符范圍疯潭、字符間的選擇或者所有這些組件的任意組合。
正則表達(dá)式提取的相關(guān)設(shè)置

image
image

說明:

(1)引用名稱:下一個(gè)請(qǐng)求要引用的參數(shù)名稱面殖,如填寫title竖哩,則可用${title}引用它。
(2)正則表達(dá)式:
    ():括起來的部分就是要提取的脊僚。
    .:匹配任何字符串相叁。
    +:一次或多次。
    ?:不要太貪婪,在找到第一個(gè)匹配項(xiàng)后停止钝荡。
(3)模板:用$$引用起來街立,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式,則可以是$2$$3$等等埠通,表示解析到的第幾個(gè)值給title赎离。如:$1$表示解析到的第1個(gè)值
(4)匹配數(shù)字:0代表隨機(jī)取值,1代表全部取值端辱,通常情況下填0
(5)缺省值:如果參數(shù)沒有取得到值梁剔,那默認(rèn)給一個(gè)值讓它取。

案例:api接口

image
image
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舞蔽,一起剝皮案震驚了整個(gè)濱河市荣病,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渗柿,老刑警劉巖个盆,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異朵栖,居然都是意外死亡颊亮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門陨溅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來终惑,“玉大人决乎,你說我怎么就攤上這事土居。” “怎么了失球?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵臼寄,是天一觀的道長(zhǎng)霸奕。 經(jīng)常有香客問我,道長(zhǎng)脯厨,這世上最難降的妖魔是什么铅祸? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮合武,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涡扼。我一直安慰自己稼跳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布吃沪。 她就那樣靜靜地躺著汤善,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上红淡,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天不狮,我揣著相機(jī)與錄音,去河邊找鬼在旱。 笑死摇零,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的桶蝎。 我是一名探鬼主播驻仅,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼登渣!你這毒婦竟也來了噪服?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤胜茧,失蹤者是張志新(化名)和其女友劉穎粘优,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呻顽,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雹顺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芬位。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片无拗。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖昧碉,靈堂內(nèi)的尸體忽然破棺而出英染,到底是詐尸還是另有隱情,我是刑警寧澤被饿,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布四康,位于F島的核電站,受9級(jí)特大地震影響狭握,放射性物質(zhì)發(fā)生泄漏闪金。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一论颅、第九天 我趴在偏房一處隱蔽的房頂上張望哎垦。 院中可真熱鬧,春花似錦恃疯、人聲如沸漏设。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)郑口。三九已至鸳碧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間犬性,已是汗流浹背瞻离。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乒裆,地道東北人套利。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像缸兔,于是被迫代替她去往敵國(guó)和親日裙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 本節(jié)內(nèi)容 接口及接口測(cè)試 網(wǎng)絡(luò)基礎(chǔ)知識(shí):IP,域名, DNS及端口 網(wǎng)絡(luò)基礎(chǔ)知識(shí):OSI七層模型及TCP協(xié)議 HT...
    半成品yjf閱讀 816評(píng)論 0 0
  • 1 什么是接口測(cè)試惰蜜? 接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試昂拂。接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè) ...
    何以笙簫默_4eb8閱讀 195評(píng)論 0 1
  • 一、接口測(cè)試簡(jiǎn)介 1.1 接口的定義及分類 ??接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試抛猖。接口測(cè)試主要用于檢測(cè)外部系...
    Ricsy閱讀 842評(píng)論 1 2
  • 一直在想接口測(cè)試都需要會(huì)那些知識(shí)格侯?用些什么工具?怎么測(cè)試财著?測(cè)試的范圍联四?測(cè)試到什么程度?現(xiàn)在可以回答一部分了撑教,接口測(cè)...
    閑成灰閱讀 432評(píng)論 0 0
  • 大家一直都在說接口自動(dòng)化朝墩,但對(duì)于接口測(cè)試的基礎(chǔ)HTTP協(xié)議,你了解多少呢伟姐? HTTP協(xié)議采用了請(qǐng)求/響應(yīng)模型收苏。客戶...
    曉莫莫閱讀 4,910評(píng)論 3 88