Jmeter全方面講解——Jmeter的元件使用介紹:(六)取樣器詳解


Jmeter的取樣器有:Http請求、JDBC請求、Beanshell取樣器、調試取樣器、JSR223取樣器、FTP請求、GraphQL HTTP請求、TCP請求、Java請求等,本文主要介紹Http請求、JDBC請求、Beanshell取樣器、調試取樣器

一:Http請求
介紹下Http請求元件的各項信息
1、協議:可以省略不填,省略默認是http協議,端口號默認80,如果協議填的的https,則端口號默認是443
2、自動重定向:當發送HTTP請求后得到的響應是3XX狀態碼時,JMeter會自動重定向到新的頁面,但不記錄重定向的過程內容
3、跟隨重定向:當響應是3XX狀態碼時,會記錄重定向過程中的所有請求響應信息,在查看結果樹中可以看到重定向過程中的所有請求,一般我們需要獲取所有請求給與我們一些判斷依據,所以此項一般都需要勾選。
4、keepalive:一種長連接通信方式,即發出多次請求時,不會頻繁的建立連接和斷開連接,勾選后,會在請求頭帶有:Connection:keep-alive的信息,通過此選項可以大大節約了3次握手協議所需的時間。
5、對post使用multipart/form-data:發送post請求時,使用multipart/from-data或者application/x-www-form-urlencoded方法發送。

此取樣器一般保持默認使用即可。

二:JDBC請求
該請求主要用於對數據庫進行增刪改查操作的。在使用該請求前,需要添加JDBC配置文件並且填寫好信息,配置操作見前面的博客:https://www.cnblogs.com/lrc123/p/15678051.html

講解前准備工作:
(1)在自己電腦安裝好mysql數據庫,或者有公司項目的鏈接數據庫信息。
(2)准備下測試數據表:
本文測試用的數據表建表語句如下:
CREATE TABLE myindex( idint NOT NULL AUTO_INCREMENT, test varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, PRIMARY KEY (id), KEY index_test (test) ) ENGINE=InnoDB AUTO_INCREMENT=115 DEFAULT CHARSET=utf8;

表信息:
image

下面JDBC請求取樣器的頁面信息
image
1、Variable Name of Pool declared in JDBC Connection Configuration:該選項填寫的是JDBC配置元件中填寫的連接池(pool)名稱
2、QueryType:主要介紹以下幾種
(1)Select Statement:該選項是一條查詢語句,只能支持單條查詢
(2)Update Statement:該選項是一條增/刪/改語句,只能支持單條語句
(3)Callable Statement:該選項是可以執行多條語句的,增刪改查語句都支持
(4)Prepared Select Statement:以參數化的形式執行查詢語句。
(5)Prepared Update Statement:以參數化的形式執行增/刪/改語句
3、Parameter values:SQL語句中引用的參數值
4、Parameter types:參數引用的數據類型,如以下幾種類型:整型(INTEGER)、日期型(DATE)、字符串型(VARCHAR)、浮點型(DOUBLE)
5、Variable names:將查詢結果應用到Jmeter變量中
6、Result variable name:將查詢結果組合成數組形式
7、Query timeout:設置超時時間,0或者不填表示無限時間
8、Limit ResultSet:限制SQL語句返回結果集的行數,如果SQL語句也有Limit,最終會以此處設置的數量返回結果集數量
9、Handle ResultSet:定義由哪種類型處理callable statement 返回的結果

案例:
本文的JDBC配置信息如下:
image

案例1:使用Select Statement 查詢單條SQL語句,並將查詢結果保存到Jmeter變量中:
image
通過添加【調試取樣器】,可以觀察到查詢結果成功保存到Jmeter變量中:
image

案例2:通過Update Statement執行單條增/刪/該SQL語句。
image

此處我通過Update Statement去修改數據值:
image

執行結果:
image

image

案例三:通過Prepared Select Statement以參數化的形式查詢SQL,查詢到結果后,保存到Jmeter變量中

image

執行結果:
image

image

案例四:Callable Statement執行多條SQL語句
image

注意執行結果:可能會報錯,如下圖:
image

在數據庫連接池中添加完allowMultiQueries=true后再執行請求:
image

image

三:調試取樣器(DEBUG Sampler)
該取樣器主要用於調試腳本信息,添加后可以通過此取樣器查看Jmeter保存的信息。
image
1、Jmeter屬性:如果選擇TRUE,則會展示Jmeter.properties文件中所有設置的屬性,如果選擇false就不會展示。
2、Jmeter變量:如果選擇TRUE,則會展示Jmeter當前運行腳本的變量。
3、系統屬性:如果選擇TRUE,則會展示本機系統變量【PATH】中所設置的屬性。

案例1:通過調試取樣器查看Jmeter屬性
image

image

案例2:通過調試取樣器查看當前腳本中Jmeter含有的變量信息,腳本編寫中,通常都是只需要看Jmeter變量信息。
image

image

案例3:通過調試取樣器查看當前系統變量即 【PATH】里變量
image

image

四:Beanshell 取樣器
Beanshell 取樣器的用法十分靈活,與前面介紹過的Beanshell前置處理器類似,可以隨意添加自己想要的自定義方法然后發起調用。在Beanshell前置處理器中編寫的腳本,可以在Beanshell取樣器中完全兼容。
Beanshell前置處理器的使用介紹:
https://www.cnblogs.com/lrc123/p/15678062.html
區別在於:Beanshell前置處理器在查看結果樹時沒有結果展示,而Beanshell取樣器在查看結果樹時會有結果展示。

這里舉個Beanshell取樣器實例:
通過Beanshell取樣器,編寫一個方法,將Jmeter的變量進行拼接。
image
附上代碼:

點擊查看代碼 vars.put("name","筱筱創");//往Jmeter變量中放入數據 //編寫個字符串拼接方法 public static String test(String input){ return input+"aaaa"; //返回傳入參數拼接“aaaa”的字符串 }

//下面調用上述的test方法
String test_name=test(vars.get("name"));
log.info("拼接后的字符串為:"+test_name);

//定義該取樣器結果的展示
ResponseCode=200;
ResponseMessage="字符串拼接成功";

執行結果:
image

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM