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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

前言

上一篇《.net core實(shí)踐系列之短信服務(wù)-Sikiro.SMS.Api服務(wù)的實(shí)現(xiàn)》講解了API的設(shè)計(jì)與實(shí)現(xiàn),本篇主要講解編寫(xiě)接口的SDK編寫(xiě)還有API的測(cè)試。

或許有些人會(huì)認(rèn)為,SDK的編寫(xiě)可以不需要,既然已經(jīng)用了RESTful web服務(wù)與Swagger提供的接口描述,只要選擇合適的接口調(diào)用框架,找到對(duì)應(yīng)Swagger文檔按需調(diào)用即可。

這個(gè)我贊同,特別在微服務(wù)架構(gòu)下使用了API網(wǎng)關(guān)與服務(wù)發(fā)現(xiàn)。因此本篇也是借用編寫(xiě)SDK來(lái)模擬在客戶(hù)端使用接口框架調(diào)用,并增加負(fù)載測(cè)試的講解,供需要的朋友們分享。

項(xiàng)目源碼地址:https://github.com/SkyChenSky/Sikiro.SMS.git

SDK

Software Development Kit的縮寫(xiě),翻譯中文為軟件開(kāi)發(fā)工具包,百度定義為軟件工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等創(chuàng)建應(yīng)用軟件的開(kāi)發(fā)工具的集合。而我們這里的SDK主要是以工具庫(kù)的形式提供給部門(mén)內(nèi)部使用API。

設(shè)計(jì)要點(diǎn)

  • 盡量少的依賴(lài)

  • 多形式方法重載

  • 高可讀性

從上三點(diǎn)得出,高可讀的方法注釋,方便使用的多重載(單條、多條、異步、同步),如涉及到枚舉,不要依賴(lài)原有項(xiàng)目的其他庫(kù),應(yīng)拷貝過(guò)來(lái)完整提供。

組件選擇

  • RestSharp

  • .Net Standard

RestSharp

為了良好的調(diào)用RESTful API,我選擇RestSharp這個(gè)RESTful接口調(diào)用框架。

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

優(yōu)點(diǎn)

請(qǐng)求調(diào)用與響應(yīng)結(jié)果的直觀(guān)化:

步驟:

  • 傳入資源

  • 定義動(dòng)作

  • 設(shè)置表述類(lèi)型

  • 傳入實(shí)體參數(shù)

注意點(diǎn)

1.默認(rèn)序列化類(lèi)型為XML,應(yīng)手動(dòng)設(shè)置為JSON

RequestFormat = DataFormat.Json

2.反序列化有缺陷,對(duì)于實(shí)體內(nèi)的類(lèi)類(lèi)型屬性(List<T>、自定義類(lèi)等),應(yīng)再構(gòu)造函數(shù)初始化賦默認(rèn)值

示例

.Net Standard

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

.NET Standard是一種規(guī)范,無(wú)法以此建立應(yīng)用,但他能以庫(kù)的形式作為支撐。.NET Standard的出現(xiàn)為了解決以編寫(xiě)一次的庫(kù)來(lái)同時(shí)支持多個(gè)平臺(tái)(.NET Framework、.NET Core、Xamarin)的使用。

?

為了實(shí)現(xiàn)多平臺(tái)的API標(biāo)準(zhǔn)映射,不同版本的映射與數(shù)量也隨著不一樣

.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編譯多版本程序集設(shè)置

右鍵編輯項(xiàng)目.csproj,可見(jiàn)下圖原本應(yīng)該是TargetFramework的節(jié)點(diǎn),改為T(mén)argetFrameworks(多了個(gè)s),通過(guò)分號(hào)區(qū)分不同的程序集,因?yàn)镽estSharp需要到.NET Framework4.6支持,因?yàn)槲姨钊肓薾et46。

接口測(cè)試

單元測(cè)試

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

單元:可以是C語(yǔ)言中單元指一個(gè)函數(shù),C#、Java里單元指一個(gè)類(lèi)??偟膩?lái)說(shuō),單元就是人為規(guī)定的最小的被測(cè)功能模塊。

然而我的示例代碼里的單元測(cè)試并非正統(tǒng)規(guī)范的單元測(cè)試,而是利用單元測(cè)試項(xiàng)目來(lái)做接口的測(cè)試并做負(fù)載測(cè)試的可運(yùn)行代碼。因此大家不必學(xué)習(xí)我的做法。

這里有微軟的官方文檔XUnit結(jié)合了mock框架,可供大家學(xué)習(xí)傳送門(mén)

負(fù)載測(cè)試

百度定義:負(fù)載測(cè)試是模擬實(shí)際軟件系統(tǒng)所承受的負(fù)載條件的系統(tǒng)負(fù)荷,通過(guò)不斷加載(如逐漸增加模擬用戶(hù)的數(shù)量)或其它加載方式來(lái)觀(guān)察不同負(fù)載下系統(tǒng)的響應(yīng)時(shí)間和數(shù)據(jù)吞吐量、系統(tǒng)占用的資源(如CPU、內(nèi)存)等,以檢驗(yàn)系統(tǒng)的行為和特性,以發(fā)現(xiàn)系統(tǒng)可能存在的性能瓶頸、內(nèi)存泄漏、不能實(shí)時(shí)同步等問(wèn)題。

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

2.添加Web性能和負(fù)載測(cè)試項(xiàng)目,該項(xiàng)目只能是.NET Framework

3.添加負(fù)載測(cè)試,并選擇本地負(fù)載測(cè)試,負(fù)載測(cè)試持續(xù)時(shí)間是此方案的測(cè)試總時(shí)間,測(cè)試迭代是測(cè)試方案的測(cè)試總次數(shù)

4.輸入方案場(chǎng)景名稱(chēng),并選擇思考時(shí)間,思考時(shí)間可以理解成客戶(hù)操作的停頓時(shí)間。

5.常量負(fù)載指模擬的每次測(cè)試固定并發(fā)數(shù),分級(jí)負(fù)載則是模擬并發(fā)數(shù)持續(xù)遞增。

6.選擇需要進(jìn)行負(fù)載測(cè)試的單元測(cè)試,上面我們編寫(xiě)SDK的單元測(cè)試來(lái)進(jìn)行接口測(cè)試,因此我們可以選擇Send單元測(cè)試方法,進(jìn)行測(cè)試接口的性能如何。

7.點(diǎn)擊完成,并運(yùn)行負(fù)載測(cè)試

8.漫長(zhǎng)的等待之后可以查看測(cè)試結(jié)果與關(guān)系圖

需要注意的是,做負(fù)載測(cè)試的時(shí)候需要模擬并發(fā)請(qǐng)求,這里是占資源的,因此盡量把測(cè)試服務(wù)放到服務(wù)器上測(cè)試。

相關(guān)文章:

  • .net core實(shí)踐系列之短信服務(wù)-為什么選擇.net core(開(kāi)篇)

  • .net core實(shí)踐系列之短信服務(wù)-架構(gòu)設(shè)計(jì)

  • .net core實(shí)踐系列之短信服務(wù)-Sikiro.SMS.Api服務(wù)的實(shí)現(xiàn)

  • .net core實(shí)踐系列之短信服務(wù)-Sikiro.SMS.Job服務(wù)的實(shí)現(xiàn)

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


.NET社區(qū)新聞,深度好文,歡迎訪(fǎng)問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。