性能測試基礎

性能測試分類

客戶端性能:測試APP自身的性能,例如CPU、內存消耗;web頁面元素渲染速度
服務端性能:測試服務端項目程序的支持的并發、處理能力、響應時間等,主要通過接口來做性能測試

性能測試指標

并發

同時向服務器發送請求的用戶數。

TPS/QPS

TPS:Transaction Per Second,每秒鐘處理的事務數。在服務端接口性能測試中,事務可以理解成一次接口調用并返回,所以TPS其實就是每秒鐘處理多少次接口調用。TPS越高,處理能力越高,性能越好。

QPS:也是指每秒處理的請求

平均響應時間

響應時間=網絡傳輸的總時間+各組件業務處理時間
在這里插入圖片描述
響應時間Response Time,簡稱RT,指的是服務端處理完一個請求所花費的時間,通常時間單位為毫秒ms。
平均響應時間就是n多個請求響應時間的平均值。
平均響應時間越短,代表性能越好,TPS就越高。

TOP響應時間

將所有請求的響應時間先從大到小進行排序,計算指定比例的請求都是小于某個時間。該指標統計
的是大多數請求的耗時。
Tp90(90%響應時間):90%的請求耗時都低于某個時間
Tp95(95%響應時間):95%的請求耗時都低于某個時間
Tp99(99%響應時間):99%的請求耗時都低于某個時間

并發數/虛擬用戶(Vuser)

壓測工具中設置的并發線程/進程數量

成功率

請求的成功率

PV(Page View)

頁面/接口的訪問量

UV(Unique Visitor)

頁面/接口的每日唯一訪客

吞吐量

網絡中的流量,TPS越高,吞吐量越大

TPS、響應時間和并發數的關系

在系統達到性能瓶頸之前,TPS和并發數成正比關系,即并發數越高,TPS越高;達到瓶頸后,并發數增加,TPS
不會繼續增高(甚至會下降),這個最高的tps出現的點,叫做拐點
TPS和平均響應時間成反比關系,即平均響應時間越小,TPS就越高
響應時間單位為秒的情況下
TPS = 1 / 響應時間 * 并發數
TPS = 并發數 / 響應時間

在這里插入圖片描述

性能監控指標

操作系統級別監控

CPU使用率、內存使用率、網絡IO(input/output)、磁盤(read/write/util)

中間件監控

連接數、長短連接、使用內存

應用層監控

線程狀態、JVM參數、GC頻率、鎖

DB層監控

連接數、鎖、緩存、內存、SQL效率

性能測試流程

需求調研

項目背景
測試范圍
業務邏輯 & 數據流向
系統架構
配置信息
測試數據量(量級要一致)
外部依賴
系統使用場景,業務比例
日常業務量
預期指標
上線時間

測試計劃

項目描述
業務模型及性能指標
測試環境說明
測試資源
測試方法以及場景設計原則(基準測試、單交易負載測試、混合場景測試、高可用性測試、穩定性測試、其他特殊場景)
測試進度安排及測試準則

環境搭建

測試機器硬件配置盡量和線上一致
系統版本與線上一致
測試環境部署線上最小單元模塊
應用、中間件、數據庫配置要與線上一致
其他特殊配置

數據準備

測試數據分為兩部分:基礎數據和參數化數據
通常采用以下三種方法進行構造
調業務接口
– 適合數據表關系復雜
– 優點:數據完整性比較好
執行SQL
– 適合表數量少,簡單
– 優點:速度最快

腳本編寫

選擇工具(Loadrunner、Jmeter、Locust等)
選擇協議(Http、TCP、RPC)
參數化
關聯
檢查點
事務判斷

壓測執行

選擇工具(Loadrunner、Jmeter、Locust等)
選擇協議(Http、TCP、RPC)
參數化
關聯
檢查點
事務判斷

調優回歸

性能調優需要整個團隊完成
反復嘗試
回歸驗證
監控工具
全鏈路排查
日志分析
模塊隔離

測試報告

概述
測試環境
結果與分析
調優說明
項目時間表
結論
建議

性能測試工具

Loadrunner(功能強大、重量級、商業軟件)
Jmeter(小巧靈活、輕量級、開源)
Locust(Python開源框架)
Ngrinder( 開源壓測平臺)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214414.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214414.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214414.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大一作業習題

