SpringBoot | 第十五章:基於Postman的RESTful接口測試

前言

從上一章節開始,接下來的幾個章節會講解一些開發過程當中配套工具的使用。俗話說的好,工欲善其事,必先利其器。對於開發人員而言,有個好用的工具,也是一件事半功倍的事,並且開發起來也很爽,效率也會提高不少。本章節主要講解關於Postman這款http模擬請求工具,通常上拿來測試api接口服務的。html


題外話:對於Postman而言,本人也是僅僅使用了其中一小部分,仍是本着夠用的原則,對於其一些高級功能,好比自動化測試auth認證js腳本生成各種語言代碼(如cUrl、java、ajax等等),後期如有使用時,會再編寫一篇博文的。忽然很感慨,要學習的東西真多呀,因此仍是那句話:本着夠用就行!東西是學不完的!java


關於Postman

Postman是一款功能強大的網頁調試與發送網頁HTTP請求的工具。Postman可以發送任何類型的HTTP請求(GET, HEAD, POST,PUT..),附帶任何數量的參數和HTTP headers。支持不一樣的認證機制(basic, digest,OAuth),接收到的響應語法高亮(HTML,JSON或XML)。Postman既能夠以Chrome瀏覽器插件的形式存在,也能夠是獨立的應用程序存在。本文主要講解的是客戶端的使用。git

安裝Postman

官方網站:https://www.getpostman.com/appsgithub

按實際的操做環境,選擇對應的版本下載:web

版本選擇

本文直接選擇當前最新版:v6.2.2ajax

下載後,按提示進行默認安裝便可,這裏就不貼圖了。spring

軟件首頁

界面按鈕說明

做圖不易呀,打開了從高中開始用的Fireworks。一個程序猿還須要會做圖,(┬_┬)。不美觀,順序混亂,就湊合看吧。還想怎麼樣!json

界面圖例

1.History:記錄歷史請求記錄,通常上全部的請求,都會會在此面板上出現,按日期區分,點擊可快捷新增一個該請求的tab欄。 History後端

2.Collections:收藏夾。你能夠按請求的類型或者項目,進行目錄的建立,便於管理。能夠建立子目錄,同時也可批量進行請求,你們可點開看看,應該都知道意思api

Collections

內部按鈕: 內部按鈕

3.便籤頁:可切換不一樣的便籤頁進行顯示。

tab

4.請求方式:如GET、POST、DELETE等。

請求方式

5.請求地址:須要測試或者訪問的api地址,支持變量,變量寫法:{{param}},

請求地址

6.URL參數值(querystring):設置url後面的參數值,如author=okong&name=okong

querystring

7.點擊可發送請求,同時支持下載。

發送請求

8.保存當前的請求至Collections中,也可另存爲成其餘的Collections。下次能夠快捷點擊。

保存請求

9.鑑權參數,能夠設置如OAuthOAuth2等協議。

鑑權參數

10.HTTP Header:自定義請求頭部信息。

Header設置

11.請求體(Body)設置,如POST請求時,設置請求的參數,或者二進制流、json格式參數、xml格式參數等等。

Body

12.發起請求以前執行的腳本,例如request body裏的那兩個random變量,就是每次請求以前臨時生成的,不熟悉,目前沒有用過。

pre-request

13.響應測試,返回的參數進行檢驗,校驗結果會顯示在19功能模版中。目前也沒有用過,,跳過。。

tests

14.各域名下的cookies查看、新增:

cookies

15.code:可一鍵生成不一樣語言的請求代碼,如cUrl、java等。

cUrl:

cUrl

java:這裏使用的是okHttp工具

java

1六、1七、1八、19都是請求響應response對應的參數值了,應該都比較熟悉了。如返回的值,cookies、Header、響應測試結果等。

響應區域

20.請求響應的狀態(status)值,如200等,還有響應時間和大小等。吐槽:入門級的服務器就是慢。。200毫秒。。

