Python接口測試之Postman詳解(十一)


        Postman為本地應用程序,要安裝postman的方式有二種,第一種方式是以chrome瀏覽器插件的方式安裝,需要到chrome官方應用商店才可以安裝,在chrome://extensions

可查看已安裝的插件。另外一種方式是直接到:https://www.getpostman.com下載,對應的平台分別為windows,mac,以及linux,可依據自己的平台來進行選擇的安裝。安裝很簡單,比

如以windows為案例,下載后,直接下一步下一步的安裝,也就是傻瓜式的安裝方式,這里不再進行詳細的說明。

   Sending the first request

    下面我們來看postman的第一個請求,輸入postman-echo.com/get並且按下快捷鍵,在底部就可以看到服務器響應返回的內容,它的數據格式是json的字符串內容,同時在左欄顯示

歷史記錄,實現這個過程的截圖:

    How does this work?

      先看如下的截圖來映射它的實現過程,見截圖:

1、輸入您的請求地址的詳細信息,並且點擊send(發送)按鈕

2、該請求由API服務器接收,不管是否請求成功還是請求失敗,它返回一個服務器的響應

3、響應由postman接收后並以可視化的方式顯示

    Creating the first collection

     在發送一個請求,都會在歷史記錄有一條數據,在數據小的情況下,或者說是小范圍內,我們可以在左欄很清晰的知道那些請求,但是如果當請求的數據很多的時候,也是歷史記

錄很多的時候,查看數據並不是那么的很方便,事實上我們可以把每一個請求看成一個獨立的測試用例,那么測試用例的集合也就是測試套件,就是測試用例的集合,collestion,它是

保存請求的組,或者也可以通俗的講說集合。collection-將請求組合到文件夾和集合中, 這樣您就不必一次又一次地搜索您的歷史記錄。文檔-向請求、文件夾和集合中添加名稱和說明。

在postman中, 您可以使用集合瀏覽器查看此文檔。與postman Pro, 您可以創建和發布美麗的 API 文檔頁面。測試套件-將測試腳本附加到請求並生成集成測試套件。條件工作流-使用腳本,

您可以在 api 請求之間傳遞數據, 並生成反映 api 實際使用情況的工作流。在發送了第一個請求后,我們來創建第一個collection,在postman的界面中,點擊創建第一個集合,見截圖:

 

點擊后,填寫collection的名稱以及以及對該collection的描述,見截圖:

點擊create創建成功,然后把第一個請求添加到剛才創建的Postman Echo的collection中,保存的方式是點擊save,在彈出的彈窗口中選擇collection,見截圖:

我們選擇Postman Echo的collection,點擊彈出框的save to Postman Echo,保存成功,見保存成功后的截圖:

     Sharing collections

       您必須登錄到您的postman帳戶上傳或共享一個集合。 單擊要共享的集合旁邊的省略號 (...)。選擇 "共享" 以打開共享集合模式, 這將包含大多數可以共享集合的方式。見截圖:

點擊Share,就會彈出如下的截圖:

點擊Embed Button,獲取到share的鏈接地址,也就是獲取該Collection的鏈接地址,見截圖:

copy鏈接地址https://www.getpostman.com/collections/b4f7b919a2b98be32091,或者手動copy,見截圖:

 

下來來安裝newman,關於newman這里不介紹,想了解的同學可自己百度, newman的安裝地址為:

npm install -g newman --registry=https://registry.npm.taobao.org

見安裝newman的截圖:

下來我們使用newman來實現在民命令行中執行postman中的collection的接口測試用例,把剛才過去到的url重新copy下,在命令中輸入如下命令來執行,

                                                  newman -u  https://www.getpostman.com/collections/b4f7b919a2b98be32091

見執行后的結果以及結果截圖:

        Starting a collection run

          集合是一組請求, 可以在相應的環境中作為一系列請求一起運行。使用腳本, 您可以構建集成測試套件, 在 api 請求之間傳遞數據, 並生成反映 api 實際使用情況的工作流。當您希望

自動化 API 測試時, 運行集合非常有用。在運行集合時, 實際上是在集合中一個接一個地發送所有請求。讓我們看一下可以為集合運行配置的幾個參數。見截圖:

點擊Run Collection_name,就可以運行該Collection,這里我們執行SOAP-webService,在最下面點擊Run SOAP-webService,見執行后的結果以及執行后的信息:

在如上的請求中,我們可以看到該請求是成功的,那么我們如何看這個請求的header信息,以及請求的參數了,鼠標到該請求的url中,按下左鍵,會彈出如下的彈出框,可以看到相關的信息,