第一題&#xff1a;答案&#xff1a; #include <stdio.h> void sort(int a[], int m) //將數組a的前m個元素(從小到大)排序 {int i 0;for (i 0; i < m - 1; i){int j 0;int flag 1;for (j 0; j < m - 1 - i; j){if (a[j] > a[j 1]){int t 0;t a[j];…

Java八股文面試全套真題【含答案】- Servlet篇

以下是一些關于Servlet的經典面試題以及它們的答案&#xff1a; 什么是 Servlet&#xff1f; 答案&#xff1a;Servlet 是運行在服務器上&#xff0c;用于處理客戶端請求并生成響應的 Java 類。 Servlet 和 JSP 之間的區別是什么&#xff1f; 答案&#xff1a;Servlet 是基于…

1.鴻蒙應用程序開發app_hap開發環境搭建

1.下載Node.js, Javascipts的運行環境 node.js版本下載v12.18.3/https://www.cnblogs.com/txwtech/p/17865780.html 2.下載并安裝DevEco Studio DevEco Studio 3.1 DevEco Studio 3.1配套支持HarmonyOS 3.1版本及以上的應用及服務開發&#xff0c;提供了代碼智能編輯、低代…

Docker筆記:Docker中簡單配置Mysql/Redis/Mongodb容器

Docker 配置 Mysql 容器 1 &#xff09;方案1&#xff1a;基于centos等linux操作系統 啟動centos鏡像&#xff0c;在里面安裝 mysql這樣比較麻煩&#xff0c;配置的東西很多 … 2 &#xff09;方案2&#xff1a;直接用 mysql 鏡像 (推薦) $ docker pull mysql 下載鏡像$ do…

589. N 叉樹的前序遍歷

589. N 叉樹的前序遍歷 java1&#xff1a;stack棧&#xff1a;沒看懂 class Solution {public List<Integer> preorder(Node root) {List<Integer> res new ArrayList<Integer>();if (root null) {return res;}Map<Node, Integer> map new HashMa…

C盤瘦身,C盤清理

以下只是我的C盤清理經驗~ 一.【用軟件簡單清理C盤】 使用一些垃圾清理軟件&#xff0c;簡單的初步把C盤先清理一遍。&#xff08;這種軟件太多我就不推薦了……&#xff09; 二.【WPS清理大師】 因為我電腦裝了WPS&#xff0c;發現右鍵單擊C盤有個選項【釋放C盤空間】&#xf…

接口自動化框架(Pytest+request+Allure)

前言&#xff1a; 接口自動化是指模擬程序接口層面的自動化&#xff0c;由于接口不易變更&#xff0c;維護成本更小&#xff0c;所以深受各大公司的喜愛。 接口自動化包含2個部分&#xff0c;功能性的接口自動化測試和并發接口自動化測試。 本次文章著重介紹第一種&#xff0c…

Vue3.3.4中watch無法監測props的更改

背景 網上說了很多解決方案&#xff0c;都是通過watch(() > props.value, (newValue, oldValue) > {})解決&#xff0c;或者是加上{deep: true}附加屬性。但是我在Vue3.3.4中&#xff0c;還是無法解決。 下面說一下我的解決方案。 解決方案 通過父組件調用子組件defineE…

點云/Mesh 常見處理庫和軟件匯總

注&#xff1a;參考 網址1、網址2 文章目錄 軟件通用點云/Mesh處理庫通用幾何處理庫專用功能庫 軟件 Processing MeshLabCloudCompareTrimeshPyVistaVedo Visualization Simple-3dvizPlotOptiX (Requires CUDA-enabled GPU)PolyscopePyrender 通用點云/Mesh處理庫 PCL &am…

【開發問題】vue的前端和java的后臺,用sm4,實現前臺加密,后臺解密

sm4加密 vue引入的包代碼加密解密 javamaven代碼運行結果 vue 引入的包 npm install sm-crypto代碼加密解密 加密&#xff1a; key &#xff1a;代表著密鑰&#xff0c;必須是16 字節的十六進制密鑰 password &#xff1a;加密前的密碼 sm4Password &#xff1a;代表sm4加密…

