欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
使用JMeter進(jìn)行性能測試
 
官方網(wǎng)站上下載,解壓之后即可使用。運行命令在%JMETER_HOME%/bin 下,對于 Windows 用戶(hù)來(lái)說(shuō),命令是 jmeter.bat。運行前請檢查JMeter 的文檔,查看是否具備相關(guān)的運行條件。對于最新版,需要JDK的版本要求是JDK 1.4以上。
 
作用領(lǐng)域
JMeter可以用于測試靜態(tài)或者動(dòng)態(tài)資源的性能(文件、Servlets、Perl腳本、java對象、數據庫和查詢(xún)、ftp服務(wù)器或者其他的資源)。JMeter用于模擬在服務(wù)器、網(wǎng)絡(luò )或者其他對象上附加高負載以測試他們提供服務(wù)的受壓能力,或者分析他們提供的服務(wù)在不同負載條件下的總性能情況。你可以用JMeter提供的圖形化界面分析性能指標或者在高負載情況下測試服務(wù)器/腳本/對象的行為。
接下來(lái)的章節里,作者將詳細的演示如何使用JMeter來(lái)測試Web應用的完整過(guò)程。
測試環(huán)境
作者使用了Tomcat作為Web服務(wù)器進(jìn)行測試,被測試的內容是一個(gè)jsp文件和一個(gè)servlet,jsp文件調用JavaBean、打印相關(guān)信息,servlet接受用戶(hù)參數、調用javabean、輸出相關(guān)信息。詳細的內容請參考作者提供的JMeter.war的內容。
安裝啟動(dòng)JMeter
下載JMeter的release版本,然后將下載的.zip文件解壓縮到C:/JMeter(后面的文章中將使用%JMeter%來(lái)引用這個(gè)目錄)目錄下。
現在,請使用%JMeter%/bin下面的jmeter.bat批處理文件來(lái)啟動(dòng)JMeter的可視化界面,下面的工作都將在這個(gè)可視化界面界面上進(jìn)行操作。下面的圖片是JMeter的可視化界面的屏幕截圖。
 
 
 