見截圖:

見該請求的Resuest URL的截圖:

見該請求的headers信息,見截圖:

見該請求的Resuest-Body的截圖:

見該請求客戶端請求成功后,服務端返回的響應結果:

這里我們知道,這樣的一個請求是成功的,那么如果該測試點失敗了,我們怎么來定位,獲取是怎么來查看錯誤的信息,信息怎么獲取,這就需要知道postman console,

通過它我們就可以獲取錯誤的log,依據log來定位,還是以如上的webservice的請求來案例,我們故意取消header的信息,打開postman console,然后發送請求,查看

它返回的信息,見執行后postman console返回的詳細的錯誤log,見截圖:

我們可以看到,在postman console中,響應結果是空的,我們再次添加header,再次發送請求,該請求是OK的。

     send API requests

       Requests

         在請求的部分,允許發送各種HTTTP的請求,HTTP請求的四部分分別是:URL,方法,標頭和正文,見這部分的截圖:

URL 是您為請求設置的第一件事。url 輸入字段存儲以前使用的 url, 當您開始輸入 url 時, 將顯示一個 "自動完成" 下拉列表。 單擊 "參數" 按鈕將打開數據編輯器, 以輸入 URL 參數字。您
可以逐個添加鍵值對, 而postman將在上面的查詢字符串中合並所有內容。如果您的 url 已經有參數-例如, 如果您正在從其他來源粘貼一個 url, 郵差將自動將 url 分成兩組。headers部分,
單擊 "頁眉" 選項卡將顯示標題鍵值編輯器。可以將任何字符串設置為標頭名稱。當您在字段中鍵入時, "自動完成" 下拉列表將提供常見 HTTP 標頭的建議。"內容類型" 標頭的值也可以在自動
完成下拉,見設置的截圖:
request body部分, 在構造請求時, 您將經常使用請求正文編輯器。postman讓你發送幾乎任何類型的 HTTP 請求。身體編輯器被划分成4區域並且有不同的控制根據身體類型。 注意: 當
您通過 HTTP 協議發送請求時, 您的服務器可能期望有一個內容類型的標頭。內容類型標頭允許服務器正確地分析正文。對於表單數據和 urlencoded 的正文類型, postman會自動附加正
確的內容類型標題, 這樣您就不必設置它。當您選擇格式類型時, 將設置 raw 模式標頭。如果手動使用內容類型標頭, 則該值優先於postman設置的級別。postman沒有為二進制正文類型
設置任何頭類型,見該部分的截圖:
 

  Response

   在使用 api 時, 確保 api 響應是正確的, 您將會做很多事情。postman響應查看器將使這個任務更容易為您。 API 響應由正文、標題和狀態代碼組成。postman在不同的標簽中組織身體和頭部。
在選項卡旁邊會顯示完成 API 調用所花時間的狀態代碼。您可以將鼠標懸停在狀態代碼上, 以獲取有關代碼的更多詳細信息。大多數情況下, 它將是 HTTP 規范規定的默認描述, 但 API 作者也可
以添加自定義消息。 查看響應中, postman標簽給你幾個工具, 以幫助你迅速了解事情。正文可以在三視圖中的一個中查看--漂亮、原始和預覽,見Pretty預覽截圖:

見Raw預覽截圖:

見Preview預覽截圖:

請求響應成功后,可查看response的headers,見截圖:

postman自動計算從服務器到達響應所花費的時間。這對於某些性能的初步測試非常有用,postman將響應大小分解為正文和標題。響應大小是近似的。見截圖:

除了從服務器獲取請求的所有內容之外, 還可以查看針對請求運行的測試的結果。

      “HTTP中,基本認證是一種用來允許Web瀏覽器或其他客戶端程序在請求時提供用戶名口令形式的身份憑證的一種登錄驗證方式。”,在postman中,提供了對權限的簡單處理,

見截圖部分:

 

     捕獲 HTTP 請求 如果您使用 api 來構建客戶端應用程序 (移動應用程序、網站或桌面應用程序), 您可能希望看到在應用程序中發送和接收的實際 HTTP 請求通信。在某些情況下, 您可能
會發現甚至沒有文檔記錄的 api。postman給你工具, 以查看和捕獲這個網絡流量很容易。您可以在郵差本地應用程序中使用內置代理, 或者使用郵差 Chrome 應用程序的攔截器擴展. 對本機
應用程序中的攔截器擴展的支持即將到來。下面就來通過postman來爭取手機訪問的信息,也就是爭包,見實現的步驟:
    1、啟動postman的捕獲 HTTP的設置,點擊開啟,見截圖:

 