Python之格式化保存數據點

功能&#xff1a;將平面點集存儲為格式化txt文檔&#xff0c;每個坐標值為5位整數&#xff0c;前三位為整數&#xff0c;后2位為小數 輸入&#xff1a;平面點坐標&#xff0c;用列表存儲&#xff0c;列表的元素為點坐標元組 輸出&#xff1a;txt文件&#xff0c;每行一個點坐…

【計算機網絡】應用層電子郵件協議

一、電子郵件系統架構 電子郵件是一個典型的異步通信系統&#xff0c;發送方從UA&#xff0c;也就是郵件客戶端&#xff0c;通過應用層SMTP協議&#xff0c;傳輸層tcp協議&#xff0c;發送給發送方的郵件服務器&#xff0c;比如使用的是163郵箱&#xff0c;163提供的SMTP服務器…

python中實現yaml文件管理參數

yaml參數管理器 這是文件目錄關系&#xff0c;其中config存放.yaml文件&#xff0c;scripts存放py文件 然后就可以自由使用了&#xff1a; import yaml import os#獲取路徑 script_directory os.path.dirname(os.path.abspath(__file__)) # 相對于腳本文件的路徑 image_relat…

Swift “黑魔法”之動態獲取類實例隱藏屬性的值

概覽 在 Swift 代碼的調試中,我們時常驚嘆調試器的無所不能:對于大部分“黑盒”類實例的內容,調試器也都能探查的一清二楚。 想要自己在運行時也能輕松找到 Thread 實例“私有”屬性的值嗎(比如 seqNum)? 在本篇博文中您將學到如下內容: 概覽1. 借我,借我,一雙慧眼吧…

字符統計[c]

#include<stdio.h> #include<string.h> int main() {int a,b,c;abc0;char s[100];int i0;while(1){i;scanf("%c",&s[i]);if(s[i]?)break;}for(int k1;k<i;k){if(s[k]>48&&s[k]<57){a;//數字}else if((s[k]>65&&s[k]<…

Altair Radioss碰撞 安全與沖擊 衡祖仿真

Altair Radioss是解決瞬態加載工況下非線性問題的領先的結構分析求解器。其具備高擴展性、高品質、高魯棒性&#xff0c;以及諸多功能&#xff1a;多域求解技術、高級材料功能(復合材料)等。Radioss求解器被廣泛應用于汽車、航空航天、電子/家電、包裝、軌道機車、生物醫療、能…

前端項目有關面試

目錄 [TOC](目錄) 1. MVC、MVP、MVVM2.大文件上傳、多文件上傳和斷點續傳的區別3. 前端存儲4.什么是前端自適應5.瀏覽器原理5.1 從輸入url到看到界面的過程5.2 跨域 1. MVC、MVP、MVVM MVC、MVP、MVVM 是常見的軟件架構設計模式。MVVM&#xff1a;是一種軟件架構設計模式&…

c語言實現鏈表

鏈表是一種常見的數據結構&#xff0c;用于存儲一系列的元素。它由一系列的節點&#xff08;Node&#xff09;組成&#xff0c;每個節點包含數據和指向下一個節點的指針。不同于數組需要連續的內存空間來存儲元素&#xff0c;鏈表使用指針將節點按照某種邏輯順序連接起來。 每…

C 語言入門:如何編寫 Hello World

C 語言簡介 C 語言是由 Dennis Ritchie 于 1972 年在貝爾實驗室創建的一種通用編程語言。盡管年代久遠&#xff0c;它仍然是一款非常流行的語言。它之所以受歡迎的主要原因是它是計算機科學領域的基礎語言之一。C 語言與 UNIX 緊密相連&#xff0c;因為它被用于編寫 UNIX 操作…

Audio Signal (MATLAB) 代碼學習1-常見問題

問題描述 使用MATLAB完成如下操作 加載音頻文件,并存儲到變量x中將x和一個頻率為440Hz的正弦信號相加,用結果定義一個新的信號y繪制y信號的時域圖,并正確定義時間軸利用Hann window(漢寧窗)從y中提取一個20ms的窗信號利用線性預測編碼(階數20)預測白化濾波器的參數。% …