1.專案簡介:
描述乙個程式的好壞可以很好的幫助我們去優化程式,提高**水平。在比較有相同功能的方法時,我們通常會在特定的負載下,看系統的響應時間和表現。
所以以基於jmh基準測試框架為靈感,編寫了一款簡單的測試框架「看誰跑的快」
2.專案靈感
1.首先高中物理在進行試驗的時候,我們要進行多組試驗,而且要控制變數,反應在**中,我們 肯定不能只測試一組資料,而是一定要多測試,達到減小誤差的效果,為了實現配置可修改
通過自定義註解的方式配置試驗組和每組要測試的數目
2.要測試的類都放到乙個com.test.cases包下然後進行並且要測試的類都要繼承乙個介面口, case(只代表乙個標記而已,不定義任何方法)
3.要測試的方法使用自定義註解benchmark打上標記
5.**實現
自定義註解
引數配置
@target()
@retention
(retentionpolicy.runtime)
public @inte***ce
measurement
測試類的標註
@target()
@retention
(retentionpolicy.runtime)
public @inte***ce
benchmark
測試用例的自動載入
public
class
caseloader
//將路徑進行解碼操作
string name1=urldecoder.
decode
(url1.
getpath()
,"utf-8");
//獲取檔案操作類
file file=
newfile
(name1)
;//獲取檔案下的列表
file[
] files=file.
listfiles()
;for
(file i:files)
//獲取檔名
string name=i.
getname()
;if(i.isfile()
)}}//獲取例項物件
list
listcase=
newarraylist
();for
(string i:casename)
}return
newcaserunner
(listcase);}
private
boolean
hasintfcase
(string i, class
caseclass)
throws classnotfoundexception
return
false;}
}
測試:
public
class
caserunner
public
void
run(
)throws invocationtargetexception, illegalacces***ception
//獲取類中所有方法
method[
] methods=cls.
getmethods()
;run
(methods,cases,it,g);}
private
void
run(method[
] methods,case cases,
int it,
int g )
throws invocationtargetexception, illegalacces***ception
measurement measurement1 = method.
getannotation
(measurement.
class);
if(measurement1 != null)
for(
int i =
0; i < g; i++
)long end = system.
currenttimemillis()
; system.out.
println
("花費"
+(end - start +1)
+"ms");
}}}}
com.test.cases包下如果有需要測試的類,將待測試類實現cases,然後要測試方法使用@benchmark標註,並初始化引數@measurement(group=***,iteration=***)
6.總結
完成了基本測試功能,可以自定義測試引數,對各類的**進行測試,
專案總的來說還有許多不足的地方,比如沒有實現預熱功能,不能專案啟動時,效能沒有達到最好,沒有實現存jar包匯入專案,會繼續跟進,完善專案
php swoole框架效能測試對比
測試機器為虛擬機器,1核2g記憶體,php環境和mysql都在虛擬機器內。php 7.3.2 swoole 4.4.5 測試框架有 結果為分別測試五次取的平均值 ab n 1000 c 100 http host 輸出 hello world 測試結果 ab n 1000 c 100 http ho...
服務框架訊息排程效能測試
測試環境 cpu intel core i5 4590 cpu 3.30ghz 4核,64位 記憶體 8g 交換機速率 10 100mbps 伺服器網絡卡速率 100mbps 測試資料 一 服務同節點訊息處理個數 每個服務跑滿1個cpu 100 1 32位元組以內 1000萬 秒 2 64位元組 9...
介面測試框架接入效能測試實踐分享
前言 現如今介面測試在軟體質量行業中的地位,已經越來越重要,相對於上層的ui自動化測試和下層的單元測試,介面測試的 低 投入 高 回報,也成了絕大多數質量保障實踐的首選。在開展介面測試時,往往很多時候都只在關注介面的功能性質量,而對於非功能性的質量保障驗證,比如效能 安全,在實際工程應用或者設計用例...