當前位置:首頁 » 網頁前端 » jmeter測試web
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

jmeter測試web

發布時間: 2023-08-31 18:16:04

⑴ 關於jmeter測試web登錄介面

演示一下簡單的介面測試,首先需要先進... 1 然後在添加一個為察看結果樹,進行右鍵... 2 點擊已添加的http請求進入,然後在web... 3 然後進行運行jmeter,點擊上面綠色運行... 4 進入查看結果是否運行成功,可以進行點... 5 進入到查看結果樹中...

⑵ 如何使用jmeter做webservices介面測試

1. 建立WebServiceTest Plan

1) 添加ThreadGroup

右鍵單擊Test Plan選擇Add --> ThreadGroup,配置

Number of Threads、Ramp-UpPeriod、Loop Count可隨測試不同隨時修改。

三種參數解釋如下:

Number of Threads為發起線程總數。

Ramp-Up Period 指定了JMeter開啟Number ofThreads個線程所需的時間。例如,如果待發起30個線程(即模擬用戶),Ram-Up Period為15秒,則每秒增加2個線程(30個用戶/15秒)。如果設置為0,則JMeter會自動啟動所有模擬用戶。

Loop Count為循環次數。

2. 添加 WebService Requests
右鍵單擊「WebService線程組」,Add --> Sampler --> WebService(SOAP)。

註:灰色「線程組」為其它測試使用過的線程組,此處這設置為Disabled線程組,在本次測試中不使用。

配置

將發布好的Service的 WSDL URL粘貼到WSDL URL中點擊Load WSDL之後,WebMthods自動彈出,

只需自己選擇Method然後單擊Configure即可完成絕大部分自動配置

但是裡面會涉及Soap/XML-RPC Data的編寫,我編寫的如下:

[plain] view plain
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:simpleMethod
xmlns:ns1="http://server.deltaj.com">
<name xsi:type="xsd:string">Yerasel</name>
</ns1:simpleMethod>
</soap:Body>
</soap:Envelope>

這個XML中絕大部分都是固定的。其餘解釋如下:
simpleMethod是WebService發布的方法;

http://server.deltaj.com是simpleMethod所在類(SimpleServer)的域名,即SimpleServer所在包的包名為com.deltaj.server;

name是simpleMethod的參數名,參數類型是string;

Yerasel是輸入的實參。

SimpleService服務端源程序如下:
[java] view plain
// SimpleService.java
package com.deltaj.server;

public class SimpleServer {

/**
* 簡單的測試方法
*
*/
public String simpleMethod(String name) {
return name + "Say this is a Simple method ^-^";
}

}

注意:
<arg0 xsi:type="xsd:string">Yerasel</arg0>也可以,
在發布成wsdl時候, 方法的參數名稱被自動的映射成arg0, arg1, 解決方法如下:
[java] view plain
Java代碼
public User create(
@WebParam(name = "user")
User user);
因此SimpleService服務端源程序改寫如下:
[java] view plain
// SimpleService.java
package com.deltaj.server;

public class SimpleServer {

/**
* 簡單的測試方法
*
*/
public String simpleMethod(@WebParam(name = "personname")String personname) {
return personname + "Say this is a Simple method ^-^";
}

}

Soap/XML-RPC Data 如下:
[plain] view plain
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:simpleMethod
xmlns:ns1="http://server.deltaj.com">
<personname xsi:type="xsd:string">Yerasel </personname>
</ns1:simpleMethod>
</soap:Body>
</soap:Envelope>

註:

發布SimpleServer時,需要寫xml,這是發布WebService的一般步驟,內容如下:

[plain] view plain
<serviceGroup>
<service name="SimpleServer" scope="application">
<description>
SimpleServer
</description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">com.deltaj.server.SimpleServer</parameter>
</service>
</serviceGroup>
文件名為META-INF/services.xml。
文件布局

com裡面是包以及.class

