java實現在性能測試中進行業(yè)務驗證實例
引言
在性能測試過程中,驗證HTTP code和響應業(yè)務code碼是比較基礎的,但是在一些業(yè)務中,這些參數并不能保證接口正常響應了,很可能返回了錯誤信息,所以這個時候對接口進行業(yè)務驗證就尤其重要。下面分享一個對某個資源進行業(yè)務驗證的Demo。
改接口請求資源詳情,其中有一個字段是表示該用戶對于該資源的操作狀態(tài),踩贊類型:1-贊,2-踩,3-取消贊,4-取消踩。
改壓測一個接口,但是需要兩個接口的數據提供數據,一個是登錄,一個是操作改資源的接口。
點贊和資源詳情的方法
具體的項目結構之前講過,主要解決了請求方式,身份驗證的問題,這里不再細說登錄以及如何將身份令牌傳遞給。下面分享一下點贊和資源詳情的方法代碼,兩者分屬兩個模塊未在一個類里面,我這里單獨挑出來:
/**
* 點贊和踩
*
* @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);//標識是否課程包 0-否 1-是
params.put("operation", operation);
params.put("resId", resId);
params.put("resType", 5);//1-課件;2-題集;3-教學資料;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寫的,方便在服務器上調試,但是跟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的響應處理可能會拋出異常,fail()是一個封裝的拋出通用運行異常的方法,用來標記響應失敗,在框架中會捕捉doing()方法的異常,并記錄統(tǒng)計線程運行過程的數據。有興趣參考性能測試框架第二版。
以上就是java實現在性能測試中進行業(yè)務驗證實例的詳細內容,更多關于java性能測試業(yè)務驗證的資料請關注腳本之家其它相關文章!
相關文章
Spring?Boot統(tǒng)一接口返回及全局異常處理
這篇文章主要介紹了Spring?Boot統(tǒng)一接口返回及全局異常處理,文章圍繞主題展開相關資料,具有一定的參考價值需要的小伙伴可以參考一下2022-04-04

