91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用JMeter怎么實現數據庫查詢操作

發布時間:2021-06-16 13:50:42 來源:億速云 閱讀:271 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關使用JMeter怎么實現數據庫查詢操作,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1、使用“用戶自定義變量”實現參數化

即:在SQL Query使用參數化變量。

在JMeter中,有兩個地方可以設置“用戶自定義變量”。

一種是“測試計劃”界面中設置“用戶自定義變量”。

一種是添加配置元件中的“用戶自定義變量”。

我們以“測試計劃”為例。如下圖:

(1)在“測試計劃”界面中設置“用戶自定義變量”。

我們添加了一個自定義變量用戶ID,如下圖:

使用JMeter怎么實現數據庫查詢操作

(2)在JDBC Request界面的SQL Query中,使用${變量名}的方式進行引用。

  1. 我們在Varíable Name填寫對應的數據庫配置名稱,與JDBC Connection Configuration組件中的Varíable Name對應。

  2. Query Type:選擇Select Statement,因為我們只進行一條查詢的SQL語句。

  3. 編寫SQL語句,并使用${變量名}方式引用參數化變量。

如下圖所示:

使用JMeter怎么實現數據庫查詢操作

2、 在SQL Query中使用占位符傳遞參數

傳遞的參數值有常量和變量之分。

(1)傳遞的參數值是常量

傳遞2個常量:用戶ID=3,用戶名=孫悟空。

需要注意:

  1. 如果我們需要發送帶有占位符的SQL語句,Query Type:需要選擇Prepared Select Statement

  2. Parameter values參數值和Parameter types參數類型,都必須要填寫(參數類型與表設計結構中的類型一致即可)。如果有多個占位符,就需要有多組數據,之間用逗號分隔。

  3. 發送SQL請求時,第一個參數會自動賦值給第一個占位符,以此類推,注意參數的編寫順序。

如下圖所示:

使用JMeter怎么實現數據庫查詢操作

(2)傳遞的參數值是變量

也就是占位符所接收的參數是一個參數化變量。我們把對應常量的位置,變成參數化變量即可,其他同上。

如下圖所示:

使用JMeter怎么實現數據庫查詢操作

各種形式的參數化可以這樣使用。關于參數化相關知識,前面文章有詳細說明。

3、Variables names參數的使用方法

Variables names參數的作用是,把SQL語句查詢出來的數據保存到變量中。一般查詢返回幾個字段,就用幾個變量來進行接收,不同的變量之間用逗號隔開。

JMeter官網給的解釋是:如果給這個參數設置了值,它會保存SQL語句返回的數據和返回數據的總行數。

假如,SQL語句返回2行,3列的數據,且Variables names中設置為A,B,C,那么如下變量會被設置為:

A_#=2     # A列的總行數
A_1=3     # A列的第一個數據,也就是第1列, 第1行的數據
A_2=4     # A列的第二個數據,也就是第1列, 第2行的數據
B_#=2     # B列的總行數
B_1=sunwukong@1268.com    # B列的第一個數據,也就是第2列, 第1行的數據
B_2=zhubajie@1268.com     # B列的第二個數據,也就是第2列, 第2行的數據
C_#=2     # C列的總行數
C_1=孫悟空    # C列的第一個數據,也就是第3列, 第1行的數據
C_2=豬八戒    # C列的第二個數據,也就是第3列, 第2行的數據

說明:

如果返回結果為0,那么A_#C_#會被設置為0,其它變量不會設置值。

如果第一次請求返回6行數據,第二次請求只返回3行數據,那么第一次那多的3行數據,在線程變量中會被清除。

