婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > JMeter對數(shù)據(jù)庫的查詢操作步驟詳解

JMeter對數(shù)據(jù)庫的查詢操作步驟詳解

熱門標(biāo)簽:隨州營銷電話機(jī)器人怎么樣 hbuilder地圖標(biāo)注 400電話從哪里申請濱州 杭州400電話如何申請的 江西南昌百應(yīng)電話機(jī)器人 400電話申請?jiān)趺纯?/a> 高德地圖標(biāo)注商家在哪 天音通信電話機(jī)器人 機(jī)器人電話機(jī)創(chuàng)意繪畫

提示:

關(guān)于JMeter如何連接MySQL數(shù)據(jù)庫,前面文章已經(jīng)詳解的講解過了。因?yàn)榕渲脭?shù)據(jù)庫連接是比較固定的步驟,這里就不重復(fù)講解了。

本篇文章主要詳細(xì)說明,使用JDBC Request組件,如何對數(shù)據(jù)庫進(jìn)行查詢的各種操作。

JMeter中查詢語句的操作步驟:

  • 添加測試計(jì)劃。
  • 添加線程組,設(shè)置線程組的次數(shù)。
  • 添加JDBC Connection Configuration組件,配置數(shù)據(jù)庫連接。
  • 添加JDBC Request請求,編寫SQL語句,使用參數(shù)化。運(yùn)行腳本,發(fā)送SQL請求。
  • 添加察看結(jié)果樹,查看結(jié)果。

1、使用“用戶自定義變量”實(shí)現(xiàn)參數(shù)化

即:在SQL Query使用參數(shù)化變量。

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

一種是“測試計(jì)劃”界面中設(shè)置“用戶自定義變量”。

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

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

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

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

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

  1. 我們在Varíable Name填寫對應(yīng)的數(shù)據(jù)庫配置名稱,與JDBC Connection Configuration組件中的Varíable Name對應(yīng)。
  2. Query Type:選擇Select Statement,因?yàn)槲覀冎贿M(jìn)行一條查詢的SQL語句。
  3. 編寫SQL語句,并使用${變量名}方式引用參數(shù)化變量。

如下圖所示:

2、 在SQL Query中使用占位符傳遞參數(shù)

傳遞的參數(shù)值有常量和變量之分。

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

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

需要注意:

  1. 如果我們需要發(fā)送帶有占位符的SQL語句,Query Type:需要選擇Prepared Select Statement
  2. Parameter values參數(shù)值和Parameter types參數(shù)類型,都必須要填寫(參數(shù)類型與表設(shè)計(jì)結(jié)構(gòu)中的類型一致即可)。如果有多個占位符,就需要有多組數(shù)據(jù),之間用逗號分隔。
  3. 發(fā)送SQL請求時,第一個參數(shù)會自動賦值給第一個占位符,以此類推,注意參數(shù)的編寫順序。

如下圖所示:

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

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

如下圖所示:

各種形式的參數(shù)化可以這樣使用。關(guān)于參數(shù)化相關(guān)知識,前面文章有詳細(xì)說明。

3、Variables names參數(shù)的使用方法

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

JMeter官網(wǎng)給的解釋是:如果給這個參數(shù)設(shè)置了值,它會保存SQL語句返回的數(shù)據(jù)和返回?cái)?shù)據(jù)的總行數(shù)。

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

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

說明:

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

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

可以使用${A_#}${A_1}來獲取相應(yīng)的值,作為參數(shù)化數(shù)據(jù)進(jìn)行傳遞。

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

示例:

(1)JDBC Request組件界面內(nèi)容

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

如下圖所示:

(2)查看結(jié)果

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

JDBC Request請求結(jié)果,如下圖所示:

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

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

提示:

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

4、Result variable name參數(shù)使用方法

如果給這個參數(shù)設(shè)置值,它會創(chuàng)建一個對象變量,保存所有返回的結(jié)果。

示例:

(1)JDBC Request組件界面內(nèi)容

Result variable name中定義接收數(shù)據(jù)的變量名。

如下圖所示:

(2)查看結(jié)果

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

JDBC Request請求結(jié)果,如下圖所示:

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

(3)數(shù)據(jù)處理

上面查看到的結(jié)果集,我們?nèi)绾螒?yīng)用里面的數(shù)據(jù)呢?

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

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

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

5、總結(jié):

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

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

6、注意事項(xiàng):

(1)The server time zone value服務(wù)器時區(qū)異常

如果報錯,如下:

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.)

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

(2)執(zhí)行多條SQL語句

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

當(dāng)執(zhí)行多條SQL 語句時,每條語句后面加;

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

(3)更新操作中文亂碼

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

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

(4)Datebase URL添加參數(shù)規(guī)則

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

jdbc:mysql://127.0.0.1:3306/guest?serverTimezone=GMTuseUnicode=truecharacterEncoding=utf-8allowMultiQueries=true

參考:https://www.cnblogs.com/linbo3168/p/6039489.html

以上就是JMeter對數(shù)據(jù)庫的查詢操作 的詳細(xì)內(nèi)容,更多關(guān)于JMeter數(shù)據(jù)庫操作 的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python軟件測試Jmeter性能測試JDBC Request(結(jié)合數(shù)據(jù)庫)的使用詳解
  • Jmeter基于JDBC請求實(shí)現(xiàn)MySQL數(shù)據(jù)庫測試
  • Jmeter連接Mysql數(shù)據(jù)庫實(shí)現(xiàn)過程詳解
  • Jmeter連接數(shù)據(jù)庫過程圖解

標(biāo)簽:昆明 保定 鶴崗 常德 石嘴山 沈陽 葫蘆島 招商

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JMeter對數(shù)據(jù)庫的查詢操作步驟詳解》,本文關(guān)鍵詞  JMeter,對,數(shù)據(jù)庫,的,查詢,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JMeter對數(shù)據(jù)庫的查詢操作步驟詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于JMeter對數(shù)據(jù)庫的查詢操作步驟詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 新乡市| 青浦区| 娱乐| 岢岚县| 丹阳市| 南涧| 博湖县| 晋城| 泰州市| 万盛区| 宽甸| 安仁县| 宜兰市| 北辰区| 蒙自县| 江津市| 丹寨县| 平度市| 确山县| 江华| 左贡县| 榆中县| 杂多县| 灵寿县| 梧州市| 邵武市| 镇江市| 古丈县| 霸州市| 顺昌县| 肇庆市| 朝阳区| 武宣县| 宕昌县| 和龙市| 永顺县| 富顺县| 武穴市| 六枝特区| 正宁县| 卫辉市|