目錄 ⑤ licenses 目錄 — — jmeter 證書(shū)目錄 2)使用jmeter自身代理錄制移動(dòng)端 6、jmeter連接數(shù)據(jù)庫(kù) -- 以MySQL為例 ③ 引入數(shù)據(jù)庫(kù)驅(qū)動(dòng)jar 包 ④ 配置 JDBC Connectionn Configuration 2)常數(shù)吞吐量定時(shí)器 constant throughput timer 一、jmeter 安裝看文章: 解釋?zhuān)翰灰褂肎UI模式進(jìn)行壓力測(cè)試,GUI模式僅僅用于創(chuàng)建和調(diào)試壓力測(cè)試腳本的。 二、jmeter 介紹1、jmeter是什么?jmeter:是Apche公司使用Java平臺(tái)開(kāi)發(fā)的一款測(cè)試工具。 2、jmeter 用來(lái)做什么?
3、優(yōu)點(diǎn)
4、缺點(diǎn)無(wú)法驗(yàn)證JS程序,也無(wú)法驗(yàn)證頁(yè)面UI,所以必須要和 selenium 配合來(lái)完成web2.0應(yīng)用的測(cè)試 5、jmeter 目錄介紹①_bin 目錄介紹
jmeter.properties :
https=http+ssl ② docs 目錄 — — 接口文檔目錄例如:docs\api\index.html 可打開(kāi)網(wǎng)頁(yè)查看 ③ extras目錄 — — 擴(kuò)展插件目錄提供了對(duì) ant 的支持,可以使用 ant 實(shí)現(xiàn)自動(dòng)化測(cè)試。例如批量腳本執(zhí)行,產(chǎn)生html格式的報(bào)表 測(cè)試運(yùn)行時(shí),可以把測(cè)試數(shù)據(jù)記錄下來(lái),jmeter會(huì)自動(dòng)生成一個(gè) .jtl 文件,將該文件放在extras目錄下,運(yùn)行“ant-Dtest=文件名 report”,就可以生成測(cè)試統(tǒng)計(jì)報(bào)表。 ④ lib 目錄 — — 所用到的插件目錄⑤ licenses 目錄 — — jmeter 證書(shū)目錄⑥ printable_docs目錄(網(wǎng)頁(yè)可以翻譯看) 三、jmeter 基本使用&元件1、jmeter 入門(mén)腳本
jmeter測(cè)試計(jì)劃要素:
編輯好腳本后,可以發(fā)送請(qǐng)求 save后默認(rèn)發(fā)送請(qǐng)求 2、測(cè)試計(jì)劃元件元件與組件的區(qū)別
①線程組介紹(不屬于元件哦!放在一起學(xué)習(xí)而已) ② 取樣器(sample) 取樣器是性能測(cè)試中向服務(wù)器發(fā)送請(qǐng)求,記錄響應(yīng)信息,記錄響應(yīng)時(shí)間的最小單位。 jmeter支持不同取樣器(即支持不同協(xié)議的請(qǐng)求) ③ 邏輯控制器(logic controller) 包括兩類(lèi)元件:
④ 配置元件(config element) 用來(lái)提供對(duì)靜態(tài)數(shù)據(jù)的支持 ⑤ 定時(shí)器(timer) 在操作之前設(shè)置等待時(shí)間(例如取樣器與取樣器之間,設(shè)置一個(gè)等待時(shí)間) ⑥ 前置處理器(per processors) 用于實(shí)際請(qǐng)求之前對(duì)即將發(fā)出的請(qǐng)求進(jìn)行特殊處理 ⑦ 后置處理器(post processors) 用于對(duì)sampler發(fā)出請(qǐng)求后得到的服務(wù)器響應(yīng)進(jìn)行處理 ⑧ 斷言(assertions) 用于檢查測(cè)試中得到的響應(yīng)數(shù)據(jù)等是否符合預(yù)期,assertions一般用來(lái)設(shè)置檢查點(diǎn),用以保證性能測(cè)試過(guò)程中的數(shù)據(jù)交互與預(yù)期是否一致 ⑨ 監(jiān)聽(tīng)器 對(duì)測(cè)試結(jié)果進(jìn)行處理和可視化展示的一系列組件 3、元件的作用域靠測(cè)試計(jì)劃中元件樹(shù)形結(jié)構(gòu)的父子關(guān)系來(lái)確認(rèn) (1)原則:取樣器:以取樣器為核心,取樣器沒(méi)有作用域 邏輯控制器:只對(duì)子節(jié)點(diǎn)的取樣器和邏輯控制器起作用 其他元件:
(2)執(zhí)行順序同一作用域下不同元件執(zhí)行順序
同一作用域下相同元件的執(zhí)行順序
案例:執(zhí)行順序案例 定時(shí)器1 -- 請(qǐng)求1 -- 定時(shí)器1 -- 定時(shí)器2 -- 請(qǐng)求2 -- 定時(shí)器1 -- 定時(shí)器3 -- 請(qǐng)求3 解析:定時(shí)器1 的父節(jié)點(diǎn)不是取樣器,所以對(duì)父節(jié)點(diǎn)下的所有后代節(jié)點(diǎn)都起作用 4、jmeter 第一個(gè)案例需求:使用 jmeter 訪問(wèn)百度接口,并查看請(qǐng)求和響應(yīng)信息 步驟:
5、jmeter 運(yùn)行原理1、在 jmeter 中是以線程的方式運(yùn)行的
2、jmeter通過(guò)線程組來(lái)驅(qū)動(dòng)多個(gè)線程運(yùn)行測(cè)試腳本,對(duì)被測(cè)服務(wù)器發(fā)起負(fù)載,每個(gè)負(fù)載機(jī)上都可以運(yùn)行多個(gè)線程組。 jmeter運(yùn)行場(chǎng)景:
在資源有限的情況下,都是用命令行模式來(lái)執(zhí)行jmeter腳本的,而頁(yè)面模式是用來(lái)前期創(chuàng)建腳本或者調(diào)試腳本的 負(fù)載機(jī):執(zhí)行jmeter腳本的電腦 6、jmeter配置文件修改bin --> jmeter.properties -->右擊打開(kāi) (1)修改中文亂碼問(wèn)題找下面這句話(huà)(查找快捷鍵:ctrl+f)
將參數(shù)修改為
去掉這行代碼前面的#號(hào) (2)修改默認(rèn)語(yǔ)言修改保存完后,重啟 jmeter 就生效了 四、jmeter核心知識(shí)1、發(fā)送http請(qǐng)求(學(xué)習(xí) jmeter取樣器 以 http請(qǐng)求 為例) 作用:向服務(wù)器發(fā)送http/https請(qǐng)求 1)相關(guān)配置元件① HTTP管理器 http請(qǐng)求 與 配置元件配套使用 ② http消息頭管理器(http請(qǐng)求頭) 主要使用Content-Type參數(shù)(指請(qǐng)求參數(shù)的類(lèi)型) 在jmeter中,發(fā)送HTTP的post請(qǐng)求時(shí),需要添加http消息頭管理器 !漢字是??時(shí),在內(nèi)容編碼中加 utf-8 ③ http請(qǐng)求默認(rèn)值 作用:將同一線程組下所有http請(qǐng)求的協(xié)議和服務(wù)器域名統(tǒng)一管理 (如果http請(qǐng)求中自己填寫(xiě)了http協(xié)議和服務(wù)器域名,當(dāng)發(fā)送請(qǐng)求時(shí)使用本身的協(xié)議和域名) 2)http請(qǐng)求配置
請(qǐng)求地址:http://127.0.0.1:8000/api/departments/ 練習(xí):編寫(xiě) jmeter 腳本,訪問(wèn)百度 (URL=http://www.baidu.com/S 參數(shù):wd=test(form表單) )
2、jmeter 參數(shù)化***1)參數(shù)化的概念什么是參數(shù)化?
jmeter中參數(shù)的定義?
jmeter參數(shù)化常用方式?
2)CSV Data Set Config 一種從外部讀取數(shù)據(jù)功能的組件 適用范圍:需要大量測(cè)試數(shù)據(jù) 實(shí)現(xiàn)步驟:
將表格xlsx格式轉(zhuǎn)換為CSV --> CSV編碼轉(zhuǎn)為UTF-8(notepad)--> CSV數(shù)據(jù)文件設(shè)置 --> http請(qǐng)求設(shè)置 -->設(shè)置線程組線程數(shù)或循環(huán)次數(shù) 配置http請(qǐng)求(引用定義的變量名,格式:${變量名}) 3)用戶(hù)參數(shù)適用于:參數(shù)取值范圍很小 位置:前置處理器 --> 用戶(hù)參數(shù) 使用方式:
配置用戶(hù)參數(shù)
使用用戶(hù)參數(shù)
4)用戶(hù)定義的變量 適用于:定義全局變量 位置:
步驟:
5)總結(jié)參數(shù)化①csv數(shù)據(jù)文化配置(配置元件中)
②用戶(hù)參數(shù)(前置處理器中)
③用戶(hù)定義的變量(測(cè)試計(jì)劃 / 配置元件中)
3、jmeter 斷言(讓 程序自動(dòng)判斷預(yù)期結(jié)果和實(shí)際結(jié)果是否一致) 1)常用斷言
2)響應(yīng)斷言作用:對(duì)HTTP請(qǐng)求的任意格式響應(yīng)結(jié)果進(jìn)行斷言 位置:右擊http請(qǐng)求 --> 添加 --> 斷言 --> 響應(yīng)斷言 參數(shù): 案例1: 案例2:校驗(yàn)多個(gè)測(cè)試數(shù)據(jù) 3)Json 斷言適用于:HTTP響應(yīng)結(jié)果是 json 格式時(shí),可以使用 json斷言 參數(shù): 案例: 4)斷言持續(xù)時(shí)間作用:檢查http請(qǐng)求的響應(yīng)數(shù)據(jù)是否超出要求范圍 參數(shù):
案例: 4、jmeter 關(guān)聯(lián)當(dāng)請(qǐng)求之間有依賴(lài)關(guān)系,比如一個(gè)請(qǐng)求的入?yún)⑹橇硪粋€(gè)請(qǐng)求的返回?cái)?shù)據(jù),這時(shí)候就需要用到關(guān)聯(lián)。 1)jmeter 常用的關(guān)聯(lián)方法
2)正則表達(dá)式提取器位置:右擊HTTP請(qǐng)求 --> 添加 --> 后置處理器 --> 正則表達(dá)式提取器 http請(qǐng)求配置中,用 ${變量名} 引用 正則表達(dá)式提取器的引用名稱(chēng) 案例1:獲取傳智播客首頁(yè)的title,并作為參數(shù)傳遞
案例2:獲取傳智播客首頁(yè)的地址,把第5個(gè)校區(qū)地址作為參數(shù)傳遞(span為地址的校區(qū)) 方法1: (地址要先發(fā)送一次請(qǐng)求,在響應(yīng)數(shù)據(jù)中查看) 方法2: 案例3: 獲取傳智播客首頁(yè)的地址,把第5個(gè)校區(qū)地址作為參數(shù)傳遞(span為地址/后面帶一、二、三) 3)xpath 提取器作用:根據(jù)HTML格式的響應(yīng)結(jié)果數(shù)據(jù)進(jìn)行提取 參數(shù): 案例1:獲取傳智播客首頁(yè)的title,并作為參數(shù)傳遞
4)JSON提取器作用:針對(duì)JSON格式的響應(yīng)結(jié)果數(shù)據(jù)進(jìn)行提取 參數(shù): 案例:提取天氣接口中的城市信息,作為參數(shù)在訪問(wèn)百度首頁(yè)時(shí)傳遞 5)jmeter 的屬性 -- 全局變量提問(wèn):當(dāng)有關(guān)聯(lián)關(guān)系的兩個(gè)請(qǐng)求在不同線程組中,該如何進(jìn)行消息傳遞呢?(定義全局變量) ① jmeter屬性的配置函數(shù):
② jmeter屬性的執(zhí)行:
③ 案例 操作步驟:
配置setproperty函數(shù)(選項(xiàng)--函數(shù)助手對(duì)話(huà)框--生成代碼)
讓線程組串行執(zhí)行! 5、 jmeter錄制腳本1)使用badboy錄制錄制步驟:
在jmeter中打開(kāi)已有的文件
2)使用jmeter自身代理錄制移動(dòng)端① 配置jmeter
② 配置手機(jī) 設(shè)置 --> wifi --> 配置代理(然后填電腦的IP地址,端口號(hào)) 然后就可以錄制移動(dòng)端操作了! 6、jmeter連接數(shù)據(jù)庫(kù) -- 以MySQL為例需將mysql-connector-java-X.X.X-bin.jar放入到j(luò)meter安裝目錄下的./lib目錄,重啟jmeter 1)使用數(shù)據(jù)庫(kù)步驟① 創(chuàng)建測(cè)試計(jì)劃② 創(chuàng)建線程組
③ 引入數(shù)據(jù)庫(kù)驅(qū)動(dòng)jar 包④ 配置 JDBC Connectionn Configuration
⑤ 連接測(cè)試(JDBC Request)
7、邏輯控制器1)如果(if)控制器作用:用來(lái)控制它下面測(cè)試元素是否運(yùn)行 位置:右擊線程組 --> 添加 --> 邏輯控制器 --> 如果(if)控制器 參數(shù): 條件:
案例: 兩個(gè)if控制器的條件如下:(其下對(duì)應(yīng)的HTTP請(qǐng)求分別對(duì)應(yīng)www.baidu.com和www.)
2)循環(huán)控制器① 參數(shù): 案例:循環(huán)訪問(wèn)百度10次
3)ForEach 控制器作用:一般和用戶(hù)自定義變量或正則表達(dá)式提取器一起使用,讀取返回結(jié)果中一系列相關(guān)的變量 參數(shù): 案例:
操作步驟: 案例2: 8、定時(shí)器1)同步定時(shí)器阻塞線程(累計(jì)一定的請(qǐng)求),在規(guī)定的時(shí)間內(nèi)達(dá)到一定的線程數(shù)量,這些線程會(huì)在同一時(shí)間點(diǎn)一起釋放,瞬間產(chǎn)生很大的壓力。 參數(shù):
案例1:模擬100個(gè)用戶(hù)同時(shí)訪問(wèn)百度首頁(yè),統(tǒng)計(jì)各種高并發(fā)情況下運(yùn)行情況
步驟:
2)常數(shù)吞吐量定時(shí)器 constant throughput timer穩(wěn)定性測(cè)試時(shí),需要模擬用戶(hù)真實(shí)的業(yè)務(wù)場(chǎng)景。若真實(shí)業(yè)務(wù)場(chǎng)景QPS為20,如何精確模擬? 作用:讓jmeter按指定的吞吐量(QPS)執(zhí)行,以每分鐘為單位。 參數(shù):
案例:服務(wù)器的QPS要求:20QPS (20 次/s)
3)固定定時(shí)器***最常用**
案例:IHRM系統(tǒng)登錄錯(cuò)誤3次后,鎖定1分鐘,1分鐘后重新輸入正確的用戶(hù)名密碼登錄成功
打開(kāi)網(wǎng)頁(yè)控制臺(tái),操作查看數(shù)據(jù)填寫(xiě)請(qǐng)求
配置http請(qǐng)求 在http請(qǐng)求4下面添加固定定時(shí)器,并配置等待時(shí)間 執(zhí)行后為什么出現(xiàn)下面結(jié)果呢? 請(qǐng)求的格式是json ,json 格式請(qǐng)求的請(qǐng)求頭類(lèi)型是application/json 所以需要用信息頭管理器修改頭域 成功! |
|
來(lái)自: 福兮007 > 《待分類(lèi)》