<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          接口測試框架Rest-assured搭建與實戰(zhàn)【附源碼】

          共 2764字,需瀏覽 6分鐘

           ·

          2020-12-23 14:48

          現(xiàn)在,越來越多的 Web 應用轉(zhuǎn)向了 RESTful 的架構(gòu),很多產(chǎn)品和應用暴露給用戶的往往就是一組 REST API,這樣有一個好處,用戶可以根據(jù)需要,調(diào)用不同的 API,整合出自己的應用出來。從這個角度來講,Web 開發(fā)的成本會越來越低,人們不必再維護自己的信息孤島,而是使用 REST API 互聯(lián)互通。那么,如何確保 API 的穩(wěn)定性與正確性呢?全面系統(tǒng)的測試是必不可少的,除了常見的postman、jmeter等接口測試工具外,今天給大家介紹一款非常火爆的接口測試框架Rest-Assured。

          Rest-Assured 是一套由 Java 實現(xiàn)的 REST API 測試框架,它是一個輕量級的 REST API 客戶端,可以直接編寫代碼向服務器端發(fā)起 HTTP 請求,并驗證返回結(jié)果;它的語法非常簡潔,是一種專為測試 REST API 而設計的 DSL。使用 Rest-Assured 測試 REST API,就和真正的用戶使用 REST API 一樣,只不過 Rest-Assured 讓這一切變得自動化了。

          官網(wǎng)地址:?http://rest-assured.io/

          官方文檔:?https://rest-assured.io/#docs

          github項目地址:?https://github.com/rest-assured/rest-assured

          一、Rest-Assured框架搭建步驟

          1
          創(chuàng)建maven項目

          1.1 打開idea創(chuàng)建項目,選擇maven相關設置點擊下一步

          ?

          1.2 輸入包名及項目名稱點擊下一步

          ?

          1.3 選擇maven相關信息,點擊下一步

          ?

          1.4 項目名稱和項目位置,一般默認就可以,點擊完成

          ?

          2
          配置Rest-Assured相關依賴

          在項目的pom.xml中增加Rest-Assured的依賴包

          ?

          ?

          3
          Rest-Assured第一個接口測試案例

          3.1 接口業(yè)務介紹

          案例我們將采用碼同學全棧接口項目來進行實戰(zhàn)操作

          ?

          圖示中的四個接口分別表示的業(yè)務是:

          Get接口:根據(jù)id獲取手機信息

          POST接口:增加一個手機信息

          3.2 測試代碼

          在src/test/java下創(chuàng)建一個包,起名叫phone,在該包下創(chuàng)建一個PhoneApiTests類

          ,代碼如下:


          執(zhí)行結(jié)果如下:

          ?

          3.3 代碼解釋

          l given() 是RestAssured類下一個方法,所以官方文檔強烈推薦我們使用靜態(tài)導入語句;網(wǎng)絡請求所需要的條件都寫在這里,頭信息、請求參數(shù)

          l?get方法,里面參數(shù)是url,用來發(fā)送請求

          l?post方法,里面參數(shù)也是url,用來發(fā)送請求

          l?then() 又是一個方法,可以理解成執(zhí)行請求后要做什么事情

          l?statusCode(200) 這個方法名稱就看得出來,是判斷響應狀態(tài)碼是不是等于200

          整個代碼的意思我們可以連起來,以其中的post接口為例:


          發(fā)起一個post請求,他的content-type是json,參數(shù)是xx,執(zhí)行后針對響應狀態(tài)碼做斷言

          現(xiàn)在討論下這種寫法的好處,什么寫法,就是一個方法后面利用點串聯(lián)起來,形成一個像自然語言的句子一樣。這種特點,有點像lambda表達語法效果。除了這個,也有一點像groovy這種膠水語言。通過這個例子,我明白了Rest Assured首頁的這句話的含義。




          二、使用rest-assured框架優(yōu)雅實現(xiàn)接口測試斷言

          1

          接口信息的調(diào)試


          當我們在做接口測試時,通常希望將接口的請求及響應信息打印出來幫助我們debug,那么在Rest-assured框架中如何將接口信息打印在控制臺呢,如下圖代碼紅框中框出來的:

          控制臺打印出請求信息如下:

          響應信息如下:


          2

          針對接口響應信息做斷言


          2.1?判斷響應中單字段對應的內(nèi)容是否正確


          以上圖中的響應結(jié)果中的message字段為例,因為響應結(jié)果是json格式的,因此我們可以采用body()方法來直接提取,并且采用equalTo()來對比。

          使用前先導入

          import static org.hamcrest.Matchers.*;

          具體代碼如下:

          ?

          2.2?判斷響應中多個字段對應的內(nèi)容是否正確

          ???body()方法中可以針對多個字段連續(xù)判斷,用逗號隔開多個判斷

          ???具體代碼如下:

          ???還有另外一種寫法,寫多個body()方法,如下:

          ?

          2.3?判斷響應中的某個字段對應的數(shù)值的大小

          ???比如上述接口中的id值對應的是數(shù)字,我想判斷id對應的數(shù)字小于2,代碼如下:

          ?

          ??那么大家可以想想如果想判斷比某個數(shù)字大呢?這里可以給大家列舉一下:

          1、lessThan(x):表示比某大小

          2、lessThanOrEqualTo(x):表示小于等于

          3、greaterThan(x):表示比某個值大

          4、greaterThanOrEqualTo(x):表示大于等于


          2.4?判斷響應中的多個相同字段的值

          ???比如有一個接口是獲取用戶列表,響應結(jié)果如下:

          ?

          目標是判斷響應中所有的userName都正確,具體實現(xiàn)代碼如下:

          ?

          其中path:data.userName表示選取響應結(jié)果中data字段下的所有userName字段


          hasItems表示結(jié)果中是否包含這幾個選項,需要一一對應哦

          在上述案例中做斷言時都用到了一個path參數(shù),該參數(shù)表示使用某種路徑表達式從響應結(jié)果中提取相應內(nèi)容,那么在Rest-assured中針對json格式的響應結(jié)果采用JsonPath來提取,針對xml格式的響應結(jié)果采用xmlPath來提取,關于這兩種類型的提取規(guī)則我們下次再說。


          Appium教程
          1. Appium移動端自動化測試--基礎預熱
          2. Appium移動端自動化測試--搭建測試環(huán)境
          3. Appium移動端自動化測試--錄制測試用例并運行
          4. Appium移動端自動化測試--使用IDE編輯并強化腳本
          5. Appium移動端自動化測試--控件定位方法
          6. Appium移動端自動化測試--元素操作與觸摸動作
          7. Appium移動端自動化測試--搭建模擬器和真機環(huán)境
          8. Appium移動端自動化測試--測試用例改造
          9. Appium移動端自動化測試--capability使用和常用設備交互命令
          文章合集
          Selenium?|?Appium??|?Jenkins??|??Jmeter?
          軟件測試方法匯總?|?Postman接口參數(shù)化?|?測試用例設計?|?APP抓包

          視頻教程
          Selenium?|?Appium?|?Jenkins?|?Jmeter

          微信群:
          軟件自動化測試交流群
          已創(chuàng)建,公號回復入群即可獲取入群二維碼。
          瀏覽 63
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黑人大屌视频 | 日本wwwxxxx | 激情丁香婷婷 | 成人操B| 亚洲欧美国产日韩字慕 |