一知允、測(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ī)格說明,軟件產(chǎn)品說明等規(guī)定的軟件質(zhì)量要求 2)通過測(cè)試膀跌,發(fā)現(xiàn)軟件缺陷? 3)為軟件產(chǎn)品的質(zhì)量測(cè)量和評(píng)價(jià)提供依據(jù).
????3.軟件測(cè)試的標(biāo)準(zhǔn)4個(gè)過程站故,以及對(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)該通過笆怠,測(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)告并通過測(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ī)格說明變化的適應(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ī)格說明書(接口需求規(guī)格說明)。系統(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ì)需求分析說明書月帝,軟件設(shè)計(jì)說明書,源程序做結(jié)構(gòu)檢查幽污,流程圖分析等找出軟件錯(cuò)誤嚷辅,靜態(tài)測(cè)試一般采用人工分析(針對(duì)文檔),也可以用靜態(tài)分析測(cè)試工具來進(jìn)行(代碼掃描)
? ? 2)動(dòng)態(tài)測(cè)試:其基本特征是執(zhí)行被測(cè)試程序距误。通過執(zhí)行結(jié)果簸搞,分析軟件可能出現(xiàn)的錯(cuò)誤 ,一般由人工設(shè)計(jì)程序測(cè)試用例准潭,也可以由測(cè)試工具做檢查和分析趁俊。
? ? 10.什么是黑盒測(cè)試,什么是白盒測(cè)試惋鹅?
? ? 1)黑盒測(cè)試:又稱為功能測(cè)試则酝,數(shù)據(jù)驅(qū)動(dòng)測(cè)試,或者基于規(guī)格說明的測(cè)試闰集,這種測(cè)試不必要了解 對(duì)象的內(nèi)部邏輯結(jié)構(gòu)沽讹,而是根據(jù)需求說明書中的功能來設(shè)計(jì)測(cè)試用例
? ? 2)白盒測(cè)試:又稱,結(jié)構(gòu)測(cè)試武鲁。邏輯測(cè)試或者基于程序的測(cè)試爽雄,這種測(cè)試 應(yīng)了解軟件程序的內(nèi)部構(gòu)造,并且根據(jù)內(nèi)部構(gòu)造 來設(shè)計(jì)測(cè)試用例沐鼠。
? ? 一般單元測(cè)試采用白盒測(cè)試挚瘟, 配置項(xiàng)或系統(tǒng)采用黑盒測(cè)試。
二饲梭、測(cè)試用例設(shè)計(jì)
? ? 1.等價(jià)類劃分:某個(gè)輸入域的集合乘盖,在這個(gè)集合中每個(gè)輸入條件都是等效的,如果其中一個(gè)的輸入不能導(dǎo)致問題發(fā)生憔涉,那么集合中其它輸入條件進(jìn)行測(cè)試也不太可能發(fā)現(xiàn)錯(cuò)誤订框。
? ????? 1)有效等價(jià)類:有效等價(jià)類是程序規(guī)格說明有意義,合理的輸入數(shù)據(jù)兜叨。
????????比如用正確的用戶名和密碼來登錄系統(tǒng)就是有效等價(jià)類穿扳。
? ? ????2)無效等價(jià)類:無效等價(jià)類是程序規(guī)格說明無意義,不合理的輸入數(shù)據(jù)国旷。
????比如用不存在的用戶名和密碼來登錄系統(tǒng)就是無效的等價(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è)無效等價(jià)類涂身。重復(fù)這一步驟使得所有無效等價(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è)試方法三部分的方案修噪∮敕《測(cè)試方案》編寫完成后也需要進(jìn)行評(píng)審。
????4.測(cè)試方案階段:主要是對(duì)測(cè)試用例和規(guī)程的設(shè)計(jì)巩那。測(cè)試用例是根據(jù)《測(cè)試方案》來編寫的吏夯,通過《測(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ù)滋戳、誰執(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ù)它來確定應(yīng)用軟件或軟件系統(tǒng)是否正確工作张惹。確定軟件程序或系統(tǒng)是否通過測(cè)試的方法叫做測(cè)試準(zhǔn)則舀锨。
? ? ? ? 格式:產(chǎn)品名稱、所屬模塊宛逗、子模塊坎匿、用例編號(hào)、用例名稱拧额、前置條件碑诉、操作步驟、預(yù)期結(jié)果侥锦、實(shí)際結(jié)果、測(cè)試人員德挣、用例等級(jí)恭垦、用例類型、修改說明格嗅。
? ? ? ? 3)測(cè)試執(zhí)行:結(jié)果分為四類:通過(Pass)番挺、失敗(Fail)屯掖、跳過(Skip)玄柏、受阻(Block)
? ??????“通過”的測(cè)試用例表明該測(cè)試用例可以執(zhí)行,而且沒有發(fā)現(xiàn)軟件缺陷贴铜;
????????“失敗”的測(cè)試用例表明該測(cè)試用例可以執(zhí)行粪摘,而且發(fā)現(xiàn)了軟件缺陷;
? ? ? ? ”跳過“的測(cè)試用例表明該測(cè)試用例不適用于本輪測(cè)試而沒有執(zhí)行绍坝;
????????“受阻”的測(cè)試用例表明本測(cè)試用例無法正常執(zhí)行徘意。
? ? ? ? 4)提Bug:?軟件的BUG,狹義概念是指軟件程序的漏洞或缺陷,廣義概念除此之外還包括測(cè)試工程師或用戶所發(fā)現(xiàn)和提出的軟件可改進(jìn)的細(xì)節(jié)轩褐、或與需求文檔存在差異的功能實(shí)現(xiàn)等椎咧。
? ? ? ? Bug類型:功能問題、設(shè)計(jì)缺陷把介、界面優(yōu)化勤讽、性能問題、配置相關(guān)拗踢、安裝部署脚牍、安全相關(guān)、標(biāo)準(zhǔn)規(guī)范秒拔、測(cè)試腳本莫矗、文檔錯(cuò)誤飒硅、兼容問題、用戶體驗(yàn)作谚、其它三娩。
? ? ? ? Bug等級(jí):1、致命錯(cuò)誤(1級(jí)提BUG需慎重)????2妹懒、嚴(yán)重錯(cuò)誤? ? 3雀监、一般錯(cuò)誤? ??4、細(xì)微錯(cuò)誤
? ? ? ? 5)測(cè)試報(bào)告:把測(cè)試的過程和結(jié)果寫成文檔眨唬,對(duì)發(fā)現(xiàn)的問題和缺陷進(jìn)行分析会前,為糾正軟件的存在的質(zhì)量問題提供依據(jù),同時(shí)為軟件驗(yàn)收和交付打下基礎(chǔ)匾竿。
? ? ? ? 格式:簡(jiǎn)介瓦宜、測(cè)試資源描述、測(cè)試時(shí)間統(tǒng)計(jì)岭妖、測(cè)試用例分析临庇、缺陷情況分析、版本質(zhì)量分析昵慌、測(cè)試活動(dòng)評(píng)估假夺、測(cè)試過程改進(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 保留將來使用
????????OPTIONS 請(qǐng)求查詢服務(wù)器的性能,或者查詢與資源相關(guān)的選項(xiàng)和需求
? ? ? ? 2)響應(yīng):
????????200 OK????? //客戶端請(qǐng)求成功
????????400 Bad Request? //客戶端請(qǐng)求有語法錯(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)頁中嵌入客戶端腳本(例如JavaScript), 當(dāng)用戶瀏覽此網(wǎng)頁時(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è)試工具,用來測(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)(可以通過netstat -ano查看電腦中未使用的端口號(hào))、選擇目標(biāo)控制器(選中前面的線程組)
? ??????????????2咳蔚、點(diǎn)擊HTTP代理服務(wù)器的啟動(dòng)按鈕豪嚎,啟動(dòng)后可以通過JMeter右上角的log查看按鈕查看啟動(dòng)情況
? ??????????????3、打開Google Chrome瀏覽器設(shè)置代理
? ? ? ? 4)第四步:開始錄制
????????????用Google Chrome瀏覽器訪問禪道主頁谈火,可以看到打開首頁時(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ì)上來說,參數(shù)化的實(shí)現(xiàn)方式有兩種:
????????????文件方式:一般建議通過配置元件--CSV DATA SET CONFIG組件來實(shí)現(xiàn)篷角。
????????????函數(shù)方式:一般通過調(diào)用Jmeter內(nèi)置的焊刹、第三方插件、自定義的函數(shù)來實(shí)現(xiàn)恳蹲。
????????????一般通過函數(shù)助手來生成調(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)是用來解決請(qǐng)求之間的依賴關(guān)系的。
????????????在工具層面以清,工具需要解決的問題其實(shí)是兩個(gè):
????????????先存:先保存服務(wù)器響應(yīng)的數(shù)據(jù)
????????????后用:在后續(xù)的請(qǐng)求中調(diào)用所保存的數(shù)據(jù)儿普。
????????????在Jmeter中,關(guān)聯(lián)一般都是通過后置處理器組件來實(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)通常都是通過斷言組件來實(shí)現(xiàn)的瓦阐。
????????????常用的斷言組件就是:響應(yīng)斷言蜗侈。
????????5)思考時(shí)間:在Jmeter中,常用的思考時(shí)間組件有兩個(gè):
????????????固定定時(shí)器:?jiǎn)挝皇呛撩?/p>
????????????高斯隨機(jī)定時(shí)器:作用就是:用來模擬:固定延遲+-2×偏差值睡蟋。
????????????最小值等于0.
? ? ? ? 6)集合點(diǎn):在Jmeter中踏幻,集合點(diǎn)是通過定時(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)單介紹
? ??????指通過自動(dòng)化的測(cè)試工具模擬多種正常牵触、峰值以及異常負(fù)載條件來對(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í)行過程中福侈,操作的變量,不會(huì)影響其他線程的變量值卢未。
? ? 6.聚合報(bào)告
? ? ? ? 1)對(duì)于每個(gè)請(qǐng)求癌刽,它統(tǒng)計(jì)響應(yīng)信息并提供請(qǐng)求數(shù),平均值尝丐,最大,最小值衡奥,錯(cuò)誤率爹袁,大約吞吐量(以請(qǐng)求數(shù)/秒為單位)和以kb/秒為單位的吞吐量.
? ? ? ? 2)我們先來看看聚合報(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í)沒有超過這個(gè)時(shí)間档址,剩余的請(qǐng)求耗時(shí)至少在這個(gè)時(shí)間之上盹兢。”。通俗說守伸,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è)工具說的 而是一個(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ù)訪問。(業(yè)務(wù)TPS = CAPS × 每個(gè)呼叫平均TPS)
? ? ? ?2)TPS是軟件測(cè)試結(jié)果的測(cè)量單位揭北。一個(gè)事務(wù)是指一個(gè)客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出反應(yīng)的過程扳炬。客戶機(jī)在發(fā)送請(qǐng)求時(shí)開始計(jì)時(shí)搔体,收到服務(wù)器響應(yīng)后結(jié)束計(jì)時(shí)恨樟,以此來計(jì)算使用的時(shí)間和完成的事務(wù)個(gè)數(shù)。一般的疚俱,評(píng)價(jià)系統(tǒng)性能均以每秒鐘完成的技術(shù)交易的數(shù)量來衡量劝术。系統(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ù)