前幾天講到了性能測試的入門,今日繼續來講解jmeter的使用,本文講的都是比較細,希望各位耐心的看完。
一、jmeter的安裝與打開
前提條件:給大家一個jmeter的安裝包 百度網盤的路徑如下:鏈接:https://pan.baidu.com/s/1Wu0pJHqeYv6pj67Fv3s3tw 提取碼:7r5V
安裝jdk(建議1.8) jdk-->java開發工具包 注意:一台電腦是允許安裝多個jdk的,如何確認安裝完好?cmd中,輸入java -version,即可看到1.8
jmeter是開源免費的,所以只需要把壓縮包解壓即可使用,不需要過多的安裝手續
啟動jemter,如何啟動?
會出現如下圖的東西,不要急,稍等幾秒鍾會有東西出來
進入界面,這個圖形界面叫做GUI
注意:原來的黑屏的那個小窗口,不要叉掉,切記切記
如果,你是mac電腦,也可以點擊其他的兩個文件啟動
二、jmter的使用以及目錄介紹
2.1 語言的切換
第一次解壓,打開進入jmeter,默認是英文,其實從jmeter.log的日志文檔中也可以看出來。比如,現在打開jmeter.log,第一行就看的到
那如果,你想把自己的jmeter變成中文版,怎么辦呢?有兩種辦法;看你是想僅一次顯示中文,還是想永久顯示中文。
如果你想暫時這一次顯示中文,怎么理解這句話呢?比如你此時設置成中文,關閉后,再次打開,還是顯示英文,因為系統默認的就是英文
步驟:在jmeter中選擇options--->choose language--->Chinese
如果你想永久的顯示,不管什么時候打開,都顯示中文,相當於“一考定終生”;步驟:去修改配置文件:jmeter.properties
建議在學習階段:用中文來學習,至少看的懂字
2.2 Jmeter默認保存的文件路徑在bin文件夾
比如:你剛剛弄完一個腳本,點擊保存
當然,你也可以把腳本放在其他路徑下,只不過,當你第一時間不記得自己放在哪里時,可以去bin目錄下找找,試一下能不能找的到,也許因為某個時間點,你自己就無意間自動ctrl+s了,自己保存了都不知道
2.3 jmeter的文件目錄
bin文件夾:jmeter的啟動,配置文件、以及默認保存腳本(.jmx格式)等等
docs文件夾:放的是文檔,里面有一些api,css,images等,api里面的一些接口文檔可以進行二次開發
extras文件夾:這個是在持續集成時用的上
lib文件夾:里面放一些源碼包,放一堆jar包;如果你對jmeter二次開發生成的jar包,就要放在這個lib路徑下,如果你用的是第三方包,就要放在lib--->ext文件夾下
printable_docs文件夾:文檔文件,放的是jmeter的幫助文檔,但是這與官網的幫助文檔不一樣,有差別;
本地的這份從文件夾里面打開的幫助文檔,是離線文檔,僅適合當前版本;
在GUi界面中打開的幫助手冊,那是官方文檔,是最新的文檔,有可能會與當前版本不一致,個別功能存在差異
2.4 jmeter的使用
一個完整的jmeter腳本,一般會包含 線程組+取樣器+監聽器
取樣器:根據不同的接口協議,有不同的取樣器
監聽器:展示取樣結果 不同的監聽器從不同的角度展示取樣結果
配置元件的優先級最高,是最先被執行的,此時我添加一個配置元件
那么執行順序就是:
接下來,演示前程貸項目的注冊接口,先打個樣;前提條件:先拿到接口文檔,知道接口的路徑;填入參數和服務器等信息
啟動:
保存:
注意:Ping 不通不代表網絡不通,Ping 的通也不代表網絡通;所以,我們一般用telnet指令,因為有的服務器是禁ping的
三、注意事項
3.1 服務器IP的填寫
也可以填寫域名,www.baidu.com
絕對不能寫斜杠:www.baidu.com/ 此種寫法錯誤 也不能寫前綴:http:www.baidu.com
http協議默認端口80 80端口可以不寫的,比如我剛剛在請求百度時,就沒寫
那么我們慢慢來看,之前請求的一個注冊接口
查看結果樹,顯示注冊成功,但,在寫服務器ip時
為什么呢?這個服務器IP相當於一個地址,端口號相當於一個門牌號,路徑就是具體根據線路找到某個房間。但是,你如果在路徑框里還寫服務器IP,那么就好比你已經進入了大門,本來馬上要找對應的房間,結果又重新搜索哪個社區,哪個單元,有的繞路了
3.2 編碼 utf-8
在http請求中- - -》內容編碼只對請求體(request body)有效,對response body(響應體)無效
那么,請求百度網站,響應的亂碼怎么來的呢?
因為jmeter的所有展示信息頁面的編碼,默認都是根據系統編碼來的;現在windows系統的編碼默認為gbk編碼。不一樣,所以要修改
如何修改呢?去配置文件jmeter.properties文件中修改,修改完后,把jmeter關閉再重啟即可看到
注意:Jmeter的配置文件被修改,需要重啟jmeter才能生效
問:以后所有的都改為utf-8的編碼格式嗎?
答:不一定要都改成utf-8,這個需要看返回的數據的要求格式是什么,有的是utf-8,有的是GBK,有的是gb2312,有的是BIG5;所以也不絕對
3.3 編碼怎么用
當請求格式為參數時,請求的參數值中有 中文或者特殊符號時, 請求一定勾選“編碼”,如果不勾選,要么直接報錯,要么數據中的該字段顯示亂碼
另外,還有個建議:無論什么時候,這個編碼最好都要勾選上,防止出錯
3.4 消息頭管理器中的Content-Type
charset是只能作用請求部分
四、錄制腳本
1、怎么來錄制腳本
http代理服務器錄制腳本
1.新建線程組
2.添加http代理服務器 非測試元件
3.http代理服務器修改,端口、目標控制器、請求過濾器
點擊啟動,為什么報錯?沒有修改目標控制器
修改之后,再次啟動,會出現正確信息
這個出現的小彈窗,不用管,也不要叉掉,這個你要是叉掉了,那在網頁中點擊錄制腳本,就無效
因此,修改端口:8899;修改目標控制器 線程組2 ;再修改請求過濾器,添加建議排除
打開電腦本地的代理
保存之后,在瀏覽器中訪問:www.lenmoban.com(任意一個網址都行,我這里只是隨便舉個例子)
就錄制好了腳本
其實,jmeter初步使用起來,比較簡單,流程均差不多;因此,我們可以總結一下jmeter工具使用的大致步驟:
1.添加線程組、取樣器、監聽器
2、取樣器一般有http請求:填入服務器IP、端口號、請求方式、路徑、傳參(注意:編碼小方框里均打勾勾選上)、消息頭管理器填入Content-Type類型
3、查看結果樹,查看響應數據,如果有亂碼,就去配置文件改成相對應的編碼方式
前提條件:你已經在windows上裝好了jmeter,且jdk版本是1.8;
你已經拿到了接口文檔,知道路徑和要傳的參數;
如果沒有詳細的接口文檔,那就去抓包,抓包方式有幾下幾種:瀏覽器F12,Fiddler,wireshark 等等;
再不行,直接找開發人員要
而通過jmeter錄制腳本,靠的是代理服務器,有的測試人員想偷懶或者要請求的接口實在太多,才用這種錄制的方式,一般都是前一種自己手動添加,為什么?
因為,你輸入一個URL,錄制到jmeter工具中,發現線程組中,其實很多的其他的都要刪掉,真正你需要用到的,就那么幾個,所以有的時候還不如自己手動添加