自動化測試之JDBC鏈接、分佈式負載

1、Jmeter JDBC鏈接

Jmeter支持鏈接數據庫,對SQL語句進行性能測試,JDBC Connetction Configuration用來配置鏈接信息。java

一、把JDBC驅動的jar包引入測試計劃mysql

Jmeter要鏈接mysql數據庫,首先得下載mysql jdbc驅動包,這裏使用的是mysql-connector-java-5.1.7-bin.jarsql

選擇測試計劃——瀏覽——jar包路徑——選中mysql-connector-java-5.1.7-bin.jar——導入便可數據庫

 

二、設置JDBC鏈接池(在JDBC Connetction Configuration元件中進行設置)服務器

接下來新建一個線程組,右擊線程組——配置元件——選擇JDBC Connetction Configuration分佈式

配置信息以下:性能

  Variable Name for created pool(鏈接池名稱):必定要寫,JDBC Request經過此名稱來獲取鏈接池中的鏈接;能夠隨意填寫,但最好具備業務意義,至少能讓你秒懂。還有一條,在整個測試計劃中此名稱最好惟一,若是有多個JDBC Connetction Configuration,且名稱重複,則Jmeter沒法去作選擇。測試

  Max Number of Connection(鏈接池最大鏈接數):這裏設置爲10ui

  Database URL(數據庫鏈接地址):jdbc:mysql://IP地址:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true編碼

    ?前爲固定寫法,IP地址填寫數據庫服務器的IP,3306爲默認端口號,test表示要鏈接的數據庫名稱,

    useUnicode=true表示是否使用Unicode字符集,characterEncoding=utf8表示當Unicode設置爲true時,指定字符編碼使用UTF-8

    allowMultiQueries=true表示容許多條語句查詢 

  JDBC driver class選擇com.mysql.jdbc.Driver

  Username和Password爲數據庫的帳號密碼

  其它參數按照下圖設置便可

 

三、添加JDBC Request

接下來再右擊線程組——取樣器——選擇JDBC Request

配置信息以下:

  Variable Name of Pool declared in JDBC Connection Configuration中的變量名必定要與JDBC Connetction Configuration中的Variable Name for created pool(鏈接池名稱)保持一致

  Query Type(SQL語句類型):

    Select Statement:可執行查詢語句

    Update Statement:可執行更新操做,包括插入和修改

    Callable Statement:對應JDBC規範中的CallableStatement對象,它爲全部的DBMS提供了一種以標準形式調用存儲過程的方法,白話就是能夠調用存儲過程,也就是能夠有入參,有佔位符,總之支持SQL語句的增刪改查。

    後面的再也不贅述

  Query中可填寫SQL語句

四、點擊【啓動】,請求發送後,點擊察看結果數的響應數據

 

2、Jmeter之分佈式壓測

前期準備:

一、負載機(最少一臺)建議使用Linux,安裝好JDK、Jmeter,並配置好環境變量

這裏使用的是1.8JDK和Jmeter5.0,如何配置環境變量不在此贅述。

環境變量配置好後記得source /etc/profile,根目錄下執行jmeter,出現下圖表示配置成功

二、分別修改contrller和agent的配置文件jmeter.properties,找到server.rmi.ssl.disable取消註釋,並改成server.rmi.ssl.disable=true,以下圖所示:

修改完成後,回到contrller的jmeter.properties中,添加遠程agent的IP地址和端口號(默認爲1099,可在agent的配置中文件更改,更改server_port便可),以下圖所示:

 啓動agent的服務,執行命令:jmeter-server,下圖表示啓動成功

打開contrller的jmeter,創建腳本,選擇運行——遠程啓動——負載機,這裏報錯鏈接超時,是因爲防火牆未關閉或測試controller和agent不在同一個網段會影響遠程鏈接。

解決辦法:關閉agent的防火牆。contrller和agent在同一網段,好比選擇了同一個WIFI,配置同一個DNS等方法解決。

因爲contrller和agent不在同一網段因此沒法演示,感興趣的朋友可以使用本地虛擬機試試~

 注意:

  一、分佈式配置成功的小夥伴兒,在使用分佈式的壓測過程當中會發現,察看結果樹中無響應數據,Don't worry,這是正常現象,由於察看結果樹在壓測過程當中是浪費性能的,最好禁用掉。因此在使用分佈式時,Jmeter去掉了響應數據(默認不展現,但可修改配置文件,在此不作說明)

注意:

       二、若是腳本中使用了參數化文件,負載機一樣位置也須要有一個相同的參數化文件,放在bin目錄下便可;

關於nogui的經常使用命令見下圖:

示例:jmeter -n -t bugfree.jmx -r -l ./bugfree.jtl -e -o ./bugfree -j bugfree.log

釋義:使用nogui模式進行分佈式壓測,腳本bugfree.jmx路徑爲當前路徑,並在當前路徑生成結果文件bugfree.jtl、測試報表(路徑爲bugfree)和日誌文件bugfree.log

相關文章
相關標籤/搜索