1. 程式人生 > >我的python自動化學習筆記-第一篇(介面測試)

我的python自動化學習筆記-第一篇(介面測試)

學習的介面測試工具postman、jmeter

在介面測試之前,我們要獲得介面文件。介面文件會告訴我們:
url 請求方式 請求引數 引數的說明
url即要訪問的連結、地址
請求方式指。。。有直接向伺服器獲取資料的請求方式(get)。有的要輸入一些資料,才能向伺服器獲取資料(post),如登入。(具體不清楚)後續補充
最常用的兩種請求方式:get、post
請求引數是。。傳送給伺服器的欄位名稱?如登入時的username。具體啥定義。不知道 後續補充
還有一個叫做傳參的方式,一般是key—value方式傳參。還有json傳參。還有需要上傳檔案的方式,引數型別改成file。不同的傳參方式操作不同。
接下來,我們要知道的是:什麼是介面?get和post分別是什麼?header和body?請求引數是什麼?postman和Jmeter怎麼用?key—value傳參和json傳參、file型別的傳參請求操作上有啥不同?

一、get請求

1、什麼意思:即只向瀏覽器獲取資料的請求。
2、操作上的特點:

    1、直接通過連結獲取伺服器響應,引數寫在連結裡面的,可通過瀏覽器輸入地址測試,一般認為這種請求不安全。(不停的改變引數即達到測試目的。)
    2、沒有請求體、只有請求頭。(請求體是什麼?請求頭是什麼?)
    3、有引數的大小限制。

二、post請求

1、什麼意思:通過輸入資料的方式向伺服器獲取資料的請求。如:登入。
2、操作上的特點:

       1、測試時需要藉助工具。
       2、需要cookie、file等資訊的介面都是post型別。

三、header與body

一個介面,即向伺服器傳送的一個請求。資訊中通常包含頭資訊(header)和身體資訊(body)

   header包含的資訊包括:發出請求的額外資訊、用的哪種瀏覽器、想讓伺服器返回什麼樣的資料、cookie。
    body包含的資訊:正常發給伺服器的資料。

四、 介面測試要考慮的測試要點

       1、正常的資料測試一遍。
       2、異常的資料。
             1、不按介面文件的來。錯誤的引數、錯誤的value、空引數、空value
             2、錯誤的業務邏輯。
      介面測試用例格式:
      專案  模組   url  請求方式 請求引數  預期結果  實際結果  狀態

五、postman

    操作比較簡單。主要要記錄的是:
    1、post請求時、cookie寫在在【header】裡。【key】就填Cookie。【value】填cookie的值。可通過檢視頁面元素找到。有cookie的請求一定要把cookie填進來。
    2、引數寫在body。通過介面文件分別把引數名填到【key】中。【value】是測試根據測試目的的填具體資料。
    3、json傳參時、把引數資料拷貝到【body】-【raw】中。
    3、要上傳檔案的介面,點選【body】-【form-data】,更改key的型別為file即可上傳檔案。引數名為:file

json是什麼?通用語言,客戶端和服務端不是同一語言時,json充當翻譯。
**cookie是什麼?**儲存在你自己本地的一個鍵值對,是客戶端記錄使用者的登入資訊用的嗎?
session是儲存在服務端的一個鍵值對 ,如果cookie和session一樣。就可以從伺服器直接獲取到資料,不用重新登入。好像有時效。

六、Jmeter

   1、用java開發的、開源的、效能測試工具。
   2、jmeter中【返回響應的資料】中文亂碼如何解決:
         在jmeter的bin目錄下,找到jmeter的配置檔案,jmeter.properties,然後把
     sampleresult.default.encoding=UTF-8加到最下面 ,重新開啟jmeter
   3、新增執行緒組。右擊【測試計劃】-【新增】-【Threads】-【執行緒組】。填寫線城數(1)、迴圈次數(1)、持續時間。
   4、新增介面。右擊【執行緒組名】【新增】-【Sampler】-【HTTP請求】。
   5、新增【檢視結果樹】。右擊【執行緒組】-【新增】-【監聽器】-【察看結果樹】---察看介面測試結果
   6、新增【聚合報告】。右擊【執行緒組】-【新增】-【監聽器】-【聚合報告】---察看效能測試結果
   7、輸入cookie。右擊【介面名稱】。點選【配置元件】-【HTTP資訊頭管理器】。點選【新增】。名稱寫:Cookie。值寫cookie的內容。
   8、jmeter引數化
   即引數的value可以通過其它方式自動變化。而不是一成不變。
        1、【選項】-【函式助手對話方塊】。可選擇__Random:取一個範圍裡的隨機的一個數。_time等。
   9、要想某個引數的value從一個檔案中一個一個的取value.
         1、需要右擊介面,點選【新增】-【配置元件】-【CSV-Data-Set-Config]。在filename中輸入檔案絕對路徑如:/Users/liuchang/Desktop/www.txt
         2、該引數的value名字填入: ${檔名稱}  如:${www.txt}
   10、關聯
       從上一個測試的接口裡獲取結果,傳遞到下一個介面。
       1、兩個介面在同一個執行緒組。貢獻資料的介面要在上面先執行。
       2、步驟 1、右擊上一個介面,點選【新增】-【後置處理器】-【[email protected] Path Extractor】。在name中輸入變數的名字(自己命名)、在Expression中輸入$.響應資料的頭.響應資料的key。示例:$.login_info.userId
       重複2步驟,有幾個key就得重複幾次。
       3、在下一個介面的引數的value中輸入${變數的名字}。
    
    其它注意事項:
          1、伺服器名稱不用輸http:// 。直接輸地址或ip 如:api.nnzhp.cn。路徑直接輸路徑。如:/api/user/login
          1、https請求時,要在協議中輸入https
          2、有時中文亂碼。可在connect-encoding中輸入:utf-8
          3、json請求點選【body Data】;檔案上傳型別的介面 選擇【file upload】。新增完檔案別忘了輸入引數名:file  。一般都是parameters。