性能测试基本概念
一、性能測試的概念
? ? ??? 性能測試是通過自動(dòng)化的測試工具模擬多種正常峰值及異常負(fù)載條件來對系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。
通過負(fù)載測試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是當(dāng)負(fù)載逐漸增加時(shí),測試系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。壓力測試時(shí)通過確定一個(gè)系統(tǒng)的瓶頸或者不能接受的
性能點(diǎn),來獲取系統(tǒng)能提供的最大服務(wù)級別的測試。性能測試主要包括負(fù)載測試、強(qiáng)度測試、容量測試。
?
二、性能測試的指標(biāo)
? ? ? ??web服務(wù)器:
? ? ? ? ? ? Avg Rps: 平均每秒的響應(yīng)次數(shù) = 總請求數(shù) /秒數(shù);
? ? ? ? ? ? Avg time to last byte per terstion(mstes):?平均每秒業(yè)務(wù)腳本的迭代次數(shù);
? ? ? ? ? ??Successful Rounds: 成功的請求;
??????????? Failed Rounds: 失敗的請求;
? ? ? ? ? ??Successful Hits: 成功的點(diǎn)擊次數(shù);
? ? ? ? ? ??Failed Hits: 失敗的點(diǎn)擊次數(shù);
? ? ? ? ? ??Hits Per Second: 每秒點(diǎn)擊次數(shù);
? ? ? ? ? ??Successful Hits Per Second:每秒成功的點(diǎn)擊次數(shù);
? ? ? ? ? ??Failed Hits Per Second: 每秒失敗的點(diǎn)擊次數(shù);
? ? ? ? ? ??Attempted Connections: 嘗試連接數(shù);
? ? ? ? ? ??Throughput: 吞吐率;
? ??? ??數(shù)據(jù)庫服務(wù)器:
? ? ? ? ? ? User Connections: 用戶連接數(shù),也就是數(shù)據(jù)庫的連接數(shù)量;
? ? ? ? ? ? Number of Deadlocks: 數(shù)據(jù)庫死鎖;
? ? ? ? ? ??Butter Cache Hit: 數(shù)據(jù)庫Cache 的命中情況;
?
三、性能測試的流程
??????? 1.明確性能測試需求;
? ? ? ? 2.制定性能測試方案;
? ? ? ? ? ?2.1.測試范圍
? ? ? ? ? ?2.2.入口標(biāo)準(zhǔn)
? ? ? ? ? ?2.3.出口標(biāo)準(zhǔn)
? ? ? ? ? ?2.4.測試策略(測試環(huán)境指標(biāo)、存量數(shù)據(jù)、業(yè)務(wù)場景、測試通過標(biāo)準(zhǔn)等)
? ? ? ? ? ?2.5.測試風(fēng)險(xiǎn)
? ? ? ? ? ?2.6.測試資源 ? ? ? ??
? ? ? ? 3.設(shè)計(jì)性能測試用例;
? ? ? ? 4.執(zhí)行性能測試用例;
? ? ? ? 5.分析性能測試結(jié)果;
? ? ? ? 6.生成性能測試報(bào)告;
?
四、性能測試的工具--JMeter
????????為什么是JMeter而不是LoadRunner呢 ?1.更少的投入,針對有限的測試成本; ?2.開源工具的可定制性無可比擬; ?3.通過社區(qū)得到最大程度的支持。
? ? ??? JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。最初被設(shè)計(jì)用于web應(yīng)用的測試,后來擴(kuò)展到其他測試領(lǐng)域。可用于測試靜態(tài)和動(dòng)態(tài)資源,如文件、Java服務(wù)
程序、Java對象、數(shù)據(jù)庫等。JMeter能夠?qū)?yīng)用程序做功能/回歸測試,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證被測程序返回了期望的結(jié)果。而且為了保證最大限度的靈活性,
JMeter允許使用正則表達(dá)式創(chuàng)建斷言。
? ? ? ??
五、JMeter的特性
??????? 1.支持對多種服務(wù)類型進(jìn)行測試;
?? ? ?? 2.支持通過錄制/回訪方式獲取測試腳本;
? ? ? ? 3.具備高可移植性,是純Java 程序;
? ? ? ? 4.采用多線程框架,允許通過多個(gè)線程并發(fā)取樣及通過獨(dú)立的線程組對不同的功能同時(shí)取樣;
? ? ? ? 5.精心設(shè)計(jì)的GUI支持高速用戶操作和精確計(jì)時(shí);
? ? ? ? 6.支持緩存和離線的方式分析/回放測試結(jié)果;
? ? ? ? 7.高擴(kuò)展性;
?
六、JMeter常用測試元件
1.線程組
? ? 用來管理執(zhí)行性能測試所需的JMeter線程。
? ? a.可以設(shè)置線程數(shù)量
? ? b.設(shè)置線程啟動(dòng)周期
? ? c.設(shè)置執(zhí)行測試腳本的循環(huán)次數(shù)
2.控制器
? ? JMeter有兩種類型的控制器:采樣器和邏輯控制器。
? ? 采樣器被用來向服務(wù)器發(fā)送請求。JMeter采樣器包含:FTP Request、HTTP Request、JDBC Request等。
? ? 邏輯控制器用來控制JMeter的測試邏輯,特別是何時(shí)發(fā)送請求。
3.監(jiān)聽器
? ? 監(jiān)聽器提供了對JMeter在測試期間收集到的信息的訪問方法。
4.定時(shí)器
? ? JMeter線程在發(fā)送請求之間沒有間歇,通過添加定時(shí)器,設(shè)定請求之間應(yīng)該間隔的時(shí)間。
5.斷言
? ? 可以使用斷言來檢查從服務(wù)器獲得的響應(yīng)內(nèi)容。
6.配置元件
? ? 配置元件與采樣器緊密關(guān)聯(lián)。雖然配置元件并不發(fā)送請求,但可添加或修改請求。
7.前置處理器
? ? 會(huì)在采樣器發(fā)出請求之前做一些操作。
8.后置處理器
? ? 會(huì)在采樣器發(fā)出請求之后做一些操作。
JMeter執(zhí)行順序:配置元件=》前置處理器=》定時(shí)器=》采樣器=》后置處理器=》斷言=》監(jiān)聽器
轉(zhuǎn)載于:https://www.cnblogs.com/111testing/p/6727860.html
總結(jié)
- 上一篇: 72v转12v20a可以接几个12的汽车
- 下一篇: 电动车充电为什么会爆炸?