目錄
性能測試工具
性能測試工具
jemeter環境搭建
jmeter的常用目錄介紹
jmeter修改語言和主題--jmeter界面的漢化
jmeter元件?
jmeter元件和組件的介紹
jmeter的作用域原則
jmeter的執行順序
案例:執行順序
jmeter使用案例
jmeter線程組的介紹
jmeter線程組的參數介紹
http取樣器參數詳解
jemter參數化
參數化的介紹
用戶定義的變量
用戶參數
CSV數據文件設置
counter函數
現在有兩款主流的性能測試工具
性能測試工具
性能測試工具
loadrunner存在我們需要的各種數據指標
loadrunner和jmeter是兩款主流的性能測試工具? loadrunner支持的協議比較多 這個工具是使用c編寫的 可以讓每次發出去的請求都使用不同的ip發出去
缺點就是比較貴 限制使用用戶和使用協議 需要支付一定的費用?
在現在很大的企業是會使用的 安裝包就比較大 小公司是不會使用的
jemeter是使用千為單位的?
jemeter的所有的功能在loadrunner上都能找到原型? 界面是不一樣的 是比較開源的? ?支持的比較多 免費 內存較小?
具有較多的功能組件? 不存在ip欺騙?
性能測試的目的:評估當前系統能力 定位系統的性能瓶頸,優化性能 預估對未來的業務的支持情況
jemeter環境搭建
jmeter是Java寫的,所有用Java寫的必須安裝jdk,只有這樣才可以運行
安裝目錄不能出現空格和中文
jmeter的版本要和jdk的版本是匹配的
.bat后綴是Windows下的正常的執行程序 另一種是exe文件
jmeter的常用目錄介紹
bin目錄:存放可執行文件和配置文件
docs:提供二次開發的文檔? 用于開發擴展組件 因為jmeter本身就是開源
lib里面存放的就是第三方庫? lib中的ext存放的是第三方jar包
jmeter修改語言和主題--jmeter界面的漢化
修改語言:
但是這個并不是永久性的,永久性的要在bin目錄中修改配置文件
打開軟件:
cmd中直接輸入jmeter就可以直接打開
bin目錄中有一個啟動文件:也可以在這里直接打開
使用配置文件進行修改
修改的時候,去掉注釋 然后修改語言
jmeter元件?
jmeter元件和組件的介紹
?元件:一個一個的類 右鍵添加線程組
線程組就相當于用戶? 線程組就是用戶的意思? 因為腳本是用戶的意思
右擊取樣器--用來發送請求 這個就相當于是request
邏輯控制器--控制語句的執行順序 if else for
前置處理器--對請求參數進行預處理? ? ? ? ? ?后置處理器就是對響應結果進行處理
斷言:檢查接口返回的結果與預期結果是否一致
sleep就是等待
監聽器就是查看日志?
元件就是容器的集合 組件就是方法? jdbc就是連接數據庫的請求??
jmeter的作用域原則
作用域就是作用范圍
jmeter的執行順序
不同元件的執行順序按照腳本的寫作順序來執行
寫腳本的第一步就是初始化數據--??
同一作用域下的執行順序是按照作用來排序
定時器永遠都在取樣器的前面? 監聽器用來看結果
若是在同一個作用域下有多個相同類型的元件:按照從上往下的順序進行
案例:執行順序
分析下面的執行順序:
其中的定時器1每次都要執行一次? 當父節點不是取樣器的時候,對父節點下的所有子節點都要起作用
最先執行的是定時器1--http請求1--定時器1--定時器2--http請求2--定時器1--定時器3--http請求3
jmeter使用案例
jmeter線程組的介紹
當用戶量很大的時候就可以做性能測試了
特點:可以模擬多人操作 多個線程組可以一起來運行? 一個用例就是一個線程組? 一個線程組作為一個測試腳本??
測試腳本可以串行和并行 取樣器和邏輯控制器必須依賴線程組才能使用
分類:前置處理setup和后置處理
百度京東淘寶屬于是并行 qq和搜狐分別位于首尾
setup:前置處理以及初始化的操作
線程數就是虛擬用戶數
線程組就是模擬用戶 支持多用戶操作? 多個線程組之間可以串行執行,也可以并行執行
jmeter線程組的參數介紹
為了更好的模擬用戶的使用情況? 可以虛擬用戶啟動所需要的時間
線程數就是用戶數?
循環次數為永遠就是一直在運行
下面的要想生效 就必須勾選調度器? 設置等待時間
模擬十個用戶并行執行: 5s內啟動完成
jmeter是以毫秒為單位的
性能測試就是大量的數據請求
負載測試就是一組一組往上加
性能就是研究大量的數據請求
壓力測試 負載測試測試的時間長差不多兩個小時 穩定性測試12h
http取樣器參數詳解
get在path路徑中進行傳輸 也可以在參數列表當中,以鍵值對的方式進行傳輸
post只能添加form類型的
響應結果顯示亂碼:修改配置文件:bin目錄下
jemter參數化
參數化的介紹
參數化:使用參數的方式來替代腳本中的固定的測試數據
參數化的形式:實現方式:參數替代腳本---文件定義的方式?數據庫的方式參數化
代碼:定義變量--參數化? 函數傳參--參數化
文件定義:實際使用不多 注冊登錄 添加 測試數據都是固定的情況下?
定義變量多
數據庫的方式和函數的方式比較多 適合業務需要
參數化!=文件定義
用戶定義的變量
用戶定義的變量作為全局參數使用? 只要是定義的都是全局變量,不作為局部變量所使用
第一步先添加線程組,所有的腳本都加在線程組下面
第二部添加用戶定義的變量
以英文作為變量
添加http請求,應用變量名 和postman很像:一個大括號,前面加一個$
最后查看結果樹
因為協議是默認的,所以就是默認的
上面這個就是用來定義全局變量的!!!只要是全局的時候就可以使用了
用戶參數
這里多加了一個用戶參數!:::
可以添加變量和用戶,左邊是變量,右邊是用戶
因為只有張三和李四,所以線程組是2 線程數就設置為2
路徑加上/S就不會有重定向
將線程組置為2,查看結果樹中直接查看響應結果,有2個http請求,分別是張三和李四
CSV數據文件設置
添加CSV文件設置:
配置文件名:CSV文件
編碼格式統一
變量名稱:需要讀取,存在臨時變量
是否忽略首行:第一行是名字寫在上面 不是就false:不忽略
以XXX方式進行分割
練習:
添加線程組,次數是3 添加3次循環
添加CSV數據文件設置
counter函數
?當CSV文件當中的數據比較大的時候,十萬及以上數據,jemeter就崩了
所以當數據較多,函數就會起到很大的效果
counter函數,保證每次取得的數據是不一樣的
函數:可以執行統計的次數??
true就是分開計數