軟件測試

性能測試

1.1.性能測試是什么

基于協(xié)議模擬用戶發(fā)出請求,對服務(wù)器形成一定負(fù)載,來測試服務(wù)器的性能指標(biāo)是否

滿足要求

性能指標(biāo)關(guān)注點(diǎn):時(shí)間性能、空間性能

性能測試與頁面無關(guān)

性能測試定義:指通過自動(dòng)化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對

系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試。


性能測試類型

1.基準(zhǔn)測試:在給系統(tǒng)施加較低壓力時(shí),查看系統(tǒng)的運(yùn)行狀況并記錄相關(guān)數(shù)做為基

礎(chǔ)參考

2.負(fù)載測試:是指對系統(tǒng)不斷地增加壓力或增加一定壓力下的持續(xù)時(shí)間,直到系統(tǒng)

的某項(xiàng)或多項(xiàng)性能指標(biāo)達(dá)到安全臨界值,例如某種資源已經(jīng)達(dá)到飽和狀態(tài)等。

3.壓力測試:壓力測試是評估系統(tǒng)處于或超過預(yù)期負(fù)載時(shí)系統(tǒng)的運(yùn)行情況,關(guān)注點(diǎn)

在于系統(tǒng)在峰值負(fù)載或超出最大載荷情況下的處理能力。

4.穩(wěn)定性測試(可靠性測試):在給系統(tǒng)加載一定業(yè)務(wù)壓力的情況下,使系統(tǒng)運(yùn)行

一段時(shí)間,以此檢測系統(tǒng)是否穩(wěn)定。24X3小時(shí)

5.并發(fā)測試:測試多個(gè)用戶同時(shí)訪問同一個(gè)應(yīng)用、同一個(gè)模塊或者數(shù)據(jù)記錄時(shí)是否

存在死鎖或者其他性能問題,

性能測試工具


Jmeter簡介

Jmeter的基本概念

ApacheJMeter是Apache組織開發(fā)的基于Java的壓力測試工具。

2.2.我們?yōu)槭裁词褂肑meter

開源,免費(fèi),基于Java編寫,可集成到其他系統(tǒng)可拓展各個(gè)功能插件

支持接口測試,壓力(負(fù)載和壓力)測試等多種功能,支持錄制回放,

入門簡單相較于自己編寫框架活其他開源工具,有較為完善的UI界面,便于接口調(diào)試

多平臺支持,可在Linux,Windows,Mac上運(yùn)行

支持多協(xié)議

2.3.Jmeter的作用

1.接口測試

2.性能測試

3.壓力測試

4.Web自動(dòng)化測試

5.數(shù)據(jù)庫測試

6.JAVA程序測試

2.4.Jmeter怎么用

Windows下Jmeter下載安裝登錄http://jmeter.apache.org/download_jmeter.cgi,根據(jù)自己平臺,下載對應(yīng)文件



安裝JAVA環(huán)境

安裝JDK,配置環(huán)境變量(具體步驟不做介紹)

將下載Jmeter文件解壓,打開/bin/jmeter.bat



/bin目錄(常用文件介紹)

examples:目錄下包含Jmeter使用實(shí)例

ApacheJMeter.jar:JMeter源碼包

jmeter.bat:windows下啟動(dòng)文件

jmeter.sh:Linux下啟動(dòng)文件

jmeter.log:Jmeter運(yùn)行日志文件

jmeter.properties:Jmeter配置文件

jmeter-server.bat:windows下啟動(dòng)負(fù)載生成器服務(wù)文件

jmeter-server:Linux下啟動(dòng)負(fù)載生成器文件

/docs目錄——Jmeter幫助文檔

/extras目錄——提供了對Ant的支持文件,可也用于持續(xù)集成

/lib目錄——存放Jmeter依賴的jar包,同時(shí)安裝插件也放于此目錄

/licenses目錄——軟件許可文件,不用管

/printable_docs目錄——Jmeter用戶手冊

使用Jmeter測試快速入門

線程組是什么

進(jìn)程:一個(gè)正在執(zhí)行的程序?qū)?yīng)一個(gè)進(jìn)程

線程:一個(gè)進(jìn)程有多個(gè)執(zhí)行線程

線程組:按照線程性質(zhì)對線程分組

三者關(guān)系:一個(gè)進(jìn)程有多個(gè)線程組,一個(gè)線程組有多個(gè)線程

測試計(jì)劃—線程組—線程組屬性中的線程數(shù)

并發(fā)執(zhí)行:多個(gè)線程同時(shí)執(zhí)行,特點(diǎn):執(zhí)行結(jié)束的順序與開始的順序不一致

順序執(zhí)行:按照線程的啟動(dòng)順序挨個(gè)執(zhí)行