我們使用默認的端口5555,選擇History

   2、讓手機與PC機保持在一個網絡,打開手機的網絡設置,設置代理,見設置的截圖:

    3、手機操作,就可以在postman的history中看到抓取的信息,也可以過濾,就是查看自己想查看的信息,我設置的只想查看ecapi的請求信息,見截圖:

抓取的信息排序順序是最后的顯示在上面,最早的顯示在下面,下來我們來查看抓取的信息,選擇其中的任何一個請求,查看詳細的信息,見截圖:

 

    Interceptor extension

      postman攔截器是一種可用於 Chrome 的擴展, 它可以捕獲和操作在郵遞員和 web 服務器之間傳遞的 HTTP 請求。它可以直接從 Chrome 捕獲網絡請求, 並將其保存到postman的歷

史中。這意味着您可以實時調試您的 web 應用程序 api!不需要安裝或配置代理。不需要進行任何代碼更改。您可以根據基於正則表達式的 URL 篩選請求。如果你有一個 web 應用, 你沒有

一個已經建立的集合, 或者你只是想調試你的應用程序使用的 api, 這可以節省很多時間。該功能在 chrome 平台上構建, 可以輕松地跨 Windows、Linux、Mac 和 chrome 操作系統運行。它

還可以捕獲和操作 cookie, 或者設置默認情況下在 Chrome 平台上被阻止的某些 HTTP 報頭。安裝攔截器的步驟為:

1、Install the Interceptor extension,見安裝的截圖:

 

2、打開postman,點擊工具欄上的攔截器圖標,切換到on 

3、瀏覽您的應用程序或者您的網站,攔截器就可以時時的監控

安裝攔截器成功后,在chrome的瀏覽器右上角就有顯示,見圖標:,點擊該圖標后,可見到如下的截圖:

點擊on,然后我們來訪問eco.parkingwang.com,來看監控到的信息,見截圖:

   Making SOAP requests

     將 SOAP 端點作為 URL 提供。如果使用的是 wsdl, 請將 wsdl 的路徑作為 URL。 將請求方法設置為開機自檢。 打開原始編輯器, 並將正文類型設置為 "文本/xml"。 在請求正文中
, 根據需要定義 SOAP 信封、頭和正文標記。首先給 SOAP 信封標簽, 這是必要的, 並定義所有的命名空間。給header和body。soap 方法 (操作) 的名稱 應在 soap 正文中指定。見
實現的方式,博客地址: http://blog.getpostman.com/2014/08/22/making-soap-requests-using-postman/。見本人實現的方式,調用webservice的接口來驗證一個電話號碼的歸屬
地,實現方式是post請求,url是: http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx,Content-Type是:text/xml; charset=utf-8,請求的參數是:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getMobileCodeInfo xmlns="http://WebXml.com.cn/">
<mobileCode>134XXXX5195</mobileCode>
<userID></userID>
</getMobileCodeInfo>
</soap:Body>
</soap:Envelope>

見調用該接口的截圖:

見調用后執行的結果:

    

    Integration with Jenkins

     CI這里不在詳細的介紹,如果有不清楚的,建議bing下,在博客的前面,我們已經說明如何安裝newman以及它的使用,下來我們就結合jenkins來實現持續集成的一個過程,讓postman

在實際的工作中更加智能化。我們首先來導出集合,然后在cmd的命令行下使用newman執行下,先看下執行的效果,在postman中導出集合的方式是在該集合中點擊,在彈出下拉框

中點擊Export,見截圖:

在彈出框中,點擊Export,導出的是一個json文件,保存到C盤的根目錄下,見導出的截圖:

 

導出后,在cmd命令行執行,見執行的截圖:

看起來不是那么的很友好,OK,下面我們使用jenkins來實現這個過程,關於jenkins的環境搭建這里不介紹,啟動jenkins后,下面我們來一步一步的實現如何讓

newman與jenkins完美的結合,見步驟:

1、創建一個自由項目

 

 2、增加構建步驟,見截圖:

 

填寫執行的命令:

點擊保存,創建成功,見截圖:

點擊“立即構建”,手動來構建這一過程,見執行過程中控制台輸出的信息截圖:

也可以在jenkins中設置自動定時的構建過程,不過,這里不再進行詳細的演示了。

        如您對我寫的資料感興趣,請掃描如下二維碼關注我的微信公眾號,謝謝!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 

 

 


免責聲明!

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



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