單接口性能需要如何操作?單接口性能需要關注哪些數據?
單接口性能測試方法:
工具:jmeter
使用Jmeter發起一個HTTP請求,Request為Json格式
1.創建測試計划:右鍵測試計划 -> 添加 -> 線程(用戶) -> 線程組
2.右鍵線程組 -> 添加 -> 取樣器 -> HTTP請求
3.錄入接口信息:我們使用抓包工具抓取到了博客園的獲取全站動態的接口,以此為例,接口如下
1 獲取最新10條博客文章 2 Url: https://home.cnblogs.com/ajax/feed/recent 3 4 HTTP Method: Post 5 6 Request: 7 { 8 "feedListType":5, 9 "appId":"", 10 "pageIndex":1, 11 "groupId":"" 12 }
4.添加一個HTTP信息頭管理器:這里存放Request Headers,因為jmeter默認的請求數據類型是form的,所以使用json格式的請求數據需要在HTTP信息頭管理器中設置
1 Content-Type: application/json; charset=UTF-8
5.最后添加一個查看結果樹來查看請求的響應數據
6.運行HTTP請求,我們可以看到返回數據就是博客園的最新動態了
Request為Form格式
1 Url: https://data.cma.cn/weatherGis/web/weather/weatherFcst/getCurrentCondition 2 3 HTTP Method: Post 4 5 Request: 6 staId: 54511
1.步驟與json格式的基本相同,需要修改的點在於Requset Data的位置
2.因為是form格式請求數據,所以HTTP信息頭管理器中的Content-Type要設置為
1 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
3.設置完成運行HTTP請求然后查看結果樹就可以看到請求的響應數據了。
原文出處:https://www.cnblogs.com/ezrealli/p/11343866.html
單接口性能測試關注點
基本性能測試:
1、QPS;
2、平均響應時間;
3、吞吐率;
4、錯誤率;
5、空結果率;
需要壓測求出極限QPS,然后查找到系統瓶頸,比如你壓測到130個線程,QPS到達1500后不再上升,那么此時就需要查看CPU、磁盤IO、內存、以及網卡流量等查找系統瓶頸在哪里;
如:nlp壓測時結論:hot_new接口shyc2機房最高QPS能達到2300左右,帶寬占用最大在800M左右;根據壓測結果顯示整體性能的瓶頸不受限於CPU和帶寬,據分析可能與網絡IO有關;
穩定性測試:
需要選擇cpu達到50%左右時的線程數進行壓測,否則壓測意義不明顯;
1、QPS
2、CPU占有率;
3、磁盤IO波動;
4、內存是否存在泄漏,但存在部分程序比較特殊,xx引擎title人名策略測試:內存一直增加,溝通后得知,此接口的內存是不會釋放的,會一直增加,但增加到一定數值(目前看大概增加到5G后逐漸趨於平穩);
5、網卡流量,分為內網和外網流出進入等;
6、是否有coredump文件產生;
7、數據庫的寫入;
單機並發計算
單機pv = pv量/10個機房/機器數
QPS = 單機pv/10h(高峰)*3600