注意:怎么用JMeter操作MySQL數據庫?看完秒懂!

近期用JMeter做接口測試,遇到了一個需要用到數據數據庫的場景:一個關于數據報告的頁面,需要將數據庫里面的數據求和或者取均值之后,展示出來。

如果要斷言的話,需要連接數據庫,通過寫sql語句,將sql查詢結果與頁面的結果進行對比。

以MySQL數據庫為例,具體實現的步驟如下:

一、加載JDBC驅動二、連接數據庫三、數據庫的查詢(單值/多值引用)

一、加載JDBC驅動

一)本地準備驅動jar包

注意:驅動包的版本一定要與數據庫的版本匹配,驅動版本太低可能導致連接報錯。

1、網盤下載

準備好MySQL的驅動,找不到的可在網盤下載:鏈接:https://pan.quark.cn/s/b59620ad7f30,提取碼:6WWw,將文件放到JMeter安裝文件夾下

圖片

2、在官網下載

進入官網https://dev.mysql.com/downloads/connector/j/,選擇:Platform Independent。點擊Download,解壓后找到jar文件,將文件放到JMeter安裝文件夾下

圖片

圖片

二)導入驅動包

在JMeter的測試計劃中,找到Add directory or jar to classspath,點擊旁邊的瀏覽,選中包,導入即可

圖片

二、連接數據庫

一)添加元件JDBC Connection Configuration

選中線程組,鼠標右鍵,添加–配置元件–JDBC Connection Configuration

圖片

二)配置JDBC Connection Configuration

圖片

1、名稱:默認為空,可自定義名稱,也可為空

2、注釋:默認為空,可自定義,也可為空

3、Variable Name for created pool:一個連接名稱,例如命名為s_mysql1,需要唯一標識,后面的JDBC請求中需要用到,所以需要與JDBC取樣器中的名稱一致,簡單理解就是jdbc request的時候需要確定去請求哪個數據庫。

4、Max Number of Connections:連接池中允許的最大數據庫連接數,默認10,做性能測試時,建議填 0

5、Max Wait(ms) :在連接池中取回連接最大等待時間,單位毫秒,默認10000,默認即可

6、Time Between Eviction Runs(ms):線程可空閑時間,單位毫秒,默認60000,默認即可
7、Auto Commit:自動提交sql語句,有三個選項:True、False、編輯(JMeter提供的函數設置),默認為true ,默認即可

8、Transaction Isolation:事務隔離級別,默認為DEFAULT,默認即可

9、Test While Idle: 當連接空閑時是否斷開,默認為True,默認即可

10、Soft Min Evictable Idle Time(ms):連接池中連接的最小空閑時間,以毫秒為單位。當連接池中的連接處于空閑狀態且超過了 “Soft Min Evictable Idle Time” 的設定值時,連接池可能會選擇回收這些空閑連接,默認為5000,默認即可

11、Validation Query:驗證sql語法,默認為select1,默認即可

12、Database URL:數據庫連接 URL,可以帶上字符集characterEncoding=utf-8,也可允許多條sql執行allowMultiQueries=true,還可指定時區serverTimezone=UTC,比如jdbc:mysql://10.0.41.104:33066/u_backend?serverTimezone=UTC&characterEncoding=utf-8&allowMultiQueries=true

13、JDBC Driver class:JDBC的類,默認為空,必填項,mysql就選擇com.mysql.jdbc.Driver

14、Username:數據庫的用戶名

15、Password:數據庫的密碼

三、 數據庫的查詢(單值/多值引用)

一)添加JDBC Request

1、選中簡單控制器,鼠標右鍵,添加–Sample–JDBC Request

圖片

添加成功后,填寫對應參數:

名稱:自定義

Variable Name of Pool declared in JDBC Connection Configuration:要與JDBC Connection Configuration中的Variable Name for created pool值保持一致

Query Type:根據填寫的sql選擇,查詢就選擇Select Statement,更新就選擇Update Statement

Variable names:對應sql查詢結果的字段值, 字段值有多少個,則對應值就有多少個,例如sql查出來有一個字段值reg_count,那么下面就對應1個變量count

