国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

利用guardian為你的api應(yīng)用寫測試

JellyBool / 413人閱讀

摘要:要寫出一個(gè)健壯的程序必須要有測試,測試可以保證上線的代碼功能符合預(yù)期,防止上線后出現(xiàn)莫須有的損失。根據(jù)這樣的想法,于是編寫了一個(gè)測試框架。的使用非常簡單,你只需要把你的測試案例信息寫成固定的格式,包括請求信息,預(yù)期響應(yīng)信息,預(yù)期的數(shù)據(jù)信息。

要寫出一個(gè)健壯的程序必須要有測試,測試可以保證上線的代碼功能符合預(yù)期,防止上線后出現(xiàn)莫須有的損失。對(duì)于我們一口氣寫完的api,匆忙上線往往會(huì)導(dǎo)致很糟糕的后果。

那么怎么去寫測試來保證我們的api上線后是沒問題且符合預(yù)期的呢?一個(gè)后臺(tái)工程師為了不背鍋,如何去需要保證自己的工作完成得沒問題呢?

注意:我們這里討論的是api符合預(yù)期,對(duì)于客戶端ui顯示,不在我們討論范圍內(nèi)。

我覺得要做好api測試,至少有以下三點(diǎn):

測試案例的返回結(jié)果符合預(yù)期

測試案例覆蓋了所有代碼條件

測試案例的結(jié)果數(shù)據(jù)符合預(yù)期

簡單的說就是,充分理解業(yè)務(wù)的情況下,編寫出完整的測試案例集,然后通過測試案例集驗(yàn)證了返回結(jié)果以及存儲(chǔ)數(shù)據(jù)的準(zhǔn)確性。這就是保證api正確的核心。

根據(jù)這樣的想法,于是編寫了一個(gè)測試框架 Guardian。Guardian 的使用非常簡單,你只需要把你的測試案例信息寫成固定的json格式,包括請求信息,預(yù)期響應(yīng)信息,預(yù)期的數(shù)據(jù)信息。然后運(yùn)行命令,guardian 就會(huì)幫你跑完所有測試案例,并驗(yàn)證最終的結(jié)果返回輸出到終端中。

使用如這個(gè)例子:

guardian --tests=./example/tests/entrance.json

SUIT:  users
=================================================
獲取用戶                                    Ok
-------------------------------------------------
響應(yīng)比對(duì)                                    ??
數(shù)據(jù)比對(duì)                                    ??
=================================================
修改用戶                                    Ok
-------------------------------------------------
響應(yīng)比對(duì)                                    ??
數(shù)據(jù)比對(duì)                                    ??
=================================================

Ok

SUIT:  orders
=================================================
獲取訂單                                    Ok
-------------------------------------------------
響應(yīng)比對(duì)                                    ??
數(shù)據(jù)比對(duì)                                    ??
=================================================
創(chuàng)建訂單                                    Ok
-------------------------------------------------
響應(yīng)比對(duì)                                    ??
數(shù)據(jù)比對(duì)                                    ??
=================================================

Ok
json文件格式 入口文件
選項(xiàng)名 子選項(xiàng)名 描述 格式 是否必須 例子
database port 端口 字符串 3306
user 用戶 字符串 root
password 密碼 字符串 root
charset 字符集 字符串 utf8
host 地址 字符串 127.0.0.1
database 數(shù)據(jù)庫名 字符串 guardian
tables 案例集 對(duì)象 {
"users": [ "users/get.json", "users/post.json" ],
"orders": ["orders/get.json","orders/post.json"]
}
vars 全局變量 對(duì)象 { "host": "http://127.0.0.1:1235" }
debug 設(shè)置為true則會(huì)
打印所有返回結(jié)果
與數(shù)據(jù)庫查詢結(jié)果
布爾 false
測試案例
選項(xiàng)名 子選項(xiàng)名 描述 格式 是否必須 例子
info title 標(biāo)題 字符串 這是一個(gè)標(biāo)題
description 描述 字符串 這是一個(gè)描述
concurrent 并發(fā)數(shù) 整數(shù) 1
request url url 字符串 {{host}}/user
method 方法有:json, get, post, delete, options, formget, formpost 字符串 get
params 參數(shù) 對(duì)象或數(shù)組 {"id": 1}
header 頭部 對(duì)象 {"token": "1231313"}
response body 返回body數(shù)據(jù),對(duì)象中可以有
通配符,如"*",表示不匹配
字符串或?qū)ο?/td> 123
header 頭部 對(duì)象 {"token": "1231313"}
data 驗(yàn)證數(shù)據(jù) 數(shù)組 [
{
"sql": "select name from user where id = 1",
"result": [{"name": "jack"}]
}
]

