<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在效能測試過程中,驗證HTTP code和響應業務code碼是比較基礎的,但是在一些業務中,這些引數並不能保證介面正常響應了,很可能返回了錯誤資訊,所以這個時候對介面進行業務驗證就尤其重要。下面分享一個對某個資源進行業務驗證的Demo。
改介面請求資源詳情,其中有一個欄位是表示該使用者對於該資源的操作狀態,踩贊型別: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()
方法的異常,並記錄統計執行緒執行過程的資料。有興趣參考效能測試框架第二版。
以上就是java實現在效能測試中進行業務驗證範例的詳細內容,更多關於java效能測試業務驗證的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45