然後,在bin目錄下運行"jar cvf SimpleServer.aar . "即可

將aar放入Tomcat的services目錄中即可發布。

⑶ JMeter基礎

一、Jmeter簡介

—-->生成不同格式的測試報告

以WEB性能測試為例:jmeter可以作為web伺服器與瀏覽器之間的代理網關,以便捕獲瀏覽器的請求和web伺服器的響應,如此就可以很容易地生成性能測試腳本。有了性能測試腳本,jmeter就可以通過線程來模擬真實用戶對web伺服器的訪問壓力。這與LoadRunner的工作原理基本一致( 向伺服器提交請求;從伺服器獲取請求返回的結果 )


二、JMeter下載安裝

1、安裝環境要求

Unix(Solaris,Linux,etc) 、 Windows(98,NT,2000,XP,WIN8)

2、JDK下載、安裝

右鍵計算機屬性->高級系統設置->系統屬性->高級->環境變數->添加如下的系統變數:

變數值:D:Program FilesJavajdk1.8.0_92【jdk安裝路徑】

變數值: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;

運行cmd->輸入java -version->顯示java版本就表示jdk安裝成功

3、JMeter下載安裝

4、JMeter環境配置

變數值:E:apache-jmeter-4.0 (就是jmeter保存的路徑,即jmeter解壓路徑)

如:JMETER_HOME=D:apache-jmetesapache-jmeter-4.0

變數值:

;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar

5、Jmeter 的Bin目錄下的幾個重要文件

6、啟動Jmeter

三、JMeter組件介紹 (JMeter常用組件)

1、測試計劃(Test Plan)

註:什麼是元素?

JMeter的不同組件稱為Elements。 每個元素都是為特定目的而設計的。

2、線程組(Threads)

例如,如果將線程數設置為100; JMeter將創建並模擬100個用戶對被測伺服器的請求

所有的控制器和取樣器都是在某個線程組下;

3、邏輯控制器(Logic controller)

邏輯控制器允許在線程中定義處理請求的順序。它允許控制「何時」將用戶請求發送到Web伺服器。例如,可以使用隨機控制器隨機向伺服器發送HTTP請求

例如:我們在收郵件時,只需要登錄一次郵箱既可查看多封郵件。如果這個場景我們在Jmeter中實現,我們需要控制登錄的次數,如何實現呢?Jmeter邏輯控制器中的僅一次控制器就可以完成。當然了,控制器不只是這一個,還有很多其他的控制器來完成我們的各種需求。

除了為「線程組」指定的循環值之外,循環控制器使取樣器運行一定次數。例如,如果你

將一個HTTP請求添加到循環控制器,循環計數為50

將「線程組」循環計數配置為2

然後,JMeter將發送總共50 * 2 = 100個HTTP請求。

除了循環值= 2,你為上面的線程組指定。所以JMeter將發送總共2 * 50 = 100個HTTP請求。

又如:線程組中設置循環次數3,循環控制器中設置循環測試2,


即:線程組的循環與循環控制器為父子關系,且循環控制器只對子請求有效

註:錄制腳本的循環按循環控制器中的調協循環

作為循環控制器的子節點,僅一次控制器在每循環的第一次迭代時均會被執行

HTTP請求、FTP請求、JDBC請求

這3個請求應該運行5次; JMeter將向伺服器發送總共5個用戶請求。

按順序,按以下順序依次發送請求:HTTP請求 - > FTP請求 - > JDBC請求,對於每個循環按隨機順序,請求隨機發送,FTP請求 - > HTTP請求 - > JDBC請求 或 JDBC請求 - > FTP請求 - > HTTP請求等

4、配置元件(Config element)

比如CVS Data Set Config,它可以幫助我們從文件中讀取測試數據。另外Jmeter也提供了眾多的函數來幫我們生成動態數據。

緩存管理器),自動記錄伺服器返回的Cache信息。簡單說就是它為取樣器提供預備數據,然後由取樣器