默認(rèn)情況下,線程組中的線程是并發(fā)執(zhí)行

每一個(gè)線程都要執(zhí)行組內(nèi)的http請求

設(shè)置線程組順序執(zhí)行:勾選測試計(jì)劃中的(獨(dú)立運(yùn)行每個(gè)線程組)

線程組用來模擬用戶的并發(fā)訪問

創(chuàng)建線程組

線程組主要包含三個(gè)參數(shù):線程數(shù)、準(zhǔn)備時(shí)長(Ramp-UpPeriod(inseconds))、

循環(huán)次數(shù)。

1.1.3.線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程。設(shè)置多少虛擬

用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)。

1.1.4.準(zhǔn)備時(shí)長(秒):設(shè)置的虛擬用戶數(shù)需要多長時(shí)間全部啟動(dòng)。如果線程數(shù)

為20,準(zhǔn)備時(shí)長為10,那么需要10秒鐘啟動(dòng)20個(gè)線程。也就是每秒鐘啟動(dòng)

2個(gè)線程。

1.1.5.循環(huán)次數(shù):每個(gè)線程發(fā)送請求的次數(shù)。如果線程數(shù)為20,循環(huán)次數(shù)為100,

那么每個(gè)線程發(fā)送100次請求??傉埱髷?shù)為20*100=2000。如果勾選了“永遠(yuǎn)”,

那么所有線程會一直發(fā)送請求,一到選擇停止運(yùn)行腳本。

1.1.6..調(diào)度器:設(shè)置線程組啟動(dòng)的開始時(shí)間和結(jié)束時(shí)間(配置調(diào)度器時(shí),需要勾選

循環(huán)次數(shù)為永遠(yuǎn))

1.1.7.持續(xù)時(shí)間(秒):測試持續(xù)時(shí)間,會覆蓋結(jié)束時(shí)間

1.1.8.啟動(dòng)延遲(秒):測試延遲啟動(dòng)時(shí)間,會覆蓋啟動(dòng)時(shí)間

1.1.9.啟動(dòng)時(shí)間:測試啟動(dòng)時(shí)間,啟動(dòng)延遲會覆蓋它。當(dāng)啟動(dòng)時(shí)間已過,手動(dòng)只需測

試時(shí)當(dāng)前時(shí)間也會覆蓋它。

1.1.10.結(jié)束時(shí)間:測試結(jié)束時(shí)間,持續(xù)時(shí)間會覆蓋它。

一個(gè)HTTP請求有著許多的配置參數(shù),下面將詳細(xì)介紹:

名稱:本屬性用于標(biāo)識一個(gè)取樣器,建議使用一個(gè)有意義的名稱。

注釋:對于測試沒有任何作用,僅用戶記錄用戶可讀的注釋信息。

服務(wù)器名稱或IP:HTTP請求發(fā)送的目標(biāo)服務(wù)器名稱或IP地址。

端口號:目標(biāo)服務(wù)器的端口號。

方法:發(fā)送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、

DELETE等。

Contentencoding:內(nèi)容的編碼方式,默認(rèn)值為iso8859

路徑:目標(biāo)URL路徑(不包括服務(wù)器地址和端口)

測試計(jì)劃

1.測試計(jì)劃就是一個(gè)完整的場景

2.“獨(dú)立運(yùn)行每個(gè)線程組”:勾選以后所有的線程組都是順序執(zhí)行的了。一般不勾

選,讓所有的線程組并發(fā)啟動(dòng)。

3.“函數(shù)測試模式”:勾選后會有詳細(xì)的請求記錄,消耗資源,影響客戶端性能。

一般不勾選。

4.用戶定義的變量:全局變量,測試計(jì)劃上可以添加用戶定義的變量。一般添加一

些系統(tǒng)常用的配置。如果測試過程中想切換環(huán)境,切換配置,一般不建議在測試計(jì)劃上添加變量


(1)、threadgroup(線程組)

這個(gè)就是我們通常添加運(yùn)行的線程。通俗的講一個(gè)線程組,可以看做一個(gè)虛擬用

戶組,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶。

(2)、setupthreadgroup

一種特殊類型的ThreadGroup的,可用于執(zhí)行預(yù)測試操作。這些線程的行為完全

像一個(gè)正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試前進(jìn)行定期線程組的

執(zhí)行;類似LoadRunner的init,測試開始時(shí)進(jìn)行初始化的工作。

(3)、teardownthreadgroup

一種特殊類型的ThreadGroup的,可用于執(zhí)行測試后動(dòng)作。這些線程的行為完全

像一個(gè)正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試結(jié)束后執(zhí)行定期的線

程組;類似LoadRunnner的end,測試結(jié)束時(shí)進(jìn)行回收工作。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容