1. 程式人生 > >jmeter接口測試

jmeter接口測試

視圖 inux span -s python 事先 pad pos 路徑

jmeter接口測試

一、Jmeter簡介

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

二、Jmeter-http接口腳本

1、添加線程組 2、添加http請求 3、在http請求中寫入接口url、路徑、請求方式、參數 4、添加查看結果樹 5、調用接口、查看返回值 技術分享
Jmeter-http接口腳本添加header: 技術分享 技術分享 Jmeter-http接口腳本添加cookie: 在這裏添加cookie的時候,不要忘了把域這裏寫上接口的url,否則是不生效的,還有一種方法也是可以添加cookie,那就是在header裏面添加一個key是cookie,值為cookie的值就好了,兩種方法都可以 技術分享 技術分享

三、Jmeter-webservice腳本

1、在soapui中新建已經soap項目,導入wsdl地址,獲取到請求報文、SOAPAction和請求url(在soapui的raw中能找到) 技術分享 技術分享 2、打開jmeter新建一個線程組 3、新建一個SOAP/XML-RPC Request 技術分享
4、把url、soapaction和請求報文寫到soaprequest中 5、調用接口、查看返回值 四、Jmeter-參數化 參數化是幹嘛的呢,咱們在調用接口的時候,有入參,那參數裏面的值如果經常變化的話,就得每次去改了,很麻煩,這時候咱們就把需要經常變的值,改成可以變化的或者是咱們提前設置好的一些值,這樣的話,調用的時候就不用每次都改它的值了 1、Jmeter參數化的方式有三種 用戶定義的變量——這種就是為了方便管理參數,只能有一個值,比如說ip地址不經常變化的 函數生成器——函數生成器可以參照一定的規則生成數據,這樣的比如說生成一些隨機數 從文件中讀取——文件讀取就是事先寫好一些數據,然後從文件中讀取,這樣的話,比如說登錄接口,賬號和密碼 都是我們事先註冊好的

2、用戶定義的變量

value就可以了,key就是這個參數的名稱,也就是你在腳本裏面取的值,value就是具體值了。在取參數化的值的時候,使用${name}這樣去取值,name就是你取的變量名稱。 技術分享 技術分享

3、函數生成器

函數助手的話,可以按照規則生成一些參數,比如說隨機數取當前時間,最常用的就是這兩種。 技術分享 隨機數__Random——可以在你指定的一個範圍內取隨機值 技術分享 取當前時間__time——如果在有一些需要傳時間的情況下可以使用,日期格式是: yyyy-MM-ddHH:mm:ss 年-月-日-小時:分鐘:秒 技術分享 取唯一id,__UUID——這個就是每次會生成一個隨機的uuid,都是唯一的 技術分享

4、從文件中讀取

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

五、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就可以查看到測試結果了 1、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了,可以選擇他來運行這個腳本,全部運行的話,也就是所有壓力機上的全部都啟動,就選擇遠程全部啟動,就所有的壓力機就都運行了。 技術分享

jmeter接口測試