日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

.net core实践系列之短信服务-Api的SDK的实现与测试

發布時間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net core实践系列之短信服务-Api的SDK的实现与测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

上一篇《.net core實踐系列之短信服務-Sikiro.SMS.Api服務的實現》講解了API的設計與實現,本篇主要講解編寫接口的SDK編寫還有API的測試。

或許有些人會認為,SDK的編寫可以不需要,既然已經用了RESTful web服務與Swagger提供的接口描述,只要選擇合適的接口調用框架,找到對應Swagger文檔按需調用即可。

這個我贊同,特別在微服務架構下使用了API網關與服務發現。因此本篇也是借用編寫SDK來模擬在客戶端使用接口框架調用,并增加負載測試的講解,供需要的朋友們分享。

項目源碼地址:https://github.com/SkyChenSky/Sikiro.SMS.git

SDK

Software Development Kit的縮寫,翻譯中文為軟件開發工具包,百度定義為軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統等創建應用軟件的開發工具的集合。而我們這里的SDK主要是以工具庫的形式提供給部門內部使用API。

設計要點

  • 盡量少的依賴

  • 多形式方法重載

  • 高可讀性

從上三點得出,高可讀的方法注釋,方便使用的多重載(單條、多條、異步、同步),如涉及到枚舉,不要依賴原有項目的其他庫,應拷貝過來完整提供。

組件選擇

  • RestSharp

  • .Net Standard

RestSharp

為了良好的調用RESTful API,我選擇RestSharp這個RESTful接口調用框架。

源碼地址:https://github.com/restsharp/RestSharp

優點

請求調用與響應結果的直觀化:

步驟:

  • 傳入資源

  • 定義動作

  • 設置表述類型

  • 傳入實體參數

注意點

1.默認序列化類型為XML,應手動設置為JSON

RequestFormat = DataFormat.Json

2.反序列化有缺陷,對于實體內的類類型屬性(List<T>、自定義類等),應再構造函數初始化賦默認值

示例

.Net Standard

公司里除了有新用的.NET Core項目還有大量的存量.NET Framework舊項目。

.NET Standard是一種規范,無法以此建立應用,但他能以庫的形式作為支撐。.NET Standard的出現為了解決以編寫一次的庫來同時支持多個平臺(.NET Framework、.NET Core、Xamarin)的使用。

?

為了實現多平臺的API標準映射,不同版本的映射與數量也隨著不一樣

.NET Standard

1.01.11.21.31.41.51.62.0
.NET Core1.01.01.01.01.01.01.02.0
.NET Framework4.54.54.5.14.64.6.14.6.1?4.6.1?4.6.1
Mono4.64.64.64.64.64.64.6vNext
Xamarin.iOS10.010.010.010.010.010.010.0vNext
Xamarin.Android7.07.07.07.07.07.07.0vNext
Universal Windows Platform10.010.010.010.010.0vNextvNextvNext
Windows8.08.08.1




Windows Phone8.18.18.1




Windows Phone Silverlight8.0






.Net Standard編譯多版本程序集設置

右鍵編輯項目.csproj,可見下圖原本應該是TargetFramework的節點,改為TargetFrameworks(多了個s),通過分號區分不同的程序集,因為RestSharp需要到.NET Framework4.6支持,因為我填入了net46。

接口測試

單元測試

百度定義:單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。

單元:可以是C語言中單元指一個函數,C#、Java里單元指一個類。總的來說,單元就是人為規定的最小的被測功能模塊。

然而我的示例代碼里的單元測試并非正統規范的單元測試,而是利用單元測試項目來做接口的測試并做負載測試的可運行代碼。因此大家不必學習我的做法。

這里有微軟的官方文檔XUnit結合了mock框架,可供大家學習傳送門

負載測試

百度定義:負載測試是模擬實際軟件系統所承受的負載條件的系統負荷,通過不斷加載(如逐漸增加模擬用戶的數量)或其它加載方式來觀察不同負載下系統的響應時間和數據吞吐量、系統占用的資源(如CPU、內存)等,以檢驗系統的行為和特性,以發現系統可能存在的性能瓶頸、內存泄漏、不能實時同步等問題。

1.對于使用VS2017的可以先到工具-獲取工具與功能,勾上Web性能與負載工具

2.添加Web性能和負載測試項目,該項目只能是.NET Framework

3.添加負載測試,并選擇本地負載測試,負載測試持續時間是此方案的測試總時間,測試迭代是測試方案的測試總次數

4.輸入方案場景名稱,并選擇思考時間,思考時間可以理解成客戶操作的停頓時間。

5.常量負載指模擬的每次測試固定并發數,分級負載則是模擬并發數持續遞增。

6.選擇需要進行負載測試的單元測試,上面我們編寫SDK的單元測試來進行接口測試,因此我們可以選擇Send單元測試方法,進行測試接口的性能如何。

7.點擊完成,并運行負載測試

8.漫長的等待之后可以查看測試結果與關系圖

需要注意的是,做負載測試的時候需要模擬并發請求,這里是占資源的,因此盡量把測試服務放到服務器上測試。

相關文章:

  • .net core實踐系列之短信服務-為什么選擇.net core(開篇)

  • .net core實踐系列之短信服務-架構設計

  • .net core實踐系列之短信服務-Sikiro.SMS.Api服務的實現

  • .net core實踐系列之短信服務-Sikiro.SMS.Job服務的實現

原文地址:?https://www.cnblogs.com/skychen1218/p/9585277.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的.net core实践系列之短信服务-Api的SDK的实现与测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。