具體可以參考:

入口json

測試案例json

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/8864.html

相關(guān)文章

  • api測試框架 Guardian

    摘要:項(xiàng)目地址測試有幾個(gè)方面,一個(gè)是的響應(yīng),一個(gè)是持久數(shù)據(jù)庫與內(nèi)存數(shù)據(jù)庫數(shù)據(jù)的準(zhǔn)確性。為了方便測試驅(qū)動(dòng)開發(fā),于是寫了一個(gè)這個(gè)測試框架。現(xiàn)在還在持續(xù)改進(jìn)開發(fā)中,歡迎,歡迎提意見 項(xiàng)目地址:https://github.com/chenhg5/gu... 測試api有幾個(gè)方面,一個(gè)是api的響應(yīng),一個(gè)是持久數(shù)據(jù)庫與內(nèi)存數(shù)據(jù)庫數(shù)據(jù)的準(zhǔn)確性。編寫測試代碼是很繁瑣的,現(xiàn)在先進(jìn)的測試方式就是表格測試,即...

    Hancock_Xu 評(píng)論0 收藏0
  • 云計(jì)算加速變革企業(yè)IT

    摘要:在基礎(chǔ)設(shè)施方面,向公共云轉(zhuǎn)移的好處是顯而易見的更好地利用基礎(chǔ)設(shè)施投資,結(jié)束企業(yè)周期性硬件需求的詛咒。正如的例子所示,為了有效地遷移到云平臺(tái),企業(yè)需要進(jìn)行文化變革,然后通過接受云計(jì)算來加速變革。通過將工作負(fù)載從私有數(shù)據(jù)中心轉(zhuǎn)移到公共云中,云計(jì)算不是解決的技術(shù)問題。正如云計(jì)算專家Bernard Golden所說,組織真正利用云計(jì)算需要的是對(duì)其IT方法進(jìn)行全面反思。然而即使這個(gè)聲明雖然可能很大膽,...

    趙連江 評(píng)論0 收藏0
  • Celer Network 鏈下加密經(jīng)濟(jì)機(jī)制

    摘要:原文地址加密經(jīng)濟(jì)機(jī)制原則現(xiàn)有的鏈下解決方案的加密經(jīng)濟(jì)機(jī)制,通常會(huì)遭受到一些批評(píng)。狀態(tài)守護(hù)網(wǎng)絡(luò)代幣的另一個(gè)重要的價(jià)值體現(xiàn)在,通過創(chuàng)新的保險(xiǎn)模型和簡單的交互,實(shí)現(xiàn)高效的流動(dòng)性效率和安全的去中心化的可用的監(jiān)護(hù)。 原文地址:https://medium.com/@CelerNetw... 加密經(jīng)濟(jì)機(jī)制原則 現(xiàn)有的鏈下解決方案的加密經(jīng)濟(jì)機(jī)制,通常會(huì)遭受到一些批評(píng)。因?yàn)檫@些項(xiàng)目發(fā)行的代幣除了充當(dāng)支...

    騫諱護(hù) 評(píng)論0 收藏0
  • [譯] Elixir、Phoenix、Absinthe、GraphQL、React 和 Apollo

    摘要:對(duì)于每個(gè)案例,我們插入所需要的測試數(shù)據(jù),調(diào)用需要測試的函數(shù)并對(duì)結(jié)果作出斷言。我們將這個(gè)套接字和用戶返回以供我們其他的測試使用。 原文地址:Elixir, Phoenix, Absinthe, GraphQL, React, and Apollo: an absurdly deep dive - Part 2 原文作者:Zach Schneider 譯文出自:掘金翻譯計(jì)劃 本文永久鏈接:gi...

    Cympros 評(píng)論0 收藏0
  • 《java 8 實(shí)戰(zhàn)》讀書筆記 -第八章 重構(gòu)、測試和調(diào)試

    摘要:通常,這種模式是通過定義一個(gè)代表處理對(duì)象的抽象類來實(shí)現(xiàn)的,在抽象類中會(huì)定義一個(gè)字段來記錄后續(xù)對(duì)象。工廠模式使用表達(dá)式第章中,我們已經(jīng)知道可以像引用方法一樣引用構(gòu)造函數(shù)。 一、為改善可讀性和靈活性重構(gòu)代碼 1.改善代碼的可讀性 Java 8的新特性也可以幫助提升代碼的可讀性: 使用Java 8,你可以減少冗長的代碼,讓代碼更易于理解 通過方法引用和Stream API,你的代碼會(huì)變得更...

    gclove 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<