java實現(xiàn)在性能測試中進(jìn)行業(yè)務(wù)驗證實例
引言
在性能測試過程中,驗證HTTP code和響應(yīng)業(yè)務(wù)code碼是比較基礎(chǔ)的,但是在一些業(yè)務(wù)中,這些參數(shù)并不能保證接口正常響應(yīng)了,很可能返回了錯誤信息,所以這個時候?qū)涌谶M(jìn)行業(yè)務(wù)驗證就尤其重要。下面分享一個對某個資源進(jìn)行業(yè)務(wù)驗證的Demo。
改接口請求資源詳情,其中有一個字段是表示該用戶對于該資源的操作狀態(tài),踩贊類型:1-贊,2-踩,3-取消贊,4-取消踩。
改壓測一個接口,但是需要兩個接口的數(shù)據(jù)提供數(shù)據(jù),一個是登錄,一個是操作改資源的接口。
點贊和資源詳情的方法
具體的項目結(jié)構(gòu)之前講過,主要解決了請求方式,身份驗證的問題,這里不再細(xì)說登錄以及如何將身份令牌傳遞給。下面分享一下點贊和資源詳情的方法代碼,兩者分屬兩個模塊未在一個類里面,我這里單獨挑出來:
/** * 點贊和踩 * * @param resId 資源id * @param operation 操作類型(踩贊類型:1-贊,2-踩,3-取消贊,4-取消踩) * @return */ public JSONObject likeOrNot(int resId, int operation) { String url = FlowApi.LIKE_OR_NOT; JSONObject params = getParams(); params.put("isCoursePackage", 0);//標(biāo)識是否課程包 0-否 1-是 params.put("operation", operation); params.put("resId", resId); params.put("resType", 5);//1-課件;2-題集;3-教學(xué)資料;4-課程包;5:題目 JSONObject response = getPostResponse(url, params); output(response); return response; } /** * 課程包詳情 * * @param resid 資源ID 1030167 * @return */ public JSONObject courseDetail(int resid) { String url = LauncherApi.COURSE_DETAIL; JSONObject params = getParams(); params.put("id", resid); JSONObject response = getPostResponse(url, params); // output(response); return response; }
壓測腳本
下面是壓測腳本,是用Groovy寫的,方便在服務(wù)器上調(diào)試,但是跟Java有些不同,如果用編譯器的童鞋請注意編譯器異常,有些找不著引用對象的時候需要手動,或者忽略這些異常:
public static void main(String[] args) { def argsUtil = new ArgsUtil(args) def thread = argsUtil.getIntOrdefault(0, 2) def times = argsUtil.getIntOrdefault(1, 2) def threads = [] thread.times { threads << new ThreadLimitTimesCount<Integer>(it, times) { def resid = 1030167 def operation = getRandomInt(4) def drive @Override public void before() { super.before() def base = new OkayBase(it) def flow = new Flow(base) flow.likeOrNot(this.resid, this.operation) this.drive = new Launcher(base) sleep(1000) } @Override protected void doing() throws Exception { def response = this.drive.courseDetail(this.resid) int anInt = response.getJSONObject("data").getInt("like_state"); if (anInt != 3) fail(); } @Override protected void after() { } } } new Concurrent(threads).start() allOver(); }
在doing()
方法中response的響應(yīng)處理可能會拋出異常,fail()
是一個封裝的拋出通用運行異常的方法,用來標(biāo)記響應(yīng)失敗,在框架中會捕捉doing()
方法的異常,并記錄統(tǒng)計線程運行過程的數(shù)據(jù)。有興趣參考性能測試框架第二版。
以上就是java實現(xiàn)在性能測試中進(jìn)行業(yè)務(wù)驗證實例的詳細(xì)內(nèi)容,更多關(guān)于java性能測試業(yè)務(wù)驗證的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring?MVC實現(xiàn)GET請求接收Date類型參數(shù)
這篇文章主要介紹了Spring?MVC實現(xiàn)GET請求接收Date類型參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07微信小程序 navigator 跳轉(zhuǎn)url傳遞參數(shù)
這篇文章主要介紹了 微信小程序 navigator 跳轉(zhuǎn)url傳遞參數(shù)的相關(guān)資料,需要的朋友可以參考下2017-03-03Spring?Boot統(tǒng)一接口返回及全局異常處理
這篇文章主要介紹了Spring?Boot統(tǒng)一接口返回及全局異常處理,文章圍繞主題展開相關(guān)資料,具有一定的參考價值需要的小伙伴可以參考一下2022-04-04Spring中Websocket身份驗證和授權(quán)的實現(xiàn)
在Web應(yīng)用開發(fā)中,安全一直是非常重要的一個方面,本文主要介紹了Spring中Websocket身份驗證和授權(quán)的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-08-08