亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

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

JellyBool / 516人閱讀

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

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

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

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

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

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

測(cè)試案例覆蓋了所有代碼條件

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

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

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

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

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

SUIT:  users
=================================================
獲取用戶(hù)                                    Ok
-------------------------------------------------
響應(yīng)比對(duì)                                    ??
數(shù)據(jù)比對(duì)                                    ??
=================================================
修改用戶(hù)                                    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 用戶(hù) 字符串 root
password 密碼 字符串 root
charset 字符集 字符串 utf8
host 地址 字符串 127.0.0.1
database 數(shù)據(jù)庫(kù)名 字符串 guardian
tables 無(wú) 案例集 對(duì)象 {
"users": [ "users/get.json", "users/post.json" ],
"orders": ["orders/get.json","orders/post.json"]
}
vars 無(wú) 全局變量 對(duì)象 { "host": "http://127.0.0.1:1235" }
debug 無(wú) 設(shè)置為true則會(huì)
打印所有返回結(jié)果
與數(shù)據(jù)庫(kù)查詢(xún)結(jié)果
布爾 false
測(cè)試案例
選項(xiàng)名 子選項(xiàng)名 描述 格式 是否必須 例子
info title 標(biāo)題 字符串 這是一個(gè)標(biāo)題
description 描述 字符串 這是一個(gè)描述
concurrent 無(wú) 并發(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 無(wú) 驗(yàn)證數(shù)據(jù) 數(shù)組 [
{
"sql": "select name from user where id = 1",
"result": [{"name": "jack"}]
}
]

具體可以參考:

入口json

測(cè)試案例json

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/8864.html

相關(guān)文章

  • api測(cè)試框架 Guardian

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

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

    摘要:在基礎(chǔ)設(shè)施方面,向公共云轉(zhuǎn)移的好處是顯而易見(jiàn)的更好地利用基礎(chǔ)設(shè)施投資,結(jié)束企業(yè)周期性硬件需求的詛咒。正如的例子所示,為了有效地遷移到云平臺(tái),企業(yè)需要進(jìn)行文化變革,然后通過(guò)接受云計(jì)算來(lái)加速變革。通過(guò)將工作負(fù)載從私有數(shù)據(jù)中心轉(zhuǎn)移到公共云中,云計(jì)算不是解決的技術(shù)問(wèn)題。正如云計(jì)算專(zhuān)家Bernard Golden所說(shuō),組織真正利用云計(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)在,通過(guò)創(chuàng)新的保險(xiǎn)模型和簡(jiǎ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è)案例,我們插入所需要的測(cè)試數(shù)據(jù),調(diào)用需要測(cè)試的函數(shù)并對(duì)結(jié)果作出斷言。我們將這個(gè)套接字和用戶(hù)返回以供我們其他的測(cè)試使用。 原文地址: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)》讀書(shū)筆記 -第八章 重構(gòu)、測(cè)試和調(diào)試

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

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

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

0條評(píng)論

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