一、測(cè)試?yán)碚摶A(chǔ)
? ? 1.軟件的三個(gè)要素:程序(實(shí)行特定功能的代碼)? 文檔(支持代碼運(yùn)行) 數(shù)據(jù)(支持程序運(yùn)行一切有關(guān)).
? ? 2.軟件測(cè)試的目的:1)驗(yàn)證軟件是否滿足 軟件開發(fā)合同 或者項(xiàng)目開發(fā)計(jì)劃,系統(tǒng)/子系統(tǒng)設(shè)計(jì)文檔,軟件需求規(guī)格說(shuō)明,軟件產(chǎn)品說(shuō)明等規(guī)定的軟件質(zhì)量要求 2)通過(guò)測(cè)試,發(fā)現(xiàn)軟件缺陷? 3)為軟件產(chǎn)品的質(zhì)量測(cè)量和評(píng)價(jià)提供依據(jù).
????3.軟件測(cè)試的標(biāo)準(zhǔn)4個(gè)過(guò)程,以及對(duì)應(yīng)的解釋 1)測(cè)試策劃:只要是進(jìn)行測(cè)試的需求分析 和 測(cè)試計(jì)劃的編寫 2)測(cè)試設(shè)計(jì): 依據(jù)測(cè)試需求,分析并選用,已由的測(cè)試用例或者設(shè)計(jì)新的測(cè)試用例,在進(jìn)入下一個(gè)階段工作之前,應(yīng)該通過(guò),測(cè)試就緒評(píng)審 3)測(cè)試執(zhí)行,執(zhí)行測(cè)試用例,獲取測(cè)試結(jié)果 分析并判定 設(shè)計(jì)結(jié)果 4)測(cè)試總結(jié):整理和分析 測(cè)試數(shù)據(jù) ,評(píng)價(jià) 測(cè)試效果和被測(cè)軟件項(xiàng),描述 測(cè)試狀態(tài) 最后完成軟件測(cè)試報(bào)告并通過(guò)測(cè)試評(píng)審.
????4.測(cè)試用例設(shè)計(jì)的基本原則:1)基于測(cè)試需求的原則 2)基于測(cè)試方法的原則 3)兼顧 測(cè)試充分性 和 效率的原則 4)執(zhí)行用例的可再現(xiàn)性原則.
? ? 5.軟件的內(nèi)部質(zhì)量 ,可以從哪六大特性進(jìn)行解釋?
????六大特性:
????功能性:當(dāng)軟件在指定條件下使用時(shí),軟件產(chǎn)品 提供 滿足 明確的和隱含的能力,包括適合性,準(zhǔn)確性,互操作性,安全保密性,依從性
????可靠性:在指定條件下使用時(shí) 軟件產(chǎn)品維持規(guī)定的性能級(jí)別的能力;包括,成熟性,容錯(cuò)性,易恢復(fù)性,依從性
????易用性:在指定條件下使用 軟件產(chǎn)品被理解被學(xué)習(xí) 使用和 吸引用戶的能力? 包括 易學(xué)性 易操作性 吸引性 依從性
????效率性:在規(guī)定條件下 軟件產(chǎn)品執(zhí)行其功能時(shí)使用合適數(shù)量和類別資源的能力;包括 資源利用性 和效率依從性 、?
????維護(hù)性:軟件產(chǎn)品 可以被修改的能力可能包括 糾正 改進(jìn) 軟件對(duì)環(huán)境 需求 和功能規(guī)格說(shuō)明變化的適應(yīng) 包括,易分析性,易改變性,穩(wěn)定性,易測(cè)試性,依從性
????可移植性:軟件產(chǎn)品 從一種環(huán)境遷移到另外一種環(huán)境的能力,包括,適應(yīng)性,易安裝性,共存性,易替換性,可移植性的依從性。
????6.軟件按照生命周期可以分為哪些測(cè)試? 單元測(cè)試,集成測(cè)試,配置項(xiàng)測(cè)試(也叫作軟件合格性測(cè)試或確認(rèn)測(cè)試),系統(tǒng)測(cè)試,驗(yàn)收測(cè)試。
???? 回歸測(cè)試可以分布在上述每個(gè)測(cè)試類別中,貫穿整個(gè)軟件生命周期,所以單獨(dú)分類描述。
? ? 7.?回歸測(cè)試的目的是什么?
???? 1) 測(cè)試軟件變更之后,變更部分 的正確性 針對(duì)變更需求的 復(fù)合型
???? 2)測(cè)試軟件變更之后 軟件原有的 正確的功能 性能和其他規(guī)定的要求的 不損害性。
????8.每一個(gè)階段測(cè)試基于的文檔是什么? 單元測(cè)試:軟件設(shè)計(jì)文檔。 集成測(cè)試:軟件結(jié)構(gòu)設(shè)計(jì)文檔。配置項(xiàng)測(cè)試:需求規(guī)格說(shuō)明書(接口需求規(guī)格說(shuō)明)。系統(tǒng)測(cè)試:用戶需求(研制合同或系統(tǒng)需求)。驗(yàn)收測(cè)試:軟件研制合同(用戶需求或系統(tǒng)需求).
? ? 9.什么是靜態(tài)測(cè)試 什么是動(dòng)態(tài)測(cè)試?
? ? 1)靜態(tài)測(cè)試:又稱為靜態(tài)分析結(jié)束,其基本特征是 不執(zhí)行被測(cè)軟件,根據(jù)檢查列表,對(duì)需求分析說(shuō)明書,軟件設(shè)計(jì)說(shuō)明書,源程序做結(jié)構(gòu)檢查,流程圖分析等找出軟件錯(cuò)誤,靜態(tài)測(cè)試一般采用人工分析(針對(duì)文檔),也可以用靜態(tài)分析測(cè)試工具來(lái)進(jìn)行(代碼掃描)
? ? 2)動(dòng)態(tài)測(cè)試:其基本特征是執(zhí)行被測(cè)試程序。通過(guò)執(zhí)行結(jié)果,分析軟件可能出現(xiàn)的錯(cuò)誤 ,一般由人工設(shè)計(jì)程序測(cè)試用例,也可以由測(cè)試工具做檢查和分析。
? ? 10.什么是黑盒測(cè)試,什么是白盒測(cè)試?
? ? 1)黑盒測(cè)試:又稱為功能測(cè)試,數(shù)據(jù)驅(qū)動(dòng)測(cè)試,或者基于規(guī)格說(shuō)明的測(cè)試,這種測(cè)試不必要了解 對(duì)象的內(nèi)部邏輯結(jié)構(gòu),而是根據(jù)需求說(shuō)明書中的功能來(lái)設(shè)計(jì)測(cè)試用例
? ? 2)白盒測(cè)試:又稱,結(jié)構(gòu)測(cè)試。邏輯測(cè)試或者基于程序的測(cè)試,這種測(cè)試 應(yīng)了解軟件程序的內(nèi)部構(gòu)造,并且根據(jù)內(nèi)部構(gòu)造 來(lái)設(shè)計(jì)測(cè)試用例。
? ? 一般單元測(cè)試采用白盒測(cè)試, 配置項(xiàng)或系統(tǒng)采用黑盒測(cè)試。
二、測(cè)試用例設(shè)計(jì)
? ? 1.等價(jià)類劃分:某個(gè)輸入域的集合,在這個(gè)集合中每個(gè)輸入條件都是等效的,如果其中一個(gè)的輸入不能導(dǎo)致問(wèn)題發(fā)生,那么集合中其它輸入條件進(jìn)行測(cè)試也不太可能發(fā)現(xiàn)錯(cuò)誤。
? ????? 1)有效等價(jià)類:有效等價(jià)類是程序規(guī)格說(shuō)明有意義,合理的輸入數(shù)據(jù)。
????????比如用正確的用戶名和密碼來(lái)登錄系統(tǒng)就是有效等價(jià)類。
? ? ????2)無(wú)效等價(jià)類:無(wú)效等價(jià)類是程序規(guī)格說(shuō)明無(wú)意義,不合理的輸入數(shù)據(jù)。
????比如用不存在的用戶名和密碼來(lái)登錄系統(tǒng)就是無(wú)效的等價(jià)類。
? ? ????3)等價(jià)類法設(shè)計(jì)測(cè)試用例的步驟:
? ??????????為每個(gè)輸入劃分等價(jià)類,得到等價(jià)類表,為每個(gè)等價(jià)類規(guī)定一個(gè)唯一編號(hào)。
????設(shè)計(jì)一個(gè)測(cè)試用例,使其盡可能多的覆蓋所有尚未覆蓋的有效等價(jià)類。重復(fù)這一步驟,使得有效等價(jià)類均被測(cè)試用例所覆蓋設(shè)計(jì)一個(gè)測(cè)試用例,使其只覆蓋一個(gè)無(wú)效等價(jià)類。重復(fù)這一步驟使得所有無(wú)效等價(jià)類均被覆蓋。
? ??2.邊界值分析:邊界值分析方法的理論基礎(chǔ)是假定大多數(shù)的錯(cuò)誤是發(fā)生在各種輸入條件的邊界上,如果在邊界附近的取值不會(huì)導(dǎo)致程序出錯(cuò),那么其它的取值導(dǎo)致程序錯(cuò)誤的可能性也很小。
? ? 1)邊界值分析法設(shè)計(jì)用例的步驟? ??
分析輸入?yún)?shù)的類型:從測(cè)試規(guī)格中分析得到輸入?yún)?shù)類型
等價(jià)類劃分(可選):對(duì)于輸入等價(jià)類劃分方法進(jìn)行等價(jià)類的劃分
確定邊界:運(yùn)用域測(cè)試分析方法確定域范圍的邊界(上點(diǎn)、離點(diǎn)與內(nèi)點(diǎn))
相關(guān)性分析(可選):如果存在多個(gè)輸入域,則需要運(yùn)用因果圖、判定表方法這些輸入域邊界值的組合情況進(jìn)行進(jìn)一步分析
? ??3.決策表:決策表是分析和表達(dá)多種輸入條件下系統(tǒng)執(zhí)行不同動(dòng)作的工具,它可以把復(fù)雜的邏輯關(guān)系和多種條件組合的情況表達(dá)得既具體又明確 。
? ??1)決策表法設(shè)計(jì)用例的步驟
????列出所有的條件樁和動(dòng)作樁
????填入條件樁、條件項(xiàng)
????填入動(dòng)作樁、動(dòng)作項(xiàng)
????化簡(jiǎn),合并相似規(guī)則
????將每條規(guī)則轉(zhuǎn)化為用例
三、測(cè)試流程
????1.需求分析階段:只要就是對(duì)業(yè)務(wù)的學(xué)習(xí),分析需求點(diǎn)。
????2.測(cè)試計(jì)劃階段:測(cè)試組長(zhǎng)就要根據(jù)SOW開始編寫《測(cè)試計(jì)劃》,其中包括人員,軟件硬件資源,測(cè)試點(diǎn),集成順序,進(jìn)度安排和風(fēng)險(xiǎn)識(shí)別等內(nèi)容。
????3.測(cè)試設(shè)計(jì)階段:測(cè)試方案一般由對(duì)需求很熟的高資深的測(cè)試工程師設(shè)計(jì),測(cè)試方案要求根據(jù)《SRS》上的每個(gè)需求點(diǎn)設(shè)計(jì)出包括需求點(diǎn)簡(jiǎn)介,測(cè)試思路和詳細(xì)測(cè)試方法三部分的方案?!稖y(cè)試方案》編寫完成后也需要進(jìn)行評(píng)審。
????4.測(cè)試方案階段:主要是對(duì)測(cè)試用例和規(guī)程的設(shè)計(jì)。測(cè)試用例是根據(jù)《測(cè)試方案》來(lái)編寫的,通過(guò)《測(cè)試方案》階段,測(cè)試人員對(duì)整個(gè)系統(tǒng)需求有了詳細(xì)的理解。這時(shí)開始編寫用例才能保證用例的可執(zhí)行和對(duì)需求的覆蓋。測(cè)試用例需要包括測(cè)試項(xiàng),用例級(jí)別,預(yù)置條件,操作步驟和預(yù)期結(jié)果。其中操作步驟和預(yù)期結(jié)果需要編寫詳細(xì)和明確。測(cè)試用例應(yīng)該覆蓋測(cè)試方案,而測(cè)試方案又覆蓋了測(cè)試需求點(diǎn),這樣才能保證客戶需求不遺漏。同樣,測(cè)試用例也需要評(píng)審。
????5.測(cè)試執(zhí)行階段:執(zhí)行測(cè)試用例,及時(shí)提交有質(zhì)量的Bug和測(cè)試日?qǐng)?bào),測(cè)試報(bào)告等相關(guān)文檔。
? ? 6.測(cè)試目標(biāo):指定完整且具體的測(cè)試路線和流程,為快速、高效和高質(zhì)量的軟件測(cè)試提供基礎(chǔ)流程框架。最終目標(biāo)是實(shí)現(xiàn)軟件的測(cè)試規(guī)范化和標(biāo)準(zhǔn)化
四、功能測(cè)試
? ? 1.功能測(cè)試:又稱黑盒測(cè)試;顧名思義就是一個(gè)盒子內(nèi)部是黑色的,我們只能看見它的外部(表面);功能測(cè)試就是不考慮內(nèi)部結(jié)構(gòu),僅對(duì)外部功能進(jìn)行測(cè)試。
????2.功能測(cè)試的全流程
? ? ? ? 1)測(cè)試計(jì)劃 :描述了要進(jìn)行的測(cè)試活動(dòng)的范圍、方法、資源和進(jìn)度的文檔;是對(duì)整個(gè)信息系統(tǒng)應(yīng)用軟件組裝測(cè)試和確認(rèn)測(cè)試。它確定測(cè)試項(xiàng)、被測(cè)特性、測(cè)試任務(wù)、誰(shuí)執(zhí)行任務(wù)、各種可能的風(fēng)險(xiǎn)。測(cè)試計(jì)劃可以有效預(yù)防計(jì)劃的風(fēng)險(xiǎn),保障計(jì)劃的順利實(shí)施。
? ? ? ? 格式:概述、測(cè)試范圍、測(cè)試組網(wǎng)圖、資源需求、測(cè)試條件、測(cè)試進(jìn)度、測(cè)試準(zhǔn)則、測(cè)試風(fēng)險(xiǎn)分析、測(cè)試策略、測(cè)試功能點(diǎn)、工作交付圖。
? ? ? ? 2)測(cè)試用例:是軟件測(cè)試的核心,是一組條件或變量,測(cè)試者根據(jù)它來(lái)確定應(yīng)用軟件或軟件系統(tǒng)是否正確工作。確定軟件程序或系統(tǒng)是否通過(guò)測(cè)試的方法叫做測(cè)試準(zhǔn)則。
? ? ? ? 格式:產(chǎn)品名稱、所屬模塊、子模塊、用例編號(hào)、用例名稱、前置條件、操作步驟、預(yù)期結(jié)果、實(shí)際結(jié)果、測(cè)試人員、用例等級(jí)、用例類型、修改說(shuō)明。
? ? ? ? 3)測(cè)試執(zhí)行:結(jié)果分為四類:通過(guò)(Pass)、失?。‵ail)、跳過(guò)(Skip)、受阻(Block)
? ??????“通過(guò)”的測(cè)試用例表明該測(cè)試用例可以執(zhí)行,而且沒(méi)有發(fā)現(xiàn)軟件缺陷;
????????“失敗”的測(cè)試用例表明該測(cè)試用例可以執(zhí)行,而且發(fā)現(xiàn)了軟件缺陷;
? ? ? ? ”跳過(guò)“的測(cè)試用例表明該測(cè)試用例不適用于本輪測(cè)試而沒(méi)有執(zhí)行;
????????“受阻”的測(cè)試用例表明本測(cè)試用例無(wú)法正常執(zhí)行。
? ? ? ? 4)提Bug:?軟件的BUG,狹義概念是指軟件程序的漏洞或缺陷,廣義概念除此之外還包括測(cè)試工程師或用戶所發(fā)現(xiàn)和提出的軟件可改進(jìn)的細(xì)節(jié)、或與需求文檔存在差異的功能實(shí)現(xiàn)等。
? ? ? ? Bug類型:功能問(wèn)題、設(shè)計(jì)缺陷、界面優(yōu)化、性能問(wèn)題、配置相關(guān)、安裝部署、安全相關(guān)、標(biāo)準(zhǔn)規(guī)范、測(cè)試腳本、文檔錯(cuò)誤、兼容問(wèn)題、用戶體驗(yàn)、其它。
? ? ? ? Bug等級(jí):1、致命錯(cuò)誤(1級(jí)提BUG需慎重)????2、嚴(yán)重錯(cuò)誤? ? 3、一般錯(cuò)誤? ??4、細(xì)微錯(cuò)誤
? ? ? ? 5)測(cè)試報(bào)告:把測(cè)試的過(guò)程和結(jié)果寫成文檔,對(duì)發(fā)現(xiàn)的問(wèn)題和缺陷進(jìn)行分析,為糾正軟件的存在的質(zhì)量問(wèn)題提供依據(jù),同時(shí)為軟件驗(yàn)收和交付打下基礎(chǔ)。
? ? ? ? 格式:簡(jiǎn)介、測(cè)試資源描述、測(cè)試時(shí)間統(tǒng)計(jì)、測(cè)試用例分析、缺陷情況分析、版本質(zhì)量分析、測(cè)試活動(dòng)評(píng)估、測(cè)試過(guò)程改進(jìn)。
五、接口測(cè)試
????1.fiddler介紹:Fiddler是一個(gè)http協(xié)議調(diào)試代理工具,它能夠記錄并檢查所有你的電腦和互聯(lián)網(wǎng)之間的http通訊,設(shè)置斷點(diǎn),查看所有的"進(jìn)出"Fiddler的數(shù)據(jù)(指cookie,html,js,css等文件)。
? ? 2.使用:Fiddler支持?jǐn)帱c(diǎn)調(diào)試技術(shù),當(dāng)你在軟件的菜單-rules-automatic breakpoints選項(xiàng)選擇before request,或者當(dāng)這些請(qǐng)求或響應(yīng)屬性能夠跟目標(biāo)的標(biāo)準(zhǔn)相匹配,F(xiàn)iddler就能夠暫停Http通訊,并且允許修改請(qǐng)求和響應(yīng)。
? ? 3.HTTP協(xié)議
? ? ? ? 1)請(qǐng)求:
????????GET???? 請(qǐng)求獲取Request-URI所標(biāo)識(shí)的資源
????????POST??? 在Request-URI所標(biāo)識(shí)的資源后附加新的數(shù)據(jù)
????????HEAD??? 請(qǐng)求獲取由Request-URI所標(biāo)識(shí)的資源的響應(yīng)消息報(bào)頭
????????PUT???? 請(qǐng)求服務(wù)器存儲(chǔ)一個(gè)資源,并用Request-URI作為其標(biāo)識(shí)
????????DELETE? 請(qǐng)求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源
????????TRACE?? 請(qǐng)求服務(wù)器回送收到的請(qǐng)求信息,主要用于測(cè)試或診斷
????????CONNECT 保留將來(lái)使用
????????OPTIONS 請(qǐng)求查詢服務(wù)器的性能,或者查詢與資源相關(guān)的選項(xiàng)和需求
? ? ? ? 2)響應(yīng):
????????200 OK????? //客戶端請(qǐng)求成功
????????400 Bad Request? //客戶端請(qǐng)求有語(yǔ)法錯(cuò)誤,不能被服務(wù)器所理解
????????401 Unauthorized //請(qǐng)求未經(jīng)授權(quán),這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用
????????403 Forbidden? //服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)
????????404 Not Found? //請(qǐng)求資源不存在
????????500 Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤
????????503 Server Unavailable? //服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常
? ? ? ? 3)報(bào)頭:
? ? ? ? 包括普通報(bào)頭、請(qǐng)求報(bào)頭、響應(yīng)報(bào)頭、實(shí)體報(bào)頭。
六、安全測(cè)試
????1.sql注入:是一種將SQL代碼插入或添加到應(yīng)用(用戶)的輸入?yún)?shù)中的攻擊,之后再將這些參數(shù)傳遞給后臺(tái)的SQL服務(wù)器加以解析并執(zhí)行。
????2.xxs注入:XSS 全稱(Cross Site Scripting) 跨站腳本攻擊, 是Web程序中最常見的漏洞。指攻擊者在網(wǎng)頁(yè)中嵌入客戶端腳本(例如JavaScript), 當(dāng)用戶瀏覽此網(wǎng)頁(yè)時(shí),腳本就會(huì)在用戶的瀏覽器上執(zhí)行,從而達(dá)到攻擊者的目的.? 比如獲取用戶的Cookie,導(dǎo)航到惡意網(wǎng)站,攜帶木馬等。
? ? 3.網(wǎng)絡(luò)安全測(cè)試、數(shù)據(jù)庫(kù)安全測(cè)試、URL安全測(cè)試等。
七、DOCKER環(huán)境搭建? ??
? ? 1.概念:Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
? ? 2.CentOS 7操作系統(tǒng)下yum安裝
? ? 執(zhí)行命令:yum install -y docker
? ? 詳細(xì)的可以參考Centos7下安裝Docker(詳細(xì)安裝教程)_u014069688的博客-CSDN博客_centos7 docker安裝
? ? 3.啟動(dòng)?docker服務(wù),并將其設(shè)置為開機(jī)啟動(dòng)
? ? 執(zhí)行命令:systemctl start docker.service
? ? ? ? ? ? ? ? ? ? ? systemctl enable docker.service
八、性能測(cè)試
????1.jmeter 介紹? :JMeter是開源軟件Apache基金會(huì)下的一個(gè)性能測(cè)試工具,用來(lái)測(cè)試部署在服務(wù)器端的應(yīng)用程序的性能。JMeter因?yàn)槠涫褂煤?jiǎn)單,現(xiàn)在也被社區(qū)作為接口測(cè)試工具。
? ? 2.錄制腳本:
? ? ? ? 1)第一步:在JMeter中添加線程組,命名為AddBugByJMeter

