jmeter一些常用功能(一)(接口測試,參數化,關聯,變量,函數助手,斷言,數據庫操作)


 

1.jmeter簡介

      Jmeter是apache公司基於java開發的一款開源壓力測試工具,體積小,功能全,使用方便,不像loadrunner那樣體積大,是一個比較輕量級的測試工具,使用起來非常的簡單,深受測試人員的喜愛,但是它的測試報告沒有loadrunner的那么詳細,看起來沒有那么的直觀。因為它是java開發的,所以運行的時候必須要安裝jdk才可以,jmeter是免安裝的,拿到安裝包之后直接解壓就可以使用了,它也是跨平台的在linux、windows、macos上都可以使用。

 

2.jmeter-http接口測試腳本

      jmeter進行http接口測試的主要步驟(1.添加線程組 2.添加http請求 3.在http請求中寫入接口的URL,路徑,請求方式,參數 4.添加查看結果樹 5.調用接口,查看返回值)

 

 

      針對接口添加header在如下途徑添加:

 

 

  

      jmeter做http接口測試添加cookie:

 

 

 3.jmeter-webservice腳本

     進行webservice測試的一般步驟(1、在soapui中新建已經soap項目,導入wsdl地址,獲取到請求報文、SOAPAction和請求url(在soapui的raw中能找到)2、打開jmeter新建一個線程組3、新建一個SOAP/XML-RPC Request4、把url、soapaction和請求報文寫到soaprequest中5、調用接口、查看返回值)

 

 

 

 

 

 

4.jmeter-參數化

      參數化的作用:調用接口入參時。有時要求參數經常變化,如果每次去修改就會變得很繁瑣,這時候就需要把經常變化的值改變為提前編輯好的文檔或函數中,便於調用時使用不同的值。

      Jmeter參數化的方式有三種:

1)用戶定義的變量(這種就是為了方便管理參數,只能有一個值,比如說ip地址不經常變化的)。

   在線程組中添加一個用戶定義的變量,然后寫key和value就可以了,key就是這個參數的名稱,也就是你在腳本里面取的值,value就是具體值了。在取參數化的值的時候,使用${name}這樣去取值,name就是你取的變量名稱。

在腳本中獲取參數化的值

2)函數生成器(函數生成器可以參照一定的規則生成數據,這樣的比如說生成一些隨機數)。

   函數助手的話,可以按照規則生成一些參數,比如說隨機數取當前時間,最常用的就是這兩種。

隨機數__Random,可以在你指定的一個范圍內取隨機值

取當前時間__time,如果在有一些需要傳時間的情況下可以使用,日期格式是:yyyy-MM-dd HH:mm:ss   年-月-日-小時:分鍾:秒

取唯一id,__UUID,這個就是每次會生成一個隨機的uuid,都是唯一的。

 

利用函數助手可以按照規則生成一些參數。

 

 

3)從文件中讀取(文件讀取就是事先寫好一些數據,然后從文件中讀取,這樣的話,比如說登錄接口,賬號和密碼都是我們事先注冊好的)

   從文件中讀取的有3個步驟:1、讀取文件2、取文件內容里面的參數,給它一個名字3、使用值(從文件讀取的話,需要在線程組里面添加一個CSV Data Set Config,它就是做前面兩步的操作的)。

5.jmeter斷言

  斷言的作用是用來查看返回結果是否正確,如果正確就代表這個請求的返回值是正確的,如果沒有的話就代表這個請求的結果和我們預期的不一致,這樣我們就可以通斷言來檢查返回結果,測試是否通過。

6.jmeter關聯

 

  關聯作用是由於后面操作需要用到前面服務器返回的結果,所以將該值保存傳遞過來以便使用。

Jmeter中的關聯一般通過正則表達式提取器來完成(如果有特殊的jar包也可)

關聯的值在其他請求引用時,直接使用${name}即可,name就是你關聯的時候設置的變量名。

7.jmeter操作數據庫mysql

   操作數據庫的步驟:1. 導入jdbc的jar包,因為jmeter本身不能直接連接mysql,所以需要導入第三方的jar包,來連接mysql。2、創建數據庫連接配置,mysql的url、端口號、賬號、密碼3、寫sql,執行sql  4、查看結果

Jmeter導入jdbcjar包

配置mysql連接

(1)添加一個JDBC Connection Configuration

(2)配置mysql連接池的名稱,后面發sql請求的時候指定連接哪里

(3)數據庫的url:jdbc:mysql://192.168.1.116:3307/bugfree?allowMultiQueries=true