建立測試計劃(Test Plan)
測試計劃描述了執行測試過(guò)程中JMeter的執行過(guò)程和步驟,一個(gè)完整的測試計劃包括一個(gè)或者多個(gè)線(xiàn)程組(Thread Groups)、邏輯控制(Logic Controller)、實(shí)例產(chǎn)生控制器(Sample Generating Controllers)、偵聽(tīng)器(Listener)、定時(shí)器(Timer)、比較(Assertions)、配置元素(Config Elements)。打開(kāi)JMeter時(shí),它已經(jīng)建立一個(gè)默認的測試計劃,一個(gè)JMeter應用的實(shí)例只能建立或者打開(kāi)一個(gè)測試計劃。
現在我們開(kāi)始填充一個(gè)測試計劃的內容,這個(gè)測試計劃向一個(gè)jsp文件和一個(gè)servlet發(fā)出請求,我們需要JMeter模擬五個(gè)請求者(也就是五個(gè)線(xiàn)程),每個(gè)請求者連續請求兩次,下面的章節介紹了詳細的操作步驟。
增加負載信息設置
這一步,我們將向測試計劃中增加相關(guān)負載設置,是Jmeter知道我們需要模擬五個(gè)請求者,每個(gè)請求者在測試過(guò)程中連續請求兩次。詳細步驟如下:
1. 選中可視化界面中左邊樹(shù)的Test Plan節點(diǎn),單擊右鍵,選擇Add'Thread Group,界面右邊將會(huì )出現他的設置信息框。
2. Thread Group有三個(gè)和負載信息相關(guān)的參數:
Number of Threads: 設置發(fā)送請求的用戶(hù)數目
Ramp-up period: 每個(gè)請求發(fā)生的總時(shí)間間隔,單位是秒。比如你的請求數目是5,而這個(gè)參數是10,那么每個(gè)請求之間的間隔就是10/5,也就是2秒
Loop Count: 請求發(fā)生的重復次數,如果選擇后面的forever(默認),那么 請求將一直繼續,如果不選擇forever,而在輸入框中輸入數字,那么請求將重復 指定的次數,如果輸入0,那么請求將執行一次。
根據我們演示例子的設計,我們應該將Number of Threads設置為5,Ramp-up period設置為0(也就是同時(shí)并發(fā)請求),不選中forever,在Loop Count后面的輸入框中輸入2,設置后的屏幕截圖如下:
增加默認Http屬性(可選)
實(shí)際的測試工作往往是針對同一個(gè)服務(wù)器上Web應用展開(kāi)的,所以Jmeter提供了這樣一種設置, 在默認Http屬性設置需要被測試服務(wù)器的相關(guān)屬性,以后的http請求設置中就可以忽略這些相同參數的設置,減少設置參數錄入的時(shí)間。
我們這里將采用這種屬性。你可以通過(guò)下面的步驟來(lái)設置默認http屬性:
1. 選中可視化界面中左邊樹(shù)的Test Plan節點(diǎn),單擊右鍵,選擇Add'config element'http request defaults,界面右邊將會(huì )出現他的設置信息框。
2. 默認http屬性的主要參數說(shuō)明如下:
protocal:發(fā)送測試請求時(shí)使用的協(xié)議
server name or ip:被測試服務(wù)器的ip地址或者名字
path: 默認的起始位置。比如將path設置為/jmeter,那么所有的http請求的url中都將增加/jmeter路徑。
port number: 服務(wù)器提供服務(wù)的端口號
我們的測試計劃將針對本機的Web服務(wù)器上的Web應用進(jìn)行測試,所以protocal應該是http,ip使用localhost,因為這個(gè)web應用發(fā)布的context路徑是/jmeter,所以這里的path設置為/jmeter,因為使用Tomcat服務(wù)器,所以port number是8080。設置后的屏幕截圖如下:
增加Http請求
現在我們需要增加http請求了,他也是我們測試的內容主體部分。你可以通過(guò)下面的步驟來(lái)增加性的http請求:
1. 選中可視化界面中左邊樹(shù)的Thread Group節點(diǎn),單擊右鍵,選擇Add'sampler'http request,界面右邊將會(huì )出現他的設置信息框。
2. 他的參數和2.5中介紹的http屬性差不多,增加的屬性中有發(fā)送http時(shí)方法的選擇,你可以選擇為get或者post。
我們現在增加兩個(gè)http 請求,因為我們設置了默認的http屬性,所以和默認http屬性中相同的屬性不再重復設置。設置后的屏幕截圖如下:
增加Listener
增加listener是為了記錄測試信息并且可以使用Jmeter提供的可視化界面查看測試結果,里面有好幾種結果分析方式可供選擇,你可以根據自己習慣的分析方式選擇不同的結果顯示方式,我們這里使用表格的形式來(lái)查看和分析測試結果。你可以通過(guò)下面的步驟來(lái)增加listener:
1. 選中可視化界面中左邊樹(shù)的Test Plan節點(diǎn),單擊右鍵,選擇Add'listener'view result in table,界面右邊將會(huì )出現他的設置信息和結果顯示框。
2. 你可以設置界面上面的filename屬性設置將測試結果保存到某個(gè)文件中界面下面將使用表格顯示測試結果,表格的第一列sampleno顯示請求執行的順序和編號,url顯示請求發(fā)送的目標,sample-ms列顯示這個(gè)請求完成耗費的時(shí)間,最后的success列顯示改請求是否成功執行。
界面的最下面你還可以看到一些統計信息,最關(guān)心的應該是Average吧,也就是相應的平均時(shí)間。
開(kāi)始執行測試計劃
現在你可以通過(guò)單擊菜單欄run -> Start開(kāi)始執行測試計劃了。下面這兩個(gè)圖是作者第一次、第二次執行該測試計劃的結果圖:
大家可以看到第一次執行時(shí)的幾個(gè)大時(shí)間值均來(lái)自于jsp request,這可以通過(guò)下面的理由進(jìn)行解釋?zhuān)簀sp執行前都需要被編譯成.class文件。所以第二次的結果才是正常的結果。
JMeter用于進(jìn)行供能或者性能測試,通過(guò)使用JMeter提供的供能,我們可以可視化的制定測試計劃:包括規定使用什么樣的負載、測試什么內容、傳入的參數,同時(shí),他提供了好多種圖形化的測試結果顯示方式,使我們能夠簡(jiǎn)單的開(kāi)始測試工作和分析測試結果。
本文中,作者根據自己的使用經(jīng)驗,詳細演示了如何使用JMeter來(lái)進(jìn)行Web測試的全部過(guò)程,簡(jiǎn)單的介紹了JMeter提供測試結果的圖形化顯示界面中相關(guān)參數的含義。希望能夠幫助大家學(xué)會(huì )使用JMeter的基本知識,同時(shí),大家可以參考這個(gè)過(guò)程和JMeter的幫助文檔來(lái)實(shí)現對java對象、數據庫等的測試過(guò)程。
JMeter測試講解
本文介紹了 JMeter 相關(guān)的基本概念。并以 JMeter 為例,介紹了使用它來(lái)完成最常用的三種類(lèi)型服務(wù)器,即 Web 服務(wù)器、數據庫服務(wù)器和消息中間件,壓力測試的方法、步驟以及注意事項。
講到測試,人們腦海中首先浮現的就是針對軟件正確性的測試,即常說(shuō)的功能測試。但是軟件僅僅只是功能正確是不夠的。在實(shí)際開(kāi)發(fā)中,還有其它的非功能因素也起著(zhù)決定性的因素,例如軟件的響應速度。影響軟件響應速度的因素有很多,有些是因為算法不夠高效;還有些可能受用戶(hù)并發(fā)數的影響。
在眾多類(lèi)型的軟件測試中,壓力測試正是以軟件響應速度為測試目標,尤其是針對在較短時(shí)間內大量并發(fā)用戶(hù)的訪(fǎng)問(wèn)時(shí),軟件的抗壓能力。本文以 JMeter 為例,介紹了如何使用它來(lái)完成常用的壓力測試:Web 測試、數據庫測試和 JMS 測試。
JMeter 的主要測試組件總結如下:
1. 測試計劃是使用 JMeter 進(jìn)行測試的起點(diǎn),它是其它 JMeter 測試元件的容器。
2. 線(xiàn)程組代表一定數量的并發(fā)用戶(hù),它可以用來(lái)模擬并發(fā)用戶(hù)發(fā)送請求。實(shí)際的請求內容在Sampler中定義,它被線(xiàn)程組包含。
3. 監聽(tīng)器負責收集測試結果,同時(shí)也被告知了結果顯示的方式。
4. 邏輯控制器可以自定義JMeter發(fā)送請求的行為邏輯,它與Sampler結合使用可以模擬復雜的請求序列。
5. 斷言可以用來(lái)判斷請求響應的結果是否如用戶(hù)所期望的。它可以用來(lái)隔離問(wèn)題域,即在確保功能正確的前提下執行壓力測試。這個(gè)限制對于有效的測試是非常有用的。
6. 配置元件維護Sampler需要的配置信息,并根據實(shí)際的需要會(huì )修改請求的內容。
7. 前置處理器和后置處理器負責在生成請求之前和之后完成工作。前置處理器常常用來(lái)修改請求的設置,后置處理器則常常用來(lái)處理響應的數據。
8. 定時(shí)器負責定義請求之間的延遲間隔。
JMeter的使用非常的容易,在 ONJava.com 上的文章 Using JMeter 提供了一個(gè)非常好的入門(mén)。
常用測試
壓力測試不同于功能測試,軟件的正確性并不是它的測試重點(diǎn)。它所看重的是軟件的執行效率,尤其是短時(shí)間內訪(fǎng)問(wèn)用戶(hù)數爆炸性增長(cháng)時(shí)軟件的響應速度,壓力測試往往是在功能測試之后進(jìn)行的。在實(shí)際的開(kāi)發(fā)過(guò)程中,軟件潛在的效率瓶頸一般都是那些可能有多個(gè)用戶(hù)同時(shí)訪(fǎng)問(wèn)的節點(diǎn)。
就目前 Java EE 的平臺下開(kāi)發(fā)的軟件來(lái)說(shuō),這種節點(diǎn)通??赡苁牵篧eb 服務(wù)器、數據庫服務(wù)器和 JMS 服務(wù)器。它們都是請求主要發(fā)生的地點(diǎn),請求頻率較其它的節點(diǎn)要高,而且處于請求序列的關(guān)鍵路徑之上。如果它們效率無(wú)法提高的話(huà),對于整個(gè)軟件的效率有致命的影響。而且在這些節點(diǎn)上一般都會(huì )發(fā)生較大規模的數據交換,有時(shí)其中還包含有業(yè)務(wù)邏輯處理,它們正是在進(jìn)行壓力測試時(shí)首先需要考慮的。
本文以這三種節點(diǎn)為例,介紹如何使用 JMeter 來(lái)完成針對于它們的壓力測試。
服務(wù)器
對于大多數的項目來(lái)說(shuō),并不會(huì )自行開(kāi)發(fā)一個(gè)Web服務(wù)器,因此Web服務(wù)器壓力測試的對象實(shí)際就是--發(fā)布到Web服務(wù)器中的軟件。最簡(jiǎn)單的Web測試計劃只需要三個(gè) JMeter 的測試元件,如下圖:
其中:
在線(xiàn)程組中定義線(xiàn)程數、產(chǎn)生線(xiàn)程發(fā)生的時(shí)間和測試循環(huán)次數。
在http請求中定義服務(wù)器、端口、協(xié)議和方法、請求路徑等。
表格監聽(tīng)器負責收集和顯示結果。
這種設置對于包含了安全機制的 web 應用是不夠的,典型的 web 應用一般都會(huì ):
1. 有一個(gè)登錄頁(yè),它是整個(gè)應用的入口。當用戶(hù)登錄之后,應用會(huì )將用戶(hù)相關(guān)的安全信息放到 session 中。
2. 有一個(gè) filter,它攔截請求,檢查每個(gè)請求相關(guān)的 session 中是否包含有用戶(hù)安全信息。如果沒(méi)有,那么請求被重定向到登錄頁(yè),要求用戶(hù)提供安全信息。
在這種配置下應用上面的測試計劃,那么除了登錄頁(yè)之外的其它請求都將因為缺少用戶(hù)安全信息,而使請求實(shí)際定位到登錄頁(yè)。如果不加斷言,那么在監聽(tīng)器看來(lái)所有的請求都是成功。而實(shí)際上,這些請求最終都沒(méi)有到達它們應該去的地方。顯然,這種測試結果不是我們所期望的。
為了成功的測試,至少有2種方法:
方法一,去掉程序的安全設置,如filter,使得不需要用戶(hù)安全信息也能訪(fǎng)問(wèn)受限內容;
方法二,不修改程序,使用JMeter提供的"Http URL重寫(xiě)修飾符"或"Http Cookie管理器"。
對于第一種方法,有其局限性:
需要修改程序配置,如去掉web.xml中關(guān)于安全filter的設置。需要維護多個(gè)版本的web.xml,如壓力測試和功能測試分別各自的web.xml,增加了維護成本,而且有可能會(huì )在測試之后忘記將web.xml修改回來(lái)。
對于一些需要用戶(hù)安全信息的頁(yè)面無(wú)能為力,如某些業(yè)務(wù)審計操作需要用戶(hù)安全信息來(lái)記錄。因為缺少這樣的信息,注定了測試的失敗。如果解決為了這個(gè)問(wèn)題進(jìn)一步的修改程序,那么因為存在多個(gè)版本的程序,那么其維護難度將大大增加。
雖然,第二種方法配置難度增加了,但是它不用修改程序。而且還可將測試計劃保存成文件,以便重復使用。因此,選用第二種方法是較為理想的做法。下面以一個(gè)簡(jiǎn)化的例子說(shuō)明使用方法二的配置步驟。
1. 例子由以下幾個(gè)文件組成:
AuthorizenFilter.java,過(guò)濾器負責檢驗session中是否存在用戶(hù)信息。如果沒(méi)有,那么就轉向到 login.jsp。它的主要方法 doFilter 內容如下:
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
HttpSession session= req.getSession();
User user = (User)session.getAttribute("user");
if(null == user){
String uri= req.getRequestURI();
//如果請求頁(yè)是登錄頁(yè),不轉向
if( uri.equalsIgnoreCase("/gWeb/login.jsp")){
chain.doFilter(request, response);
} else{
res.sendRedirect("/gWeb/login.jsp");
}
}else{
chain.doFilter(request, response);
}
}
User.java,用戶(hù)類(lèi)負責記錄用戶(hù)的信息。為了簡(jiǎn)化,這里的登錄操作只允許指定用戶(hù)名和密碼。主要內容如下:
public class User {
private String user;
private String pwd;
public User(String user, String pwd) {
this.user = user;
this.pwd = pwd;
}
public boolean login(){
return user.equals("foxgem") && pwd.equals("12345678");
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
}
Login.jsp 和welcome.jsp。其中 login.jsp 負責生成 User 對象,并調用 User 的login。當 login 返回為 true 時(shí)轉向到 welcome.jsp。其驗證部分的代碼:
web.xml,配置 filter 攔截所有訪(fǎng)問(wèn) JSP 頁(yè)面的請求:
authorizen
org.foxgem.jmeter.AuthorizenFilter
authorizen
*.jsp
2. 創(chuàng )建如下結構的Web測試計劃:
其中主要測試元件說(shuō)明如下:
http請求默認值負責記錄請求的默認值,如服務(wù)器、協(xié)議、端口等。
第一個(gè)http請求,請求login.jsp,并附加驗證所需要的參數(user=foxgem,pwd=12345678,Submit=Submit);其包含的響應斷言驗證url中包含"welcome.jsp",這一點(diǎn)可以從程序中反應。
第二個(gè)http請求,請求是welcome.jsp;其包含的響應斷言驗證響應文本中包含"foxgem",它是welcome.jsp頁(yè)面邏輯的一部分。
http cookie管理器負責管理整個(gè)測試過(guò)程中使用的cookie,它不需要設置任何屬性。
循環(huán)控制器設置發(fā)送第二個(gè)請求的循環(huán)次數,表格監聽(tīng)器負責收集和顯示第二個(gè)請求的測試結果。
啟動(dòng)測試計劃之后,執行的順序是:首先,第一個(gè)請求登錄頁(yè)進(jìn)行登錄;成功登錄之后,使用循環(huán)控制器執行第二個(gè)請求。請求welcome.jsp時(shí),響應斷言用來(lái)驗證是否確實(shí)是welocme.jsp來(lái)處理請求,而不是因為其它頁(yè)。在這個(gè)測試計劃中需要注意的是http cookie管理器。正是由于它的作用,使得第二個(gè)請求能順利的發(fā)送到welcome.jsp進(jìn)行處理,而不是因為缺少用戶(hù)安全信息轉發(fā)到login.jsp。
在這個(gè)例子中,我們并沒(méi)有在程序中使用cookie(使用的是session),那么http cookie管理器怎么會(huì )起作用呢?這是因為在servlet/jsp規范中對于session的狀態(tài)跟蹤有2種方式:
使用cookie,保留和傳遞sessionid。它不要求程序對于url有什么特殊的處理,但是要求瀏覽器允許cookie。在這個(gè)例子中,就是這種情形。
使用url重寫(xiě),每次顯式的在瀏覽器和服務(wù)器之間傳遞sessionid。它要求程序對url進(jìn)行編碼,對瀏覽器沒(méi)有要求。
對于第二種情形,可以使用JMeter前置管理器中的http url重寫(xiě)修飾符來(lái)完成。對于Tomcat,Session參數是jsessionid,路徑擴展使用";"。使用url編碼時(shí)需要注意,必須將瀏覽器的cookie功能關(guān)閉。因為url編碼函數,如encodeURL,會(huì )判斷是否需要將sessionid編碼到url中。當瀏覽器允許cookie時(shí),就不會(huì )進(jìn)行編碼。
如果cookie而不是session來(lái)保存用戶(hù)安全信息,那么直接使用http cookie管理器就行了。此時(shí),需要將使用的cookie參數和值直接寫(xiě)到管理器中,由它負責管理。對于其它的cookie使用,也是如此操作。
登錄問(wèn)題解決之后,對于 Web 服務(wù)器的測試就沒(méi)什么難點(diǎn)了。剩下的就是根據實(shí)際需要,靈活運用相關(guān)的測試組件搭建編寫(xiě)的測試計劃。(當然,對于安全問(wèn)題還有其它的使用情景。在使用時(shí)需要明確:JMeter 是否支持,如果支持使用哪種測試組件解決。)
數據庫服務(wù)器在大多數企業(yè)項目中是不可缺少的,對于它進(jìn)行壓力測試是為了找出:數據庫對象是否可以有效地承受來(lái)自多個(gè)用戶(hù)的訪(fǎng)問(wèn)。這些對象主要是:索引、觸發(fā)器、存儲過(guò)程和鎖。通過(guò)對于SQL語(yǔ)句和存儲過(guò)程的測試,JMeter 可以間接的反應數據庫對象是否需要優(yōu)化。
JMeter 使用 JDBC 發(fā)送請求,完成對于數據庫的測試。一個(gè)數據庫測試計劃,建立如下結構即可:
其中:
JDBC連接配置,負責配置數據庫連接相關(guān)的信息。如:數據庫url、數據庫驅動(dòng)類(lèi)名、用戶(hù)名和密碼等等。在這些配置中,"綁定到池的變量名"(Variable Name Bound to Pool)是一個(gè)非常重要的屬性,這個(gè)屬性會(huì )在JDBC請求中被引用。通過(guò)它, JDBC請求和JDBC連接配置建立關(guān)聯(lián)。(測試前,請將所需要的數據庫驅動(dòng)放到JMeter的classpath中)。
JDBC請求,負責發(fā)送請求進(jìn)行測試。
圖形結果,收集顯示測試結果。
在實(shí)際的項目中,至少有2種類(lèi)型的JDBC請求需要關(guān)注:select語(yǔ)句和存儲過(guò)程。前者反應了select語(yǔ)句是否高效,以及表的索引等是否需要優(yōu)化;后者則是反應存儲過(guò)程的算法是否高效。它們如果效率低下,必然會(huì )帶來(lái)響應上的不盡如人意。對于這兩種請求,JDBC請求的配置略有區別:
Select語(yǔ)句
存儲過(guò)程
如果對于Oracle,如果測試的是函數,那么也可以使用select語(yǔ)句來(lái)進(jìn)行配置,此時(shí)可以使用:select 函數(入參) from dual形式的語(yǔ)句來(lái)測試,其中dual是oracle的關(guān)鍵字,表示啞表。對于其它廠(chǎng)商的數據庫產(chǎn)品,請查找手冊。
服務(wù)器
MOM 作為消息數據交換的平臺,也是影響應用執行效率的潛在環(huán)節。在 Java 程序中,是通過(guò) JMS 與 MOM 進(jìn)行交互的。作為 Java 實(shí)現的壓力測試工具,JMeter 也能使用 JMS 對應用的消息交換和相關(guān)的數據處理能力進(jìn)行測試。這一點(diǎn)應該不難理解,因為在整個(gè)測試過(guò)程中,JMeter 測試的重點(diǎn)應該是消息的產(chǎn)生者和消費者的本身能力,而不是 MOM本身。
根據 JMS 規范,消息交換有2種方式:發(fā)布/訂閱和點(diǎn)對點(diǎn)。JMeter針對這兩種情形,分別提供了不同的Sampler進(jìn)行支持。以下MOM我們使用ActiveMQ 3.2.1,分別描述這兩種消息交換方式是如何使用 JMeter 進(jìn)行測試。
1. 測試前的準備(兩種情況都適用)
JMeter 雖然能使用 JMS 對 MOM 進(jìn)行測試,但是它本身并沒(méi)有提供JMS需要使用的包。因此,在測試之前需要將這些包復制到 %JMETER_HOME%/lib 下。對于 ActiveMQ 來(lái)說(shuō),就是復制 %ACTIVEMQ_HOME%/lib。%ACTIVEMQ_HOME%/optional 是可選包,可根據實(shí)際情況來(lái)考慮是否復制。
JMeter 在測試時(shí)使用了 JNDI,為了提供 JNDI 提供者的信息,需要提供 jndi.properties。同時(shí)需要將 jndi.properties 放到 JMeter 的 classpath 中,建議將它與 bin下的 ApacheJMeter.jar 打包在一起。對于 ActiveMQ,jndi.properties 的示例內容如下:
java.naming.factory.initial = org.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url = tcp://localhost:61616
#指定connectionFactory的jndi名字,多個(gè)名字之間可以逗號分隔。
#以下為例:
#對于topic,使用(TopicConnectionFactory)context.lookup("connectionFactry")
#對于queue,(QueueConnectionFactory)context.lookup("connectionFactory")
connectionFactoryNames = connectionFactory
#注冊queue,格式:
#queue.[jndiName] = [physicalName]
#使用時(shí):(Queue)context.lookup("jndiName"),此處是MyQueue
queue.MyQueue = example.MyQueue
#注冊topic,格式:
# topic.[jndiName] = [physicalName]
#使用時(shí):(Topic)context.lookup("jndiName"),此處是MyTopic
topic.MyTopic = example.MyTopic
2. 發(fā)布/訂閱
在實(shí)際測試時(shí),發(fā)布者和訂閱者并不是需要同時(shí)出現的。例如,有時(shí)我們可能想測試單位時(shí)間內消息發(fā)布者的消息產(chǎn)生量,此時(shí)就不需要消息發(fā)布者,只需要訂閱者就可以了。本例為了說(shuō)明這兩種Sampler的使用,因此建立如下的測試計劃:
其中JMS Publisher和JMS Subscriber的屬性:選擇"使用jndi.properties",連接工廠(chǎng)是connectionFactory,主題是MyTopic,其它使用默認配置。對于JMS Publisher,還需提供測試用的文本消息。
啟動(dòng)ActiveMQ,運行測試計劃。如果配置正確,那么與ActiveMQ成功連接之后,在JMeter的后臺會(huì )打印出相關(guān)信息。在測試過(guò)程中,JMeter 后臺打印可能會(huì )出現java.lang.InterruptedException 信息,這個(gè)是正?,F象,不會(huì )影響測試過(guò)程和結果。這一點(diǎn)可以從 bin 下的 jmeter.log 看出。
3. 點(diǎn)對點(diǎn)
對于點(diǎn)對點(diǎn),JMeter只提供了一種Sampler:JMS Point-to-Point。在例子中,建立如下圖的測試計劃:
其中:Communication style是Request Only。對于另一種風(fēng)格:Request Response,會(huì )驗證收到消息的JMS Header中的JMSCorrelationID,以判斷是否是對請求消息的響應。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
軟件測試實(shí)驗三Jmeter
使用 JMeter 完成常用的壓力測試
Jmeter對HTTP請求壓力測試、并發(fā)測試的簡(jiǎn)單使用方法
jmeter壓測學(xué)習13-添加配置元件之HTTP請求默認值
2020非常全的接口測試面試題及參考答案-軟件測試工程師沒(méi)有碰到算我輸!
JMeter Web測試--初學(xué)指南【轉】
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久