狀態等信息

21.拷貝返回的參數到剪貼板中,就是Ctrl+c功能了,在其餘地方可直接粘貼。

拷貝

22.返回參數裏面進行查詢。

查詢

23.返回參數的不一樣預覽狀態,其實就是美化。。

響應參數預覽

24.設置不一樣的工做空間,就像eclipse同樣,可不一樣的項目不一樣的工做空間。

工做空間

25.設置不一樣環境下的變量值,就像後端開發有測試環境、開發環境、聯調環境等同樣的。

多環境配置

Postman測試RESTful接口示例

以一個簡單的web服務,進行post、get等經常使用的請求示例,其餘的你們可本身安裝後本身實踐下,本身動手豐衣足食呀~

建立一個web項目

這裏建立以常見的http請求方式,如get、post、delete、put進行簡單示例下。

RestfulController.java

/**
 * 基於Postman的RESTfulAPI接口測試
 * @author oKong
 *
 */
@RestController
@Slf4j
public class RestfulController {

    @GetMapping("/get")
    public String get(String msg) {
        log.info("get方式!");
        return msg;
    }
    
    @PostMapping("/post")
    public String post(@RequestBody String msg) {
        log.info("post方式!");
        return msg;
    }
    
    @PutMapping("/put")
    public String put(@RequestBody String msg) {
        log.info("put方式!");
        return msg;
    }
    
    @DeleteMapping("/delete")
    public String delete(String msg) {
        log.info("delete方式!");
        return "delete " + msg + " success!";
    }
    
        /**
     * 設置返回狀態爲417
     * @param msg
     * @return
     */
    @GetMapping("/status")
    @ResponseStatus(HttpStatus.EXPECTATION_FAILED)
    public String status(String msg) {
        log.info("status方式!");
        return msg;
    }
}

使用Postman測試

1.get方式:

get方式

2018-07-28 23:26:39.783  INFO 18092 --- [nio-8080-exec-5] c.l.l.s.chapter14.RestfulController      : get方式!

2.post方式:

post方式

2018-07-28 23:29:00.143  INFO 18092 --- [nio-8080-exec-4] c.l.l.s.chapter14.RestfulController      : post方式!

3.put方式

put方式

4.delete方式

delete方式

5.httpStatus狀態測試(設置返回的ResponseStatus):

Status

6.請求方式不正確時:

請求方式不對時

此時,能夠把各請求保存到Collections中,能夠測試下批量執行的功能run.

run

批量執行:

批量執行

控制檯:

控制檯

相關資料

這幾篇講解的比較簡單明瞭。

1.http://www.javashuo.com/article/p-xfzfuzlb-er.html

2.https://blog.csdn.net/ma_jiang/article/details/78574691

3.官方文檔:https://www.getpostman.com/docs/v6/

總結

本章節主要是講解了利用Postman進行RESTful接口風格進行測試,也簡單介紹了關於Postman的簡單用法。在本人使用過程過程當中,以上幾種方式基本上已經知足開發需求了。前面也介紹過了Swagger了,在對接第三方系統服務時,Swagger基本就用不上了,這個時候Postman的做用就體現出來了。不一樣場景下用不一樣的測試工具。至於一些關於Postman的高級用法,你們須要的話就自行搜索查找下相關資料吧,其餘功能我是基本上沒有用上。。(┬_┬)

最後

目前互聯網上不少大佬都有SpringBoot系列教程,若有雷同,請多多包涵了。本文是做者在電腦前一字一句敲的,每一步都是實踐的。若文中有所錯誤之處,還望提出,謝謝。

老生常談

  • 我的QQ:499452441
  • 公衆號:lqdevOps

公衆號

我的博客:http://blog.lqdev.cn

原文地址:http://blog.lqdev.cn/2018/07/28/springboot/chapter-fifteen/

完整示例:chapter-15

相關文章
相關標籤/搜索