摘要:要寫出一個健壯的程序必須要有測試,測試可以保證上線的代碼功能符合預期,防止上線后出現莫須有的損失。根據這樣的想法,于是編寫了一個測試框架。的使用非常簡單,你只需要把你的測試案例信息寫成固定的格式,包括請求信息,預期響應信息,預期的數據信息。
要寫出一個健壯的程序必須要有測試,測試可以保證上線的代碼功能符合預期,防止上線后出現莫須有的損失。對于我們一口氣寫完的api,匆忙上線往往會導致很糟糕的后果。
那么怎么去寫測試來保證我們的api上線后是沒問題且符合預期的呢?一個后臺工程師為了不背鍋,如何去需要保證自己的工作完成得沒問題呢?
注意:我們這里討論的是api符合預期,對于客戶端ui顯示,不在我們討論范圍內。
我覺得要做好api測試,至少有以下三點:
測試案例的返回結果符合預期
測試案例覆蓋了所有代碼條件
測試案例的結果數據符合預期
簡單的說就是,充分理解業(yè)務的情況下,編寫出完整的測試案例集,然后通過測試案例集驗證了返回結果以及存儲數據的準確性。這就是保證api正確的核心。
根據這樣的想法,于是編寫了一個測試框架 Guardian。Guardian 的使用非常簡單,你只需要把你的測試案例信息寫成固定的json格式,包括請求信息,預期響應信息,預期的數據信息。然后運行命令,guardian 就會幫你跑完所有測試案例,并驗證最終的結果返回輸出到終端中。
使用如這個例子:
guardian --tests=./example/tests/entrance.json SUIT: users ================================================= 獲取用戶 Ok ------------------------------------------------- 響應比對 ?? 數據比對 ?? ================================================= 修改用戶 Ok ------------------------------------------------- 響應比對 ?? 數據比對 ?? ================================================= Ok SUIT: orders ================================================= 獲取訂單 Ok ------------------------------------------------- 響應比對 ?? 數據比對 ?? ================================================= 創(chuàng)建訂單 Ok ------------------------------------------------- 響應比對 ?? 數據比對 ?? ================================================= Okjson文件格式 入口文件
選項名 | 子選項名 | 描述 | 格式 | 是否必須 | 例子 |
---|---|---|---|---|---|
database | port | 端口 | 字符串 | 是 | 3306 |
user | 用戶 | 字符串 | 是 | root | |
password | 密碼 | 字符串 | 是 | root | |
charset | 字符集 | 字符串 | 是 | utf8 | |
host | 地址 | 字符串 | 是 | 127.0.0.1 | |
database | 數據庫名 | 字符串 | 是 | guardian | |
tables | 無 | 案例集 | 對象 | 是 | { "users": [ "users/get.json", "users/post.json" ], "orders": ["orders/get.json","orders/post.json"] } |
vars | 無 | 全局變量 | 對象 | 否 | { "host": "http://127.0.0.1:1235" } |
debug | 無 | 設置為true則會 打印所有返回結果 與數據庫查詢結果 |
布爾 | 否 | false |
選項名 | 子選項名 | 描述 | 格式 | 是否必須 | 例子 |
---|---|---|---|---|---|
info | title | 標題 | 字符串 | 是 | 這是一個標題 |
description | 描述 | 字符串 | 是 | 這是一個描述 | |
concurrent | 無 | 并發(fā)數 | 整數 | 否 | 1 |
request | url | url | 字符串 | 是 | {{host}}/user |
method | 方法有:json, get, post, delete, options, formget, formpost | 字符串 | 是 | get | |
params | 參數 | 對象或數組 | 否 | {"id": 1} | |
header | 頭部 | 對象 | 否 | {"token": "1231313"} | |
response | body | 返回body數據,對象中可以有 通配符,如"*",表示不匹配 |
字符串或對象 | 是 | 123 |
header | 頭部 | 對象 | 否 | {"token": "1231313"} | |
data | 無 | 驗證數據 | 數組 | 否 | [ { "sql": "select name from user where id = 1", "result": [{"name": "jack"}] } ] |
具體可以參考:
入口json
測試案例json
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/8864.html
摘要:項目地址測試有幾個方面,一個是的響應,一個是持久數據庫與內存數據庫數據的準確性。為了方便測試驅動開發(fā),于是寫了一個這個測試框架?,F在還在持續(xù)改進開發(fā)中,歡迎,歡迎提意見 項目地址:https://github.com/chenhg5/gu... 測試api有幾個方面,一個是api的響應,一個是持久數據庫與內存數據庫數據的準確性。編寫測試代碼是很繁瑣的,現在先進的測試方式就是表格測試,即...
摘要:在基礎設施方面,向公共云轉移的好處是顯而易見的更好地利用基礎設施投資,結束企業(yè)周期性硬件需求的詛咒。正如的例子所示,為了有效地遷移到云平臺,企業(yè)需要進行文化變革,然后通過接受云計算來加速變革。通過將工作負載從私有數據中心轉移到公共云中,云計算不是解決的技術問題。正如云計算專家Bernard Golden所說,組織真正利用云計算需要的是對其IT方法進行全面反思。然而即使這個聲明雖然可能很大膽,...
摘要:原文地址加密經濟機制原則現有的鏈下解決方案的加密經濟機制,通常會遭受到一些批評。狀態(tài)守護網絡代幣的另一個重要的價值體現在,通過創(chuàng)新的保險模型和簡單的交互,實現高效的流動性效率和安全的去中心化的可用的監(jiān)護。 原文地址:https://medium.com/@CelerNetw... 加密經濟機制原則 現有的鏈下解決方案的加密經濟機制,通常會遭受到一些批評。因為這些項目發(fā)行的代幣除了充當支...
摘要:對于每個案例,我們插入所需要的測試數據,調用需要測試的函數并對結果作出斷言。我們將這個套接字和用戶返回以供我們其他的測試使用。 原文地址:Elixir, Phoenix, Absinthe, GraphQL, React, and Apollo: an absurdly deep dive - Part 2 原文作者:Zach Schneider 譯文出自:掘金翻譯計劃 本文永久鏈接:gi...
摘要:通常,這種模式是通過定義一個代表處理對象的抽象類來實現的,在抽象類中會定義一個字段來記錄后續(xù)對象。工廠模式使用表達式第章中,我們已經知道可以像引用方法一樣引用構造函數。 一、為改善可讀性和靈活性重構代碼 1.改善代碼的可讀性 Java 8的新特性也可以幫助提升代碼的可讀性: 使用Java 8,你可以減少冗長的代碼,讓代碼更易于理解 通過方法引用和Stream API,你的代碼會變得更...
閱讀 1273·2021-09-30 09:47
閱讀 3839·2021-09-06 15:02
閱讀 1851·2021-09-01 10:46
閱讀 2430·2019-08-30 15:52
閱讀 697·2019-08-29 15:28
閱讀 1928·2019-08-29 15:08
閱讀 1224·2019-08-29 13:28
閱讀 2627·2019-08-29 12:19