發出請求。

入不同的登錄憑據。 該登錄信息(例如,用戶名,密碼)可以存儲在文本文件中。 JMeter有一個元素,允許您從該文本文件中讀取不同的參數。 它是「CSV數據集配置」,用於從文件中讀取行,並將它們拆分為變數。


這是CSV數據的示例。 這是一個文本文件,其中包含用於登錄目標網站的用戶和密碼

密碼將作為cookie存儲在計算機中。下次訪問 www..com 時 ,無需再次登錄,因為在瀏覽器將使用您的Cookie作為用戶數據登錄。

Cookie管理器會自動存儲該cookie,並將其用於將來對該特定網站的所有請求。

此元素允許您設置HTTP請求控制器使用的默認值

server name = google.com

PS:在執行順序方面有個例外,配置元件"用戶定義的變數"無論它處於測試樹的哪個位置,總是在測試的初始階段執行。所以個人建議把它放在線程組的開始部分。

5、定時器(Timer)( 固定定時器:思考時間

JMeter向http://www..com創建一個用戶請求100次

每個用戶請求之間的延遲為5000毫秒

6、前置處理器(Per processors)

7、取樣器(Samples)

您將FTP「下載文件」或「上載文件」請求發送到FTP伺服器。

JMeter將FTP命令發送到FTP伺服器ftp.example.com ,然後從該伺服器下載文件Test.txt。


您可以配置JMeter將SQL查詢發送到此伺服器以檢索數據。

如果要測試郵件伺服器,可以使用SMTP采樣器。 此采樣器用於使用SMTP協議發送電子郵件

8、後置處理器(post processors)

9、斷言(Assertions)

用過LR的讀者應該會知道檢查點這個功能,可以幫助我們來判斷請求是否成功返回且是否符合要求,在Jmeter中我們不叫檢查點,我們叫斷言,接觸過selenium的也會懂這個概念。就是用一個預設的結果(值、表達式、時間長短等條件)與實際結果匹配,匹配到則成功,反之失敗。

APPly to: 適用范圍

Main sample and sub-samples:作用於父節點取樣器及對應子節點取樣器

Main sample only:僅作用於父節點取樣器

Sub-samples only:僅作用於子節點取樣器

JMeter Variable:作用於jmeter變數(輸入框內可輸入jmeter的變數名稱)

要測試的響應欄位: 要檢查的項

響應報文

Documeng(text):測試文件

URL樣本

響應代碼

響應信息

Response Headers:響應頭部

Ignore status:忽略返回的響應報文狀態碼

模式匹配規則:

包括:返回結果包括你指定的內容

匹配:(好像跟Equals查不多,弄不明白有什麼區別)

Equals:返回結果與你指定結果一致

Substring:返回結果是指定結果的字串

否:不進行匹配

要測試的模式: 即填寫你指定的結果(可填寫多個),按鈕【添加】、【刪除】是進行指定內容的管理

10、監聽器(Listener)

「圖形結果」偵聽器在圖形上顯示伺服器響應時間

「查看結果樹」以基本HTML格式顯示用戶請求的結果(View Results Tree)

通過察看結果樹,我們可以看到每個請求的結果,其中紅色的是出錯的請求,綠色的為通過。

Thread Name:線程組名稱

Sample Start: 啟動開始時間

Load time:載入時長

Latency:等待時長

Size in bytes:發送的數據總大小

Headers size in bytes:發送數據的其餘部分大小

Sample Count:發送統計

Error Count:交互錯誤統計

Response code:返回碼

Response message:返回信息

Response headers:返回的頭部信息

這里綠色的就說明請求是通過的,返回值是200,如果出現紅色的 就說明請求失敗,這時候可以通過右邊的取樣器結果和響應數據來查看結果。

用表格可看結果(View Results in Table)

四、組件執行順序

在同一作用域名范圍內(不考慮邏輯控制器),測試計劃中的元件按照如下順序執行。
(1)配置元件(config elements )
(2)前置處理程序(Per-processors)
(3)定時器(timers )
(4)取樣器(Sampler)
(5)後置處理程序(Post-processors) (除非Sampler 得到的返回結果為空)
(6)斷言(Assertions)(除非Sampler 得到的返回結果為空)
(7)監聽器(Listeners)(除非Sampler 得到的返回結果為空)

問題

1、為什麼要使用jmeter?他可以幫我們解決那些事情?

jmeter主要是做介面測試和性能測試,它支持的協議也不少,用來測試http,資料庫並發都是很方便快捷的工具,相對於lr來說更靈活與實用,等等

2、我們在什麼時候會使用jmeter?

· 在一個項目中我們可能前段還沒有開發完畢我們想看一下伺服器的相應數據。

· 比如我們校驗資料庫有沒有做校驗,我們可以繞過前端

· 我們想看一下這個介面或者多個介面的並發量是多少,性能怎麼樣

3、.誰在使用?為什麼是他在使用?

一般使用者為開發人員或者測試人員。

開源免費,基於Java編寫,可集成到其他系統可拓展各個功能插件

支持介面測試,壓力測試等多種功能,支持錄制回放,入門簡單

相較於自己編寫框架活其他開源工具,有較為完善的UI界面,便於介面調試

多平台支持,可在Linux,Windows,Mac上運行

4、使用jmeter需要了解什麼?介面與介面之間的聯系怎麼處理?

· 我們必須了解介面的工作原理

· 需要掌握http中的get和post請求原理

· 需要掌握請求頭,響應頭,請求體個個欄位代表什麼意思,並且欄位的返回值的各代的含義是什麼?

· 響應的狀態碼各代表什麼含義·

· json是什麼?

· 介面測試用例的設計方法,以及測試時點

介面之間的聯系:

介面與介面之間存在聯系,比如上個介面的返回值是下一個介面的入參,那我們就要在上個介面返回值賦值變數,供下一個介面調用。

5、在使用jmeter中我想要的預期結果和實際結果是怎樣對比的?

· 我們做所有的測試無非就是預期結果和實際結果作對比,如果預期結果和實際結果作對比,那麼這個介面就是可用的,不相等那麼這個介面就是有問題的。

·在jmeter中我們的用斷言做實際結果和預期結果的對比,它提供了許多斷言方法,其中最常用的就是響應斷言,在後面我會專門的寫一下響應斷言以及一些常用斷言的用法。

· 我們還需要知道在jmeter中我們斷言的內容是啥?這點是很重要的

7、使用jmeter的是的我們的有哪些方面的提升,jmeter的主流方向是什麼?

· 對整個前端與後端的一個相互傳輸數據原理有了進一步了解

· 可以提高測試效率,可以提早的參與進來,較早的發現問題,減少開發成本,縮短整個產品的上線周期,可以給測試流出充裕的時間,保證產品質量。

·掌握了介面測試的測試點,已及用例的設計方法。

jmeter測試的主流方向:

· 用於性能測試,壓力測試

· 介面測試

⑷ 如何用Jmeter做壓力測試

在「伺服器名稱或ip」設置127.0.0.1,埠號設置:8080,「方法」設置post,路徑設置網站登錄的地址,如「/exam/operatorAction」。

登錄需傳入用戶、密碼。在「同請求一起發送參數」列表中添加參數。參數值根據web應用設置。如login_user=0001;login_password=1;actFlag=login。

一般網站登錄後,在tomcat中生成了session,之後訪問其他頁面將無需再次登錄,前提是瀏覽器需支持cookie。在jmap中也同樣,如要繼續訪問其他頁面,還需做下面關鍵的設置。

Apache JMeter

是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴展到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態文件、Java小服務程序、CGI 腳本、Java 對象、資料庫、FTP伺服器, 等等。JMeter 可以用於對伺服器、網路或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。