(4)數據庫驅動:這里就是指定連接什么類型的數據庫,mysql、oracle、SqlServer等等

(5)賬號密碼

 

Jmeter數據庫驅動列表

數據庫

驅動

數據庫url

mysql

com.mysql.jdbc.Driver

jdbc:mysql://host:port/{dbname}?allowMultiQueries=true

oracle

org.postgresql.Driver

jdbc:postgresql:{dbname}

PostgreSQL

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:user/pass@//host:port/service

MSSQL

com.microsoft.sqlserver.jdbc.SQLServerDriver

或者

net.sourceforge.jtds.jdbc.Driver

jdbc:sqlserver://IP:1433;databaseName=DBname

或者

jdbc:jtds:sqlserver://localhost:1433/"+"library"

 

 

 

 

 

 

 

 

 

 

Jmeter執行sql

查看sql結果

7.壓測場景設置

 

一般我們在做壓力測試的時候,分單場景和混合場景,單場景也就是咱們壓測單個接口的時候,多場景也就是有業務流程的情況下,比如說一個購物流程,那么這樣的場景就是混合場景,就是有多個接口一起來做操作。1)單場景,一個請求就可以了2)混合場景,多個請求3)壓測時間,一般場景都是運行10-15分鍾,如果是做疲勞測試的話,可以壓一天或者一周,根據具體的情況來定

壓測數據准備:在做壓測的時候,數據量少和數據量大的情況下,測試的結果是不一樣的,所以,我們在設計場景的時候是要考慮到這種情況的,要測試數據庫中數據量大和數據量小的情況,如果是要測試數據量大的情況下,就要造數據了,造數據可以使用jmeter,操作數據庫來造數據,也可以使用python連接數據庫,批量的造數據

壓測結果查看:查看結果關注的幾個指標1、tps是每秒鍾處理的請求數,也就是指服務器的處理能力,tps越高說明服務器處理能力越好2、響應時間,也就是每個請求的處理時間3、並發用戶數  也就是多少並發

 

 

 

 

 

8.Linux下運行jmeter壓測

我們在做測試的時候,有時候要運行很久,公司用的測試服務器一般都是linux,就可以運行在linux下面,linux下面不能像windows一樣有圖形化界面,那怎么運行腳本呢,就先在windows上把腳本做好,然后在linux下運行即可,linux下運行jmeter是在jmeter的bin目錄下的jmeter.sh這個shell腳本。

sh jmeter.sh -n –t a.jmx -l res.jtl

-n代表以沒有圖形化界面啟動,-t代表后面是測試腳本,a.jmx也就是我們做好的jmeter腳本,-l代表測試結果 res.jtl就是測試結果文件,查看結果的話,在查看結果樹視圖中導入這個res.jtl就可以查看到測試結果了

 

9.jmeter添加負載機

我們在壓測的時候,可能並發比較大, 一台機子已經啟動不了那么多並發了,這個時候我們就要使用多台機子一起來發壓力,就要添加壓力機,添加壓力機怎么添加呢,首先要在做壓力機的機子上啟動jmeter的代理,然后做為控制機的機子上添加上壓力機的ip即可。

Jmeter的bin目錄下有一個jmeter-server,啟動它即可,windows機子作為壓力機的話,運行jmeter-sever.bat,linux作為壓力機的話,運行jmeter-server。

然后在作為控制機的jmeter配置文件里添加壓力機ip即可,jmeter的配置文件在bin目錄下jmeter.properties,添加壓力機的時候,在配置文件里面找到remote_hosts添加ip,然后重啟jmeter就可以看到遠程壓力機了

(jmeter 添加壓力機1、先在其他的負載機(另外的電腦)上啟動jmeter-server(jmeter-server.bat windows) (jmeter-server.sh mac、linux)主控機和負載機2、修改主控機jmeter的配置文件,找到remot_hosts,然后把負載機的ip加入到里面就好了remot_hosts=127.0.0.1,192.168.1.2:1099,192.168.1.3:1099默認jmeter-server的端口號是1099,如果說負載機上的端口號改了,那么你在這里也得改3、啟動時候要選擇遠程全部運行ps:如果有參數化文件,那么在負載機同樣的位置上也得有一個參數化文件)

 

 

 

**小結**

1、jmeter做http腳本

添加header

添加cookie

添加權限驗證

上傳文件

2、jmeter做webservice腳本

3、參數化

用戶定義的變量

函數生成器

文件讀取

4、關聯、斷言

5、操作數據庫

Mysql

Mongodb

6、jmeter壓力測試

設置並發

查看結果

Linux下運行腳本

添加壓力機

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM