前言
上一篇我給大家講了jmeter的基本介紹跟參數化和jmeter腳本及jmeter斷言,今天讓我們繼續往下看,學習一下jmeter新的知識點。
一、Jmeter關聯
我們知道斷言是從返回結果中檢查有沒有預期的值,現在有一個問題,有一個購買商品的接口,必須要先登錄才能夠購買商品, 那么你調用接口的時候怎么知道是否已經登錄了,一般這樣的都會在調用的時候傳一個token的參數,服務端判斷token是否過期或者token是否正確,如果正確的話,那就是登錄成功了就可以買東西了。
那么這樣的話,你就要先獲取到token,token是從呢來的呢,肯定是從登錄接口返回的,因為要先登錄嘛,那這樣就得先調用登錄接口, 獲取到token,然后把獲取到的token傳給購買商品的這個接口。
關聯就是做這個事的,它就是獲取到返回的值,然后保存起來,給別的請求使用,或者做一些其他的處理。
=====Jmeter中的關聯是通過正則表達式提取器來完成的。
?
=====
通過上面的關聯就可以把返回中我們想要的值抓到了,給其他請求使用的時候,直接使用${name}即可,name就是你關聯的時候設置的變量名。
二、Jmeter操作mysql
1、Jmeter操作mysql步驟:
1)、導入jdbc的jar包,因為jmeter本身不能直接連接mysql,所以需要導入第三方的jar包,來連接mysql
2)、創建數據庫連接配置,mysql的url、端口號、賬號、密碼
3)、寫sql,執行sql
4)、查看結果
?
2、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" |
3、Jmeter配置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操作mongodb
1、Jmeter操作mongodb步驟:
1)、添加一個MongoDB?Source?Config,配置mongodb連接信息,指定ip和數據源
2)、添加一個mongodb的請求腳本,指定數據源
?
3)、寫查詢語句
4)、查看結果
2、Mongodb操作語句
show dbs;查看所有數據庫
use db;選擇一個數據庫
show collections;查看所有集合,也就是表
db.collection.find();#查詢所有數據
db.collection.find({"name":"mongodb"});#查詢指定的條件
db.collection.insert({"name":"mongodb","age":18});#插入數據
db.collection.update({“name”:“mongodb”},{$set:{“createtime”:“20150810”}});#更新數據
db.besttest.remove({“name”:“mongodb”});#刪除指定數據
四、Jmeter壓力測試
做壓力測試也就是多少用戶一起去操作,也就是設置多少并發,運行多久。
1、壓力測試場景設置
一般我們在做壓力測試的時候,分單場景和混合場景,單場景也就是咱們壓測單個接口的時候,多場景也就是有業務流程的情況下,比如說一個購物流程,那么這樣的場景就是混合場景,就是有多個接口一起來做操作。
1)、單場景,一個請求就可以了
2)、混合場景,多個請求
3)、壓測時間,一般場景都是運行10-15分鐘,如果是做疲勞測試的話,可以壓一天或者一周,根據具體的情況來定
2、壓力測試數據準備
在做壓測的時候,數據量少和數據量大的情況下,測試的結果是不一樣的,所以,我們在設計場景的時候是要考慮到這種情況的,要測試數據庫中數據量大和數據量小的情況,如果是要測試數據量大的情況下,就要造數據了,造數據可以使用jmeter,操作數據庫來造數據,也可以使用python連接數據庫,批量的造數據。
3、壓力測試結果查看
查看結果關注的幾個指標
1)、tps是每秒鐘處理的請求數,也就是指服務器的處理能力,tps越高說明服務器處理能力越好
2)、響應時間,也就是每個請求的處理時間
3)、并發用戶數??也就是多少并發
?
?五、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就可以查看到測試結果了
Jmeter添加負載機
我們在壓測的時候,可能并發比較大, 一臺機子已經啟動不了那么多并發了,這個時候我們就要使用多臺機子一起來發壓力,就要添加壓力機,添加壓力機怎么添加呢,首先要在做壓力機的機子上啟動jmeter的代理,然后做為控制機的機子上添加上壓力機的ip即可。
1)、Jmeter的bin目錄下有一個jmeter-server,啟動它即可,windows機子作為壓力機的話,運行jmeter-sever.bat,linux作為壓力機的話,運行jmeter-server
2)、然后在作為控制機的jmeter配置文件里添加壓力機ip即可,jmeter的配置文件在bin目錄下jmeter.properties,添加壓力機的時候,在配置文件里面找到remote_hosts添加ip,然后重啟jmeter就可以看到遠程壓力機了后重啟jmeter就可
3)、在配置文件里面添加之后,重啟jmeter,在運行的時候,就可以看到壓力機的ip了,可以選擇他來運行這個腳本,全部運行的話,也就是所有壓力機上的全部都啟動,就選擇遠程全部啟動,就所有的壓力機就都運行了。
?
?感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
?
這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!有需要的小伙伴可以點擊下方小卡片領取?
?