C#進階系列——WebApi 接口測試工具:WebApiTestClient C#進階系列——WebApi 接口測試工具:WebApiTestClient

C#進階系列——WebApi 接口測試工具:WebApiTestClient

1、WebApiTestClient介紹

一、WebApiTestClient組件做用主要有如下幾個:css

(1)、將WebApi的接口放到了瀏覽器裏面,以可視化的方式展示出來,好比咱們經過http://localhost:8080/Help這個地址就能在瀏覽器裏面看到這個服務裏面全部的API接口以及接口的詳細說明,省去了咱們手寫接口文檔的麻煩。html

(2)、可以詳細查看API的類說明、方法說明、參數說明、返回值說明。只須要咱們在定義方法時候加上 /// <summary> 這種詳細註釋便可,組件自動讀取註釋裏面的內容展示在界面上面。git

(3)、能夠修改http請求頭文件Head和請求體Body裏面的參數,指定發送http請求的特性,好比指定咱們最多見的contentType指示參數的類型。github

(4)、組件擁有測試接口的功能,用過Soup UI的朋友應該知道,經過Soup UI可以方便測試WebService參數以及返回值。咱們的WebApiTestClient也能夠實現相似的功能,直接經過頁面上的測試按鈕,就能測試接口。json

二、WebApiTestClient是一個開源組件。開源地址:https://github.com/yaohuang/WebApiTestClient瀏覽器

2、WebApiTestClient展現

第一印象:接口列表。 app

點擊某一個接口查看接口詳細。例如本文查看Get請求的無參方法,右下角有按鈕能夠測試接口。ide

點擊「Test API」按鈕工具

點擊Send發送請求post

第二個有參數的接口

手動輸入參數,獲得返回結果

若是參數的類型是對象,能夠直接解析class定義上面的 /// <summary> 標註,顯示以下

因爲是post請求,若是須要執行參數長度和類型,能夠經過content-length和content-type來指定。而且具體的參數能夠指定不一樣格式顯示,好比下圖的application/json和application/xml

獲得返回值

3、WebApiTestClient使用

一、如何引入組件

首先,咱們須要定義一個API項目

而後經過Nuget引入組件,以下圖。記住選下圖中的第三個。

引入成功後,將向項目裏面添加一些主要文件:

  • Scripts\WebApiTestClient.js
  • Areas\HelpPage\TestClient.css
  • Areas\HelpPage\Views\Help\DisplayTemplates\TestClientDialogs.cshtml
  • Areas\HelpPage\Views\Help\DisplayTemplates\TestClientReferences.cshtml

二、如何使用組件

 一、修改Api.cshtml文件

經過上述步驟,就能將組件WebAPITestClient引入進來。下面咱們只須要作一件事:打開文件 (根據 Areas\HelpPage\Views\Help) Api.cshtml 並添加如下內容:

  • @Html.DisplayForModel("TestClientDialogs")
  • @Html.DisplayForModel("TestClientReferences")

添加後Api.cshtml文件的代碼以下

複製代碼
@using System.Web.Http
@using WebApiTestClient.Areas.HelpPage.Models
@model HelpPageApiModel

@{
    var description = Model.ApiDescription;
    ViewBag.Title = description.HttpMethod.Method + " " + description.RelativePath;
}

<link type="text/css" href="~/Areas/HelpPage/HelpPage.css" rel="stylesheet" />
<div id="body" class="help-page">
    <section class="featured">
        <div class="content-wrapper">
            <p>
                @Html.ActionLink("Help Page Home", "Index")
            </p>
        </div>
    </section>
    <section class="content-wrapper main-content clear-fix">
        @Html.DisplayForModel()
    </section>
</div>

@Html.DisplayForModel("TestClientDialogs")
@section Scripts{
    <link href="~/Areas/HelpPage/HelpPage.css" rel="stylesheet" />
    @Html.DisplayForModel("TestClientReferences")
}
複製代碼

二、配置讀取註釋的xml路徑

其實,經過上面的步驟,咱們的項目已經能夠跑起來了,也能夠調用接口測試。可是,還不能讀取 /// <summary> 註釋裏面的東西。須要作以下配置才行。

(1)配置生成xml的路徑。咱們在項目上面點右鍵→屬性→生成標籤頁配置xml的路徑

 

(2)在xml的讀取路徑:在下圖的HelpPageConfig.cs裏面配置一句話,指定xml的讀取路徑。

這句代碼以下:

config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/WebApiTestClient.XML")));

三、測試接口

複製代碼
    /// <summary>
    /// 測試API Test Client
    /// </summary>
    public class TestChargingDataController : ApiController
    {
        /// <summary>
        /// 獲得全部數據
        /// </summary>
        /// <returns>返回數據</returns>
        [HttpGet]
        public string GetAllChargingData()
        {
            return "ChargingData";
        }

        /// <summary>
        /// 獲得當前Id的全部數據
        /// </summary>
        /// <param name="id">參數Id</param>
        /// <returns>返回數據</returns>
        [HttpGet]
        public string GetAllChargingData(string id)
        {
            return "ChargingData" + id ;
        }

        /// <summary>
        /// Post提交
        /// </summary>
        /// <param name="oData">對象</param>
        /// <returns>提交是否成功</returns>
        [HttpPost]
        public bool Post(TB_CHARGING oData)
        {
            return true;
        }

        /// <summary>
        /// Put請求
        /// </summary>
        /// <param name="oData">對象</param>
        /// <returns>提交是否成功</returns>
        [HttpPut]
        public bool Put(TB_CHARGING oData)
        {
            return true;
        }

        /// <summary>
        /// delete操做
        /// </summary>
        /// <param name="id">對象id</param>
        /// <returns>操做是否成功</returns>
        [HttpDelete]
        public bool Delete(string id)
        {
            return true;
        }
    }

    /// <summary>
    /// 充電對象實體
    /// </summary>
    public class TB_CHARGING
    {
        /// <summary>
        /// 主鍵Id
        /// </summary>
        public string ID { get; set; }

        /// <summary>
        /// 充電設備名稱
        /// </summary>
        public string NAME { get; set; }

        /// <summary>
        /// 充電設備描述
        /// </summary>
        public string DES { get; set; }

        /// <summary>
        /// 建立時間
        /// </summary>
        public DateTime CREATETIME { get; set; }
    }
複製代碼

至此,組件就搭完了,剩下的就是運行了。咱們在url裏面敲地址http://localhost:8080/Help/Index或者http://localhost:8080/Help就能獲得上述效果。還不趕忙試試~~

相關文章
相關標籤/搜索