postman接口測試和壓力測試


postman接口測試和壓力測試

轉發:https://blog.csdn.net/qq_40221345/article/details/80818437

KS

Knowledge Sharing

知識分享

    現在是資源共享的時代,同樣也是知識分享的時代,如果你覺得本文能學到知識,請把知識與別人分享。

前言

 

現在很多公司寫后端代碼和前端代碼已經分工很明確了,前后端把接口定義好,然后各自寫各自的代碼就可以了。那么對於服務端的開發人員來說,寫好了代碼后,對外提供了API,這時候沒有頁面可以調用調試,如果等着客戶端寫完代碼再測試的話,那樣工作的效率是及其低下的。那么服務端要學會模擬客戶端的調用,來調試自己的代碼,提早發現問題,這樣后續跟客戶端進行聯調的時候,就大大提高了效率。

 

我們今天講講Postman模擬客戶端調試工具,這是我平時工作中最常用的工具之一。

 

Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件。它只要在Chrome里安裝一個插件即可完成強大的功能。

 

但是由於2018年初chrome停止對chrome應用程序的支持,你的postman可能無法正常使用了。目前chrome應用商店能使用的就是chrome擴展程序和主題背景。

 

不過Postman也提供了應用程序的下載。https://www.getpostman.com/apps

根據自己的操作系統,下載不同的版本即可。

 

官網需要翻牆才能下載,所以我提前下載下來,小伙伴們直接在公眾號回復“postman”即可獲取下載地址。包括windows版本和mac版本。如果有需要linux版本的話,可以給我留言,我幫你下載。

 

Postman介紹

 

下面是在網上隨便抓了一個請求地址來做演示,把請求地址填入地址欄,此請求為GET請求。點擊Send發送請求,請求結果將會在下方顯示出來。每次的請求歷史數據,會被記錄下來,但是經常使用的請求,還是保存一下,這么每次用的時候,選擇就行了,及其方便。

 

另外,最好創建一個賬號,這樣數據將會永久保存下來,不至於重裝了系統或者換了台電腦數據都沒了的尷尬。

 

640?wx_fmt=png

 

保存的時候起個好聽的名字

 

640?wx_fmt=png

 

Header會傳輸一些我們需要的一些通用的數據,定義好之后,每個接口幾乎都是一樣的。所以,把這些數據進行預置,這樣就不用每新建一個請求,都要重復的添加Header了。

 

請求的時候,會把請求狀態,請求的時間,以及返回的數據大小返回回來。這樣一目了然。最常見的status就是200表示成功,400表示未找到資源。500開頭的基本都是服務端異常等等。我之前寫了一篇很詳細的狀態說明,請參見“HTTP狀態碼大全

 

640?wx_fmt=png

 

640?wx_fmt=png

 

點擊params可以把url里的參數以列表的形式展現出來,方便編寫

 

640?wx_fmt=png

 

還有一種更方便的編輯方式,點擊Bulk Edit ,直接修改字符串的方式修改,而且可以復制粘貼,方便遷移到其它地方。而且這個功能在其它參數編輯的地方都適用。

 

640?wx_fmt=png

 

我們來看看如何發送POST接口

 

640?wx_fmt=png

 

form-data、x-www-form-urlencoded、raw、binary的區別

 

x-www-form-urlencoded

 

當用戶通過form表單提交數據的時候,例如:

 

<form method="post"action="http://api.test.com/user" >

   <inputtype="text" name="name">

   <inputtype="text" name="age">

</form>

 

提交時會向服務器端發出這樣的數據(已經去除部分不相關的頭信息),數據如下:

 

POST /user HTTP/1.1

Content-Type:application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

Host: api.test.com

Content-Length: 21

Connection: Keep-Alive

Cache-Control: no-cache

name=互扯程序&age=18

 

它的Content-Type是application/x-www-form-urlencoded,這表示消息內容會經過URL編碼

 

form-data

 

當需要上傳文件(可以上傳多個文件),並且有參數同時傳遞的時候,選擇這個選項可以上傳文件。

舉個例子

 

<form method="post"action="http://api.test.com/user/upload.do" enctype=”multipart/form-data”>

   <inputtype="text" name="desc">

   <inputtype="file" name="pic">

</form>

 

瀏覽器將會發送以下數據:

 

POST /user/upload.do HTTP/1.1

Accept-Language: zh-cn,zh;q=0.5

Accept-Charset: GBK,utf-8;q=0.7,*;q=0.7

Connection: keep-alive

Content-Length: 60408

Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC

Host: api.test.com

 

我們看到Content-Type:multipart/form-data;

 

當需要上傳數據的時候,必須設置enctype=“multipart/form-data”,

 

enctype:規定在發送到服務器之前應該如何對表單數據進行編碼,他有如下的三個值:

 

1. application/x-www-form-urlencoded。默認的編碼方式。所有字符都會進行編碼(空格轉換為 "+" 加號,特殊符號轉換為 ASCII HEX 值)。

2. multipart/form-data 。 指定傳輸數據為二進制類型,比如圖片、mp3、文件。 不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值。

3. text/plain。純文體的傳輸。空格轉換為 “+” 加號,但不對特殊字符編碼。

 

其實form表單在你不寫enctype屬性時,也默認為其添加了enctype屬性值,默認值是enctype="application/x- www-form-urlencoded",所以上面注冊用戶的時候雖然沒寫,其實默認加上了。

 

raw

 

當需要給服務端傳遞json,xml等數據的時候選擇raw,當選擇了raw的時候,header里會自動加上

Content-Type: application/json

 

例如:

 

$.ajax({

‍    url:"/user/",

   data:JSON.stringify(user),

   method:"POST",

   contentType:"application/json",

   success: function(res){

       console.info("添加成功")

   }‍

});

 

 

 

 

640?wx_fmt=png

 

binary

 

只能上傳一個文件,也不能添加參數。

 

640?wx_fmt=png

 

壓力測試

 

當你需要驗證你的接口的抗壓能力的時候,可以點擊Runner,進行壓力測試

 

640?wx_fmt=png

 

注意:壓力測試只能以文件夾的方式執行多個接口,不能單獨執行,如果想要測試某一個接口,就創一個文件夾,這個文件夾里只有一個要測試的接口。

 

640?wx_fmt=png

 

點擊執行,並發執行了500次。每次再100毫秒內返回結果。

 

640?wx_fmt=png

 

由於篇幅問題,還有其他功能等下次再講解吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM