Postman接口測試腳本編寫規范


1.前言
  • 本規范的目的是保證測試部成員編碼的統一。
  • 本規范的核心規則就是接口測試腳本命名規則。
2.名詞解釋
  • 業務流程測試用例:關於產品業務、重要流程的測試用例。
3.接口測試腳本規范
3.1接口測試腳本編寫的規范
1)基本信息
在每個腳本模塊的最上面,必須寫上腳本編寫人(使用英文名或中文拼音縮寫)、腳本創建時間、腳本修改時間、修改說明、輸入參數、輸出參數、腳本描述等。
2)命名規范
常量、變量、參數、函數的命名統一采用駝峰命名法,即第一個單詞以小寫字母開始;第二個單詞的首字母大寫或每一個單詞的首字母都采用大寫字母,
例如:myFirstName、myLastName。
3)代碼注釋規范
注釋要盡量簡單,清晰明了。着重注釋的意思,對不太直觀的部分進行注解。此外,JavaScript 的注釋有兩種"//" 和"/* .... */",建議"//"用作代碼行注釋,"/* .... */"形式用作對整個代碼段的注銷,或較正式的聲明中,如函數參數、功能、文件功能等的描述中。
4)空行
空行是區分代碼塊與塊的間隔,在函數之間必須加上空行;而在函數內部,變量聲明塊和實現塊(實現塊指除變量聲明外的其他代碼)要使用空行來間隔,實現塊的內部,通過空行來標識一個功能段。
5)縮進
必須嚴格執行縮進,變量聲明塊不縮進,實現塊必須保證全部縮進(不可能有實現塊是行首對齊的);對於基本的控制結構來說,必須要有縮進,如IF、DO、WITH、FOR、WHILE塊。
6)續行
對於過長的語句來說,必須使用續行,續行位置要有明顯意義,例如,sql ="SELECT [code],[name] FROM [Person]"_&"WHERE [code] LIKE'001%'"。
7)==和!=
在JS中有=、==、===三種形式,其中“=”表示賦值、“==”表示一般比較只要求值相等,“===”表示嚴格比較要求值和類型都相等。一般情況下除賦值外,比較采用“==”即可。
8)[ ]和{ }
[  ]表示數組,{  }表示對象
注意:在任何地方,不要寫ElseIf語句,最好轉換成If…Else…Endif結構。
3.2 Postman使用規范
1)環境變量和全局變量
變量命名規則同樣采用駝峰命名法。
2)文件夾和單個接口腳本的描述
文件夾是一組具有邏輯關系或是屬於相同模塊的接口集合(如購買流程、用戶個人中心模塊),在其描述中要注明a.執行該組接口的前提條件;b.執行該組接口的內容;c.執行該組接口的目的。
單個接口是指具體到接口的用途如上傳文件、創建項目、獲取列表等,在其描述中同樣需要注明a.執行該接口的前提條件;b.執行該接口的內容;c.執行該接口的目的。
3)Postman—tests內置腳本
(1). 清除一個全局變量 Clear a global variable
   對應腳本: 
   postman.clearGlobalVariable("variable_key");
參數:需要清除的變量的key
(2).清除一個環境變量  Clear an environment variable
   對應腳本: 
   postman.clearEnvironmentVariable("variable_key");
參數:需要清除的環境變量的key
(3).response包含內容  Response body:Contains string
   對應腳本: 
   tests["Body matches string"] =responseBody.has("string_you_want_to_search");
參數:預期內容 
(4).將xml格式的response轉換成Json格式  Response body:Convert XML body to a JSON Object
   對應腳本:    var jsonObject = xml2Json(responseBody);
參數:(默認不需要設置參數,為接口的response)需要轉換的xml
(5).response等於預期內容  Response body:Is equal to a string
   對應腳本: 
   tests["Body is correct"] = responseBody === "response_body_string";
參數:預期response
(6).json解析key的值進行校驗 Response body:JSON value check
   對應腳本: 
   tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
參數:test替換被測的值,args替換被測的key
(7).檢查response的header信息是否有被測字段 Response headers:Content-Type header check
   對應腳本: 
   tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
參數:預期header
(8).響應時間判斷 Response time is less than 200ms
   對應腳本: 
   tests["Response time is less than 200ms"] = responseTime < 200;
參數:響應時間 
(9).設置全局變量 Set an global variable
     對應腳本: 
     postman.setGlobalVariable("variable_key", "variable_value");
     參數:全局變量的鍵值 
(10).設置環境變量 Set an environment variable
     對應腳本: 
     postman.setEnvironmentVariable("variable_key", "variable_value");
     參數:環境變量的鍵值 
(11).判斷狀態碼  Status code:Code is 200
     對應腳本: 
     tests["Status code is 200"] = responseCode.code != 400;
     參數:狀態碼 
(12).檢查code name 是否包含內容 Status code:Code name has string
     對應腳本: 
     tests["Status code name has string"] = responseCode.name.has("Created");
     參數:預期code name包含字符串 
(13).成功的post請求Status code:Successful POST request
     對應腳本: 
     tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
(14).微小驗證器Use Tiny Validator for JSON data            
      對應腳本:  
        var schema = {         "items": {         "type": "boolean" }};         var data1 = [true, false];        var data2 = [true, 123];        console.log(tv4.error);
       tests["Valid Data1"] = tv4.validate(data1, schema);
       tests["Valid Data2"] = tv4.validate(data2, schema);
       參數:可以修改items里面的鍵值對來對應驗證json的參數 
4.單個接口測試  
1)接口 
接口是組成流程測試的基本單元,組合不同的業務接口可以實現不同的業務流程測試。如創建項目+查詢項目+修改項目組成了一個關於項目的測試流程。
2)接口測試的優點 
5.整個流程的開發過程
 使用接口測試業務流程,需要對產品需求、產品所涉及的行業有一定的深度的了解,業務流程分為通用流程和被測產品專用流程。
通用流程如注冊登錄、上傳文件等,專用流程是被測產品特有的流程,以創盟項目為例
 

 

 


免責聲明!

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



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