Jmeter從數(shù)據(jù)為查找結(jié)果集數(shù)據(jù)方法隨筆
一、Jmeter連接數(shù)據(jù)庫
1.下載對應(yīng)數(shù)據(jù)庫的驅(qū)動(dòng)包到j(luò)meter安裝目錄的lib下ext文件中,并導(dǎo)入到j(luò)meter的測試計(jì)劃中,本實(shí)例中使用的是mysql如下所示:
點(diǎn)擊測試計(jì)劃–>點(diǎn)擊瀏覽–>選中mysql驅(qū)動(dòng)jar包–>打開

2.添加線程組,并在線程組下新建一個(gè)JDBC Connection Configuration配置元件,詳細(xì)配置如下:

其中, Variable Name:testdb 定義變量名稱,作用:說明哪個(gè)JDBC Request需要引用此配置,jdbc請求時(shí)需要用到此變量,變量值自定義保持一致即可;
Database Connection Configutration配置要訪問的數(shù)據(jù)庫信息
Database URL:數(shù)據(jù)庫連接的信息
JDBC Driver class:com.mysql.jdbc.Driver 數(shù)據(jù)庫的連接驅(qū)動(dòng)名稱
Username:數(shù)據(jù)庫的用戶名
Password:數(shù)據(jù)庫的密碼
此時(shí)可能會存在連接不上,我這邊碰到如下情況,檢查:
:連接本機(jī)的mysql時(shí),本機(jī) mysql版本:5.0后面通過更新連接mysql驅(qū)動(dòng)包解決

3.新建一個(gè)JDBC請求,測試連接數(shù)據(jù)庫,詳細(xì)步驟如下:
Variable Name:輸入需要引用的JDBC配置(當(dāng)前輸入的數(shù)值與JDBCConnection Configuration相同的名稱),兩者的變量名稱是需要一致的 ,就代表引用哪一個(gè)數(shù)據(jù)庫連接Query Type:輸入查詢的類型(默認(rèn)選擇Select Statement,即只執(zhí)行第一條select語句)
Restult Variable name:將所查詢的結(jié)果放到此結(jié)果集中(result)
4.添加BeanShell PostProcessor并從中取出結(jié)果集
取出結(jié)果集中的數(shù)據(jù):
columnValue =vars.getObject(“resultObject”).get(0).get(“Column Name”);
vars.getObject(“resultObject”):代表從哪個(gè)結(jié)果集中取數(shù)據(jù)
get(0):取第幾行
get(“ColumnName”):取哪一列(哪一列即為JDBCRequest查詢結(jié)果中的字段名)
備注:
1)columnValue= vars.getObject(“resultObject”).get(0).get(“Column Name”),返回的類型是Object類型。
2)需要將Object類型轉(zhuǎn)換成String類型(取出對象的名稱.toString())。
例如:columnValueResule.toString()),其中columnValueResule是取出的對象名稱
3)取出來的變量放到j(luò)meter中,用此方法:vars.put(“key”,Value)。
例如:vars.put(“xxxx”,DBclassname.toString());如果要引用此查詢語句的結(jié)果,只需要引用key值就可以
二、Jmeter對Json格式數(shù)據(jù)的兩種種處理方式
示例,若從如下json數(shù)據(jù)中取token的值:

1.使用正則表達(dá)式提取請求響應(yīng)中的值
添加Jmeter正則表達(dá)式提取器
添加—>后置處理器—>正則表達(dá)式提取器

2)Jmeter正則表達(dá)式提取器控制面板

其中:
引用名稱:定義變量名稱,后續(xù)請求將要引用到的變量名,如填寫的是:token,后面的引用方式是${ token}
正則表達(dá)式:提取內(nèi)容的正則表達(dá)式,相當(dāng)于lr中的關(guān)聯(lián)函數(shù)
() 括起來的部分就是需要提取的,對于你要提的內(nèi)容需要用小括號括起來
. 點(diǎn)號表示匹配任何字符串
一次或多次
? 在找到第一個(gè)匹配項(xiàng)后停止
模板:用$$引用起來,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式(多個(gè)括號括起來的),則可以是2 22,3 33等,表示解析到的第幾個(gè)值給login_name。例如:1 11表示匹配到的第一個(gè)值

缺省值:正則匹配失敗時(shí),取的值
使用 JMeter 的插件JSONPath 來獲取 JSON 數(shù)據(jù)中字段的數(shù)據(jù)
1)添加—>后置處理器-JSON Extractor

2)使用方法
Variable names : 變量名稱
JSONPath Expression:JSON表達(dá)式
Match Numbers:匹配哪個(gè),可為空即默認(rèn)第一個(gè)
Default Value:未取到值的時(shí)候默認(rèn)值
注:在查看結(jié)果樹中通過JSON Path Tester來調(diào)試json path

備注:jmeter中通過vars.get(“token”)來讀取;
?最后: 下方這份完整的軟件測試視頻學(xué)習(xí)教程已經(jīng)整理上傳完成,朋友們?nèi)绻枰梢宰孕忻赓M(fèi)領(lǐng)取【保證100%免費(fèi)】

這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個(gè)倉庫也陪伴上萬個(gè)測試工程師們走過最艱難的路程,希望也能幫助到你!
你可以在公眾號:傷心的辣條 ! 自行領(lǐng)取一份216頁軟件測試工程師面試寶典文檔資料【免費(fèi)的】。以及相對應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!,其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動(dòng)化測試、APP自動(dòng)化測試、接口自動(dòng)化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。
現(xiàn)在我邀請你進(jìn)入我們的軟件測試學(xué)習(xí)交流群:【746506216】,備注“入群”, 大家可以一起探討交流軟件測試,共同學(xué)習(xí)軟件測試技術(shù)、面試等軟件測試方方面面,還會有免費(fèi)直播課,收獲更多測試技巧,我們一起進(jìn)階Python自動(dòng)化測試/測試開發(fā),走向高薪之路。??