可以使用${A_#}${A_1}來獲取相應的值,作為參數化數據進行傳遞。

可以添加Debug Sampler組件,來查看參數是否獲取到了。

示例:

(1)JDBC Request組件界面內容

Variable names中定義接收數據的變量名,多個變量名之間用逗號分隔。

如下圖所示:

使用JMeter怎么實現數據庫查詢操作

(2)查看結果

添加一個取樣器Debug Sampler用來查看輸出的結果。(Debug Sampler組件可以查看到JMeter腳本運行中所有的變量)

JDBC Request請求結果,如下圖所示:

使用JMeter怎么實現數據庫查詢操作

查看Debug Sampler中的輸出結果,如下圖所示:

使用JMeter怎么實現數據庫查詢操作

我們從上圖中可以看到,JMeter把從數據庫中查詢出來的數據,存儲在線程變量中了。

提示:

A代表第一列所有的數據,A_#可以獲取到第一列的行數。A_n可以獲得第一列第n行的數據。BC的功能類似, 假如我們只需要第一列和第三列的數據,可以寫成A,,C,中間的,不可以省略。

4、Result variable name參數使用方法

如果給這個參數設置值,它會創建一個對象變量,保存所有返回的結果。

示例:

(1)JDBC Request組件界面內容

Result variable name中定義接收數據的變量名。

如下圖所示:

使用JMeter怎么實現數據庫查詢操作

(2)查看結果

添加一個取樣器Debug Sampler用來查看輸出的結果。(Debug Sampler組件可以查看到JMeter腳本運行中所有的變量)

JDBC Request請求結果,如下圖所示:

使用JMeter怎么實現數據庫查詢操作

查看Debug Sampler中的輸出結果,如下圖所示:

使用JMeter怎么實現數據庫查詢操作

(3)數據處理

上面查看到的結果集,我們如何應用里面的數據呢?

我們可以創建一個BeanShell取樣器,也可以在JDBC Request取樣器下一級添加后置處理器BeanShell PostProcessor組件。

在里邊編寫如下代碼,來獲取需要的指定數據,提供給后面的接口請求使用。

使用JMeter怎么實現數據庫查詢操作

對象中具體數據的獲取方法:columnValue = vars.getObject("resultObject").get(0).get("Column Name")

5、總結:

以上我們就把Parameter valuesParameter typesVariable namesResult variable name的使用方式進行了說明。

在日常工作中,可以舉一反三,靈活使用。

6、注意事項:

(1)The server time zone value服務器時區異常

如果報錯,如下:

Cannot create PoolableConnectionFactory (The server time zone value '?????????????????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.)

解決方法:數據庫連接URL后面加 serverTimezone=GMTserverTimezone=GMT%2B8,即可解決。

(2)執行多條SQL語句

執行多條SQL語句時,查詢語句selectupdateinsert語句不能在同一個JDBC Request組件中執行。

當執行多條SQL 語句時,每條語句后面加;

并且在 Database URL 后增加一個參數allowMultiQueries=true,否則將不能夠執行多條語句,報錯。

(3)更新操作中文亂碼

需要在 Database URL 后增加一個參數characterEncoding=utf-8,這樣就可以解決更新操作時候的中文亂碼了。

提示:一定要設置為UTF-8編碼嗎?不一定,要跟你的數據庫的編碼保持一致,就不會中文亂碼了。

(4)Datebase URL添加參數規則

Datebase URL后增加參數,在dbname后加?,如有多個參數,每個參數用&隔開,如:

jdbc:mysql://127.0.0.1:3306/guest?serverTimezone=GMT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true

以上就是使用JMeter怎么實現數據庫查詢操作,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汉阴县| 沙雅县| 永济市| 嘉黎县| 城步| 栾川县| 绥江县| 霍州市| 建平县| 通渭县| 三明市| 怀柔区| 钟祥市| 拜城县| 山东| 定边县| 内黄县| 张掖市| 如皋市| 荃湾区| 庄浪县| 西城区| 高台县| 洛扎县| 资中县| 彭山县| 淮南市| 建昌县| 望都县| 景洪市| 博罗县| 海宁市| 沽源县| 宜丰县| 西和县| 梁河县| 宜黄县| 新源县| 杭州市| 西昌市| 曲周县|