欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語言測試框架 golang測試框架

Golang web 框架對比

由于 golang 提供了完善的net/http標(biāo)準(zhǔn)庫,基于該標(biāo)準(zhǔn)庫實現(xiàn)一個web框架的難度相比其他語言低了不少,所以go web框架簡直就是百花齊放。從老牌的revel和 beego ,到新出的 gin ,和 iris 等,而且還有一些類似于 chi 這種router。個人一般小項目,尤其是中間件需要暴露一些http接口的,基本就使用chi即可。

為高港等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及高港網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都做網(wǎng)站、高港網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

本次測試主要是gin iris echo 這三個框架。側(cè)重在于高性能,從并發(fā)和json序列化和反序列化兩個方面來測評,畢竟后臺項目側(cè)重的也就是這兩個方面。

為了選擇符合重IO的框架,現(xiàn)設(shè)定如下場景的demo,demo的具體要求如下:

gin:

iris:

echo:

由于要測試5種body樣本,4種場景,4個框架,因此把重點(diǎn)數(shù)據(jù)篩選出來(吞吐量、錯誤率和99%Line,重要性依次遞減),結(jié)果都繪制了圖形,方便比對查看。

綜合以上各個測試結(jié)果可以看出,gin以及iris都是非常優(yōu)秀的框架,gin的優(yōu)勢比其他稍微大點(diǎn),iris次之,而echo相應(yīng)差一點(diǎn)。

本次測試只是簡單測試了一下3個框架的并發(fā)和json相關(guān)。對比結(jié)果,不包括生態(tài)和工具的完善度等等。如果測試有什么不完善的地方,歡迎交流。

另外歡迎大家試用和star另外一個web框架 baa ,為了避嫌我沒有貼出baa的數(shù)據(jù),性能測試處于gin之后和iris之間。

Go語言使用gorm對MySQL進(jìn)行性能測試

之前寫過了Go語言gorm框架MySQL實踐,其中對gorm框架在操作MySQL的各種基礎(chǔ)實踐,下面分享一下如何使用gorm框架對MySQL直接進(jìn)行性能測試的簡單實踐。

這里我使用了一個原始的Go語言版本的 FunTester 測試框架,現(xiàn)在只有一個基本的方法,實在是因為Go語言特性太強(qiáng)了。框架設(shè)計的主要思路之一就是利用Go語言的閉包和方法參數(shù)特性,將一個 func() 當(dāng)做性能測試的主題,通過不斷運(yùn)行這個 func() 來實現(xiàn)性能測試。當(dāng)然還有另外一個思路就是運(yùn)行一個多線程任務(wù)類,類似 Java 版本的 com.funtester.base.constaint.ThreadBase 抽象類,這樣可以設(shè)置一些類的屬性,綁定一些測試資源,適配更多的測試場景。

下面演示select的性能測試,這里我用了隨機(jī)ID查詢的場景。

這里我使用從35開始遞增的ID進(jìn)行刪除。

這里使用了select的用例部分,隨機(jī)ID,然后更新name字段,隨機(jī)10個長度的字符串。

這里用到了 FunTester 字段都是隨機(jī)生成。

到這里可以看出,性能測試框架用到的都是gorm框架的基礎(chǔ)API使用,這里MySQL連接池的管理工作完全交給了gorm框架完成,看資料說非常牛逼,我們只需要設(shè)置幾個參數(shù)。這個使用體現(xiàn)很像 HttpClient 設(shè)置 HTTP 連接池類似,這里我們也可以看出這些優(yōu)秀的框架使用起來都是非常簡單的。

PS:關(guān)于gorm的基礎(chǔ)使用的請參考上一期的文章Go語言gorm框架MySQL實踐。

golang性能測試框架k6源碼分析

k6是新興的性能測試框架,比肩jmeter,另外測試腳本使用js,更加適合自動化的架構(gòu)。

k6啟動的框架是使用golang的cli標(biāo)準(zhǔn)框架cobra,入口函數(shù)

進(jìn)入cobra框架后,我們直接查看getRunCmd,這個是命令run的入口,主要工作都是從這里開始。

重點(diǎn)關(guān)注初始化Runner,這個是通過js腳本,使用goja庫解析后,生成的實際執(zhí)行單元。

進(jìn)入js目錄,查看Runner的結(jié)構(gòu),runner.go

Runner有一些配置屬性,另外還有方法,方法用lib.Runner的接口進(jìn)行規(guī)范。

Runner有一個NewVU方法,里面定義了連接參數(shù),實現(xiàn)api測試

返回主函數(shù),在初始化完成Runner后,啟動調(diào)度器,以及做結(jié)果收集

最終封裝成一個engine

啟動測試

分享文章:go語言測試框架 golang測試框架
當(dāng)前URL:http://chinadenli.net/article6/hepoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃網(wǎng)站排名網(wǎng)站導(dǎo)航網(wǎng)站改版App開發(fā)企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化