? ? ? ? 2)第二步:在線程組下添加HTTP請(qǐng)求默認(rèn)值
添加->配置元件->HTTP請(qǐng)求默認(rèn)值,設(shè)置服務(wù)器IP和端口號(hào)(JMeter默認(rèn)使用80端口號(hào),我的禪道配置的是81端口)

? ? ? ? 3)第三步:添加HTTP代理服務(wù)器
????????????????1、添加非測(cè)試原件->HTTP代理服務(wù)器,并設(shè)置端口號(hào)(可以通過(guò)netstat -ano查看電腦中未使用的端口號(hào))、選擇目標(biāo)控制器(選中前面的線程組)

? ??????????????2、點(diǎn)擊HTTP代理服務(wù)器的啟動(dòng)按鈕,啟動(dòng)后可以通過(guò)JMeter右上角的log查看按鈕查看啟動(dòng)情況

? ??????????????3、打開Google Chrome瀏覽器設(shè)置代理

? ? ? ? 4)第四步:開始錄制
????????????用Google Chrome瀏覽器訪問(wèn)禪道主頁(yè),可以看到打開首頁(yè)時(shí)JMeter就已經(jīng)記錄下對(duì)應(yīng)的請(qǐng)求信息了。

????3.增強(qiáng)腳本:性能測(cè)試的腳本增強(qiáng)技術(shù):參數(shù)化、關(guān)聯(lián)、事務(wù)、檢查點(diǎn)、思考時(shí)間和集合點(diǎn)。
? ? ? ? 1)參數(shù)化:在Jmeter中,實(shí)現(xiàn)參數(shù)化的方式很多。
????????????本質(zhì)上來(lái)說(shuō),參數(shù)化的實(shí)現(xiàn)方式有兩種:
????????????文件方式:一般建議通過(guò)配置元件--CSV DATA SET CONFIG組件來(lái)實(shí)現(xiàn)。
????????????函數(shù)方式:一般通過(guò)調(diào)用Jmeter內(nèi)置的、第三方插件、自定義的函數(shù)來(lái)實(shí)現(xiàn)。
????????????一般通過(guò)函數(shù)助手來(lái)生成調(diào)用的字符串。
????????????調(diào)用方式:在jmeter中,任何鼠標(biāo)點(diǎn)擊可以輸入的地方(輸入字符串),都可以實(shí)現(xiàn)參數(shù)化操作,在Jmeter中,參數(shù)、變量、函數(shù)的調(diào)用方式是固定的:${參數(shù)名}? ${變量名}? ${函數(shù)名}
? ????? 2)關(guān)聯(lián):
????????????關(guān)聯(lián)是用來(lái)解決請(qǐng)求之間的依賴關(guān)系的。
????????????在工具層面,工具需要解決的問(wèn)題其實(shí)是兩個(gè):
????????????先存:先保存服務(wù)器響應(yīng)的數(shù)據(jù)
????????????后用:在后續(xù)的請(qǐng)求中調(diào)用所保存的數(shù)據(jù)。
????????????在Jmeter中,關(guān)聯(lián)一般都是通過(guò)后置處理器組件來(lái)實(shí)現(xiàn)。
????????????常用的是:正則表達(dá)式提取器、JSON Extractor。
? ? ? ? 3)事務(wù):
????????????引入事務(wù)的目的是為了度量響應(yīng)時(shí)間和TPS。
????????????在Jmeter中,對(duì)于事務(wù)的處理是分兩種情況:
????????????事務(wù)只是一個(gè)請(qǐng)求:只需要修改請(qǐng)求的名稱,使其具有唯一性。不需要其它額外的操作。
????????????事務(wù)包含多個(gè)請(qǐng)求:則需要使用邏輯控制器--事務(wù)控制器。
????????????PS:建議勾選Generate parent sample,這樣得到的時(shí)間會(huì)更加準(zhǔn)確。
? ? ? ? 4)檢查點(diǎn):
????????????在Jmeter,檢查點(diǎn)通常都是通過(guò)斷言組件來(lái)實(shí)現(xiàn)的。
????????????常用的斷言組件就是:響應(yīng)斷言。
????????5)思考時(shí)間:在Jmeter中,常用的思考時(shí)間組件有兩個(gè):
????????????固定定時(shí)器:?jiǎn)挝皇呛撩?/p>
????????????高斯隨機(jī)定時(shí)器:作用就是:用來(lái)模擬:固定延遲+-2×偏差值。
????????????最小值等于0.
? ? ? ? 6)集合點(diǎn):在Jmeter中,集合點(diǎn)是通過(guò)定時(shí)器--Synchronizing Timer組件實(shí)現(xiàn)。
????????????Number of Users:一次集合的人數(shù)。
????????????默認(rèn)值為0,表示集合人數(shù)等于線程組中的線程總數(shù)。
????????????Timeout:超時(shí)時(shí)間,是指第一個(gè)到達(dá)集合點(diǎn)的線程的等待時(shí)間,如果時(shí)間到達(dá),則所有到達(dá)集合點(diǎn)的線程都會(huì)釋放執(zhí)行后續(xù)的請(qǐng)求。
????????????默認(rèn)值為0,表示不超時(shí),即必須等到足夠的線程才會(huì)釋放。
? ? 4.性能測(cè)試的簡(jiǎn)單介紹
? ??????指通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試
? ? 5.線程組
? ? ? ? 1)線程組元件是任何一個(gè)測(cè)試計(jì)劃的開始點(diǎn)。在一個(gè)測(cè)試計(jì)劃中的所有元件都必須在某個(gè)線程下。所有的任務(wù)都是基于線程組。
? ? ? ? 2)通俗的講,一個(gè)線程組可以看做一個(gè)虛擬用戶組,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶。多個(gè)用戶同時(shí)去執(zhí)行相同的一批次任務(wù)。每個(gè)線程之間都是隔離的,互不影響的。一個(gè)線程的執(zhí)行過(guò)程中,操作的變量,不會(huì)影響其他線程的變量值。
? ? 6.聚合報(bào)告
? ? ? ? 1)對(duì)于每個(gè)請(qǐng)求,它統(tǒng)計(jì)響應(yīng)信息并提供請(qǐng)求數(shù),平均值,最大,最小值,錯(cuò)誤率,大約吞吐量(以請(qǐng)求數(shù)/秒為單位)和以kb/秒為單位的吞吐量.
? ? ? ? 2)我們先來(lái)看看聚合報(bào)告中的主要名稱的含意:
????????????Label:每個(gè)請(qǐng)求的名稱
????????????#Samples:各請(qǐng)求發(fā)出的數(shù)量
????????????Average:平均響應(yīng)時(shí)間(單位:毫秒)。默認(rèn)是單個(gè)Request的平均響應(yīng)時(shí)間,當(dāng)使用了Transaction Controller時(shí),也可以以Transaction為單位顯示平均響應(yīng)時(shí)間
????????????Median:中位數(shù)
????????????90%Line:百分位數(shù);官網(wǎng)原話:“?90%?的請(qǐng)求耗時(shí)沒(méi)有超過(guò)這個(gè)時(shí)間,剩余的請(qǐng)求耗時(shí)至少在這個(gè)時(shí)間之上。”。通俗說(shuō),90%用戶的響應(yīng)時(shí)間小于該值
????????????95%Line:95%用戶的響應(yīng)時(shí)間小于該值
????????????99%Line:99%用戶的響應(yīng)時(shí)間小于該值
????????????Min:最小響應(yīng)時(shí)間
????????????Max:最大響應(yīng)時(shí)間
????????????Error%:請(qǐng)求的錯(cuò)誤率 = 錯(cuò)誤請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
????????????Throughput:吞吐量。默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù),一般認(rèn)為它為TPS。(注意單位的變化,如上圖中,當(dāng)TPS很低時(shí),jmeter中默認(rèn)會(huì)統(tǒng)計(jì)成每分鐘的值,這時(shí)我們需要換算成以秒為單位)
????????????KB/sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量。
? ? 7.點(diǎn)擊率報(bào)告
? ????? 每秒點(diǎn)擊率 hps 這個(gè)概念不僅僅是針對(duì)某個(gè)工具說(shuō)的 而是一個(gè)衡量負(fù)載大小的概念,它就是指的單位時(shí)間獲得返回的請(qǐng)求數(shù)量
? ? 8.TPS報(bào)告
????????1)TPS,執(zhí)行一次事務(wù)(包括請(qǐng)求、請(qǐng)求服務(wù)器、等待服務(wù)器返回等等,比如一個(gè)TPS事務(wù),可能觸發(fā)3個(gè)QPS請(qǐng)求)
? ? ? ? ? ? ?TPS:Transactions Per Second(每秒傳輸?shù)氖挛锾幚韨€(gè)數(shù)),即服務(wù)器每秒處理的事務(wù)數(shù)。TPS包括一條消息入和一條消息出,加上一次用戶數(shù)據(jù)庫(kù)訪問(wèn)。(業(yè)務(wù)TPS = CAPS × 每個(gè)呼叫平均TPS)
? ? ? ?2)TPS是軟件測(cè)試結(jié)果的測(cè)量單位。一個(gè)事務(wù)是指一個(gè)客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出反應(yīng)的過(guò)程。客戶機(jī)在發(fā)送請(qǐng)求時(shí)開始計(jì)時(shí),收到服務(wù)器響應(yīng)后結(jié)束計(jì)時(shí),以此來(lái)計(jì)算使用的時(shí)間和完成的事務(wù)個(gè)數(shù)。一般的,評(píng)價(jià)系統(tǒng)性能均以每秒鐘完成的技術(shù)交易的數(shù)量來(lái)衡量。系統(tǒng)整體處理能力取決于處理能力最低模塊的TPS值。
九、接口自動(dòng)化
? ? 1.添加用戶自定義變量
? ? ? ? ? ? 1)我們可以添加用戶自定義變量用以Http請(qǐng)求參數(shù)化,右鍵點(diǎn)擊“線程組” -> “添加” -> “配置元件” -> “用戶定義的變量”:

? ? ? ? 2)新增一個(gè)參數(shù)wd,存放搜索詞"自動(dòng)化測(cè)試"

? ? ? ? 3)并在Http請(qǐng)求中使用該參數(shù),格式為:${wd}

? ? 2."CSV?數(shù)據(jù)文件設(shè)置"
? ? ? ? 1)新建一個(gè)csv文件,保存如下數(shù)據(jù):注意使用notepad編輯,將其轉(zhuǎn)換為utf-8編碼方式,否則中文在jmeter中顯示亂碼

? ? ? ? 2)右鍵點(diǎn)擊“線程組” -> “添加” -> “配置元件” -> “CSV?數(shù)據(jù)文件設(shè)置”:


????????3)在Http請(qǐng)求中使用該參數(shù),格式為:${keyword}?,并運(yùn)行可以在結(jié)果樹中查看到如下結(jié)果,則表示已從csv文件中讀取對(duì)應(yīng)的參數(shù)
