在經過這麼久的鋪墊,funtester
測試框架分布式版本的工作正式開始了,我首先寫了乙個單節點的版本,通過http
協議介面進行任務上傳,而非像之前設想中的,定時去master
節點進行pull
任務。
此版本為單節點部署,可本地部署,預計下個月開源,主要是考慮到版本不穩定,肯定會進行多輪更改。
當前服務只是針對之前設想的方案(一)(基於httprequestbase
物件)進行實踐,感興趣的童鞋可以翻看舊文章:
至於方案(二)(基於jar
包方法模板)和方案(三)(基於j**a/groovy
測試指令碼)的設想、驗證以及實現,後續會慢慢推出。ps:沒看錯,我已經找找了執行j**a
測試指令碼的方法。
自費伺服器,大家以體驗為主。以後實際使用以本地部署為主,公網依然以體驗為主,這個伺服器費用還是有點貴的。
請求方式:post
引數型別
限制備註
times
intthread
intmode
string
預設ftt
desc
string
任務描述
runup
int軟啟動時間
keystring
訪問秘鑰,找funtester作者要
request
string
被測請求,格式如下
request也可以通過json物件上傳引數,文件如下:
引數型別
限制備註
requesttype
string
請求型別,目前get/post
uristring
請求位址
args
json
get請求引數
json
json
post請求json引數
params
json
post請求form表單引數
headers
jsonarray
請求headers(key-value)
"uri":"待測介面位址"},
"times":10,
"thread":1,
"runup":1,
"key":"funtester2021",
"desc":"funtester分布式測試demo"
}這個版本將所有的引數都用json
格式,python
版本的也參考這個構建請求引數。我python
已經生疏,由於時間關係,我等其他大佬實現了之後會做分享。
}我給groovy
的乙個定義就是快速構建測試指令碼,這裡非常明顯差異,對比以上兩種j**a
版本的**,groovy
非常簡單。
}介面響應是乙個json
物件,也是乙個com.funtester.base.bean.performanceresultbean
物件,後面我會奉上**,這裡先看見控制台輸出。
info-> 請求uri: , 耗時:14217 ms , httpcode: 200
info->
~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~ json ~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~
> ,
> ① . "funtester":200
> }
~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~ json ~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~~☢~
其中最外層的funtester
是框架加上去的,並非真正的響應。data
中的內容就是效能測試的結果,也就是com.funtester.base.bean.performanceresultbean
物件。其中如果想看table
內容的話,需要新增兩行**:
string table = response.getjsonobject("data").getstring("table");
output(decodeencode.unzipbase64(table));
控制台輸出如下:
/** * 效能測試結果集
*/class performanceresultbean extends abstractbean implements serializable
}
分布式效能測試
應用場景 單台測試機不能產生足夠的執行緒數,需要多台測試機協作測試伺服器效能 概念 分布式 多台測試機協作,以集群的方式共同完成測試任務 作用 產生海量併發 1,控制機制定測試任務,下發到執行機 2,執行機執行任務並將結果返回給控制機器 3,控制機做結果彙總 1環境搭建 步驟1.搭建物理環境 準備乙...
Jmeter分布式效能測試
1 簡單理解,就是一台執行機分擔不了的負載,分到若干臺執行機一起執行 2 任務和指令碼分發由控制機執行,指令碼裡面設定的執行緒數是在每一台執行機執行的數量,不要弄錯了 3 然後執行機執行的結果會在控制機進行彙總,總結 控制機 一般是windows系統 1.修改jmeter.properties屬性檔...
分布式 常見分布式框架
分布式協調系統 日誌複製系統 paxos演算法及其變體的實現,典型的有zookeeper etcd 分布式檔案系統 hdfs hadoop 分布式nosql redis hbase 訊息佇列 rabbitmq kafka,關注訊息的at least once,at most once,only on...