Handle ResultSet:默認為Store as String,選擇默認值即可, 當選擇此選項時,查詢結果將以字符串的形式存儲在變量中

在這里插入圖片描述

二)添加HTTP請求

添加HTTP請求,填寫名稱,HTTP請求方法,路徑等等

圖片

三)添加響應斷言

1、引用一個變量

引用變量的形式就是 變量 名 行 數 ,例如 {變量名_行數},例如 變量名?

??? ?
?數,例如{count_1},表示引用查詢結果中count字段第1行的數據,KaTeX parse error: Expected group after '_' at position 5: {變量名_?#}表示返回的行數,例如{count_#}表示返回了幾行。

圖片

2、引用多個變量

如果SQL查詢出來的值有多個,例如查詢出來了5行記錄,每行三個字段,pid_reg_count對應變量count,pid_fee對應變量fee,income對應變量income。

圖片

圖片

可以添加一個Debug Sample,查看每個值是怎么取的,KaTeX parse error: Expected group after '_' at position 7: {count_?#}表示返回的行數,{count_1}表示返回的count字段的第一行的值,${count_2}表示返回的count字段的第二行的值。

fee1?表示返回的fee字段的第一行的值,{income_1}表示返回的income字段的第一行的值。。。依次類推。

圖片

今天的分享就到這里,希望對大家所有啟發。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164164.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164164.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164164.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jmeter中調用python代碼

1、安裝pyinstaller pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller 2、將py腳本打包 pyinstaller -F venv/get_image/OCR_jmeter_api.py 3、jmeter中添加OS Process Sampler并調用dist下的程序 4、執行jmeter

刪除鏈表的倒數第N個結點

題目: 給你一個鏈表,刪除鏈表的倒數第 n 個結點,并且返回鏈表的頭結點。 示例 1: 輸入:head [1,2,3,4,5], n 2 輸出:[1,2,3,5]示例 2: 輸入:head [1], n 1 輸出:…

機器學習實戰-第5章 Logistic回歸

Logistic 回歸 概述 Logistic 回歸 或者叫邏輯回歸 雖然名字有回歸,但是它是用來做分類的。其主要思想是: 根據現有數據對分類邊界線(Decision Boundary)建立回歸公式,以此進行分類。 須知概念 Sigmoid 函數 回歸 概念 假設現在有一些數據點,我們用一條直線對這些點進行…

淺析基于智能音視頻技術的城市重要場館智能監控系統設計

了解旭帆科技的朋友都知道,旭帆科技一直都樂于和大家分享各類場景的視頻解決方案,今天小編就基于智能音視頻技術的城市重要場館智能監控系統設計和大家探討一下。 基于智能音視頻技術的城市重要場館智能監控系統設計,主要包含以下要素&#x…

外部 prometheus監控k8s集群資源(pod、CPU、service、namespace、deployment等)

prometheus監控k8s集群資源 一,通過CADvisior 監控pod的資源狀態1.1 授權外邊用戶可以訪問prometheus接口。1.2 獲取token保存1.3 配置prometheus.yml 啟動并查看狀態1.4 Grafana 導入儀表盤 二,通過kube-state-metrics 監控k8s資源狀態2.1 部署 kube-st…

手把手教你編寫LoadRunner腳本

編寫 LoadRunner 腳本需要熟悉腳本語言、業務場景、參數化技術、斷言和事務等基礎知識。 在實際編寫時,可以根據具體測試需求,結合實際情況進行合理的配置和調整。 基本步驟 創建腳本 在 LoadRunner 的 Controller 模塊中,創建一個新的測…

linux centos上安裝python3.11.x詳細完整教程

一. 安裝步驟 注意: 1、安裝python3.11的其他版本替換下面的版本信息即可。(如想安裝3.11.5將案例中的3.11.0替換成3.11.5即可) #下載最新的軟件安裝包 wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz#解壓縮安裝包 tar -xzf Python-3.11.0.tg…

gRPC之gRPC負載均衡(客戶端負載均衡)(etcd)

1、gRPC負載均衡(客戶端負載均衡)(etcd) 本篇將基于etcd的服務發現前提下,介紹如何實現gRPC客戶端負載均衡。 1.1 gRPC負載均衡 gRPC官方文檔提供了關于gRPC負載均衡方案Load Balancing in gRPC https://github.com/grpc/grpc/blob/master/doc/load-balancing.m…

Jackson無縫替換Fastjson

目錄 文章目錄 一,Fastjson到Jackson的替換方案方案代碼序列化反序列化通過key獲取某種類型的值類型替換 二,Springboot工程中序列化的使用場景三,SpringMVC框架中的Http消息轉換器1,原理:2,自定義消息轉換…

什么是mvc原理是什么

MVC是一種設計模式,它將應用程序分為三個部分:模型(Model)、視圖(View)和控制器(Controller)。 模型(Model)表示應用程序的數據結構,包括與數據相…

常用腳本-持續更新(文件重命名、視頻抽幀、拆幀)

所有代碼位置:Learning-Notebook-Codes/Python/常用腳本 1. 文件重命名 1.1 說明 腳本路徑:codes/files_rename.py腳本說明:可以自動重命名某個文件夾下指定類型的文件。 修改前文件名稱: img1.jpg修改后文件名稱: Le0v1n-20231123-X-0001…

python-opencv在圖片中繪制各種圖形

python-opencv在圖片中繪制各種圖形 1.繪制直線 2.繪制矩形 3.繪制圓 4.繪制橢圓 5.繪制多邊形 6.嵌入文字 實現代碼都在下面了,代碼中參數做了簡單注釋 import copy import math import matplotlib.pyplot as plt import matplotlib as mpl import numpy a…

window非gui形式運行jmeter腳本

配置jmeter環境 新增1個環境變量: JMETER_HOMED:\Tools\apache-jmeter-5.0 【jmeter文件夾】 編輯CLASSPATH: CLASSPATH后面加上 %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar; 編輯path: path后面加上 %JM…

二次開發問題匯總【C#】

1未將對象引用到實例。 接口函數的參數不對。解決辦法【用fixed去限制數組長度】 unsafe public struct VCI_BOARD_INFO {public UInt16 hw_Version;public UInt16 fw_Version;public UInt16 dr_Version;public UInt16 in_Version;public UInt16 irq_Num;public byte can_Num;…

C語言眾數問題(ZZULIOJ1201:眾數問題)

題目描述 給定含有n個元素的多重集合S,每個元素在S中出現的次數稱為該元素的重數。多重集S中重數最大的元素稱為眾數。 例如,S{1,2,2,2,3,5}。多重集S的眾數是2,其重數為3。 編程任務…

前端學習--React(3)

一、Redux 集中狀態管理工具,不需要react即可使用,每個store的數據都是獨立于組件之外的 vue小鏈接:vuex/pinia 基本使用 Redux將數據修改流程分成三個概念,state、action和reducer state - 一個對象 存放我們管理的數據狀態 a…

1688API如何獲取商品詳情信息(關鍵詞搜索商品列表),1688API接口開發系列

1688商品詳情接口是指1688平臺提供的API接口,用于獲取商品詳情信息。通過該接口,您可以獲取到商品的詳細信息,包括商品標題、價格、庫存、描述、圖片等。 要使用1688商品詳情接口,您需要先申請1688的API權限,并獲取ac…

UML建模圖文詳解教程01——Enterprise Architect安裝與使用

版權聲明 本文原創作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Enterprise Architect概述 官方網站:https://www.sparxsystems.cn/products/ea/;圖示如下: Enterprise Architect是一個全功能的、基于…

Python入門02 算術運算符及優先級

目錄 1 REPL2 啟動3 算術運算符4 算術運算符的優先級5 清除屏幕總結 上一節我們安裝了Python的開發環境,本節我們介紹一下REPL的概念 1 REPL 首先解釋一下python執行代碼的一個交互環境的定義: Python REPL(Read-Eval-Print Loop&#xff0c…