一、loadrunner通過代理錄制app腳本
1、啟動CCProxy,進入設置頁面。如下圖,修改端口號為7777(其他未被占用的端口號均可),確定。
2、查詢安裝了loadrunner和CCProxy的電腦IP地址,進入dos頁面,輸入ipconfig查詢本機IP地址
3、啟動Virtual User Generator,創建新腳本,點擊錄制時,設置如下圖示,監聽端口填寫之前配置的端口號即可。
完成以上配置,即可進行手機APP的腳本錄制。
二、loadrunner錄制App腳本
因目前網上最新只有loadrunner11破解,但11又不支持手機代理錄制app腳本,所以牽涉到如何用loadrunner11來錄制手機app腳本問題,網上找了很多方法,都不同程度出現各種問題,最終問題解決,
記錄如下:
原料:
1. Loadrunner11,下載地址:http://pan.baidu.com/s/1i4NHwTv
2. loadrunner11補丁包,下載地址:http://pan.baidu.com/s/1ciUtYI
3. loadrunner11破解包,下載地址:http://pan.baidu.com/s/1boYcVT1
步驟:
要使用Loadrunner11錄制手機腳本,需要先搭建好測試環境:
· 能夠正常使用的LoadRunner11;
· 安裝一個LR11的補丁包,用於手機錄制;
· pc端和手機端的網絡在同一個網段。
這里特別說明一下,電腦需要可以提供熱點(用於手機連接),如果是台式電腦不能提供熱點,那么可以使用隨身WIFI。筆記本電腦可以通過安裝
360免費WiFi等來達到提供熱點的目的。
【測試環境准備】
第一步:安裝LR11
第二步:安裝LR11錄制手機腳本補丁包,qfelr11patch4.msp,下載好之后,直接點擊安裝,沒有特別的要求。
第三步:如果在新建腳本頁面,看到Mobile App(HTTP/HTML),表示補丁包成功安裝。
圖一
【測試demo】
第一步:新建一個“Mobile App(HTTP/HTML)”協議的腳本;
第二步:點擊 ,選擇錄制模式:選擇“Record and Analyze”,如下圖中的第一個,點擊【下一步】;
圖二
注:此處選擇3recording wizard,可以使用安卓模擬器的方法進行錄制,具體見方法三
第三步:Host URL填寫“http://localhost”,Port為一個端口號,需要使用本機目前未被占用的端口號,點擊【Connect】。PS:可以使用命令行“netstat”查看未被占用端口,點擊“Connect”,此時可能出現錯誤“unexpected error encountered with mobile snifferagent......”,解決辦法:下載winpcap並安裝
圖三
第四步:選擇Record network,可以看到Record network有多個,根據每台電腦不同,需要選擇的也不同,只能通過每個都進行錄制一下來選擇對應的,我的電腦是第三個。
圖四
第五步:選擇Record into,Vuser_init\Action\Vuser_end三選一,一般選擇Action,根據具體情況而定。
第六步:電腦放出熱點,確保手機連接的是電腦的這個熱點,並且只有要這台手機連接這個熱點!!
第七步:點擊【Start Recording】之后,Recording的狀態變為Stop Recording狀態,就可以開始進行要手機操作了。
第八步:要錄制的手機操作結束之后,點擊【Stop Recording】,然后電腦會彈出一個抓取的數包,將其保存。
第九步:點擊【下一步】,Capture 處選擇剛才保存的pcap文件,IP Host處填寫手機此時的IP地址,這個需要在手機里查看,並且確保正確!
第十步:點擊【完成】,這是就會自動生成LR腳本了,如果此時錄制的腳本為空,那可能是Record network選擇錯了,重新回到第四步,選擇另一個網絡,直到錄制腳本不為空!
三、jmeter錄制腳本進行app壓力測試
1.電腦啟動jmeter
2.jmeter在測試計划新建線程組.
3.在工作台新建http代理服務器
4.配置HTTP代理服務器
5.設置IE代理到本地
6、手機wifi設置代理連接到PC
7、啟動jmeter的HTTP代理服務器
8、現在電腦隨便點開一個網頁測試是否能抓到包(如果能掛包就去掉IE的代理,設置IE是為了驗證HTTP代理服務器是否生效,若日后熟練可以省去這一步)
9、一切正常,手機開始啟動app執行操作
10、錄制成功后,停止HTTP代理服務器,然后再進行回放或者壓力測試。
四、Loadrunner中通過nmon監控Linux服務器系統資源
在實際的測試過程中,Loadrunner監控Linux系統資源不太穩定,經常斷開,所以一般采用下面的工具進行監控。
下載地址:http://download.csdn.net/detail/hyzhou1121/3980069
nmon工具是
IBM提供的免費的監控AIX系統與Linux系統資源的工具。該工具可將服務器的系統資源耗用情況收集起來並輸出一個特定的文件,並可利用Excel分析工具進行數據的統計分析,非常利於Unix或者Linux系統的性能數據分析。下面分步介紹如何使用該工具:
安裝nmon
首先在IBM的官方網上下載nmon工具,下載時注意要下載對應的版本。我們這里以red hat5為例,下載的是nmon_x86_12a.zip版本,該版本支持redhat。下載后解壓,改名為nmon並上傳到Linux中。
進入nmon目錄,查看nmon文件下各文件的權限。
[root@localhost nmon]# ls -l
total 1212
-rw-r--r-- 1 hyzhou hyzhou 167781 Feb 12 2009 nmon_x86_fedora10
-rw-r--r-- 1 hyzhou hyzhou 168875 Feb 11 2009 nmon_x86_opensuse10
-rw-r--r-- 1 hyzhou hyzhou 152131 Feb 11 2009 nmon_x86_rhel45
-rw-r--r-- 1 hyzhou hyzhou 167957 Feb 13 2009 nmon_x86_rhel52
-rw-r--r-- 1 hyzhou hyzhou 174171 Feb 12 2009 nmon_x86_sles10
-rw-r--r-- 1 hyzhou hyzhou 154107 Feb 14 2009 nmon_x86_sles9
-rw-r--r-- 1 hyzhou hyzhou 183215 Feb 13 2009 nmon_x86_ubuntu810
|
從圖中可以看出,相關文件的權限僅有只讀權限,這樣在執行命令的時候可能會存在沒有權限的問題,為了能夠正常使用nmon工具,我們需要修改文件的權限。這里只修改nmon_x86_rhel52的權限,為了方便,直接改成777。
#chmod u+x nmon_x86_rhel52
修改完成后,就完成了nmon工具安裝。
使用nmon工具
nmon工具使用非常簡單。首先啟動該工具,在nmon目錄下輸入
#./nmon_x86_rhel52
即可,啟動后的顯示效果如圖所示(顯示了相關幫助信息):
單個字母表示對應監控點的快捷鍵,只要輸入相應的字母,即可顯示相應的資源耗用情況,輸入c、m、d后顯示效果如下(顯示了cpu、內存、磁盤的使用情況):
輸出文件
上面介紹的只是在服務器監控,我們真正需要的是如何收集這些數據並處理分析它們。nmon提供了一個nmon_analyser的分析工具,可以利用Excel進行統計結果分析。在測試的時候,可以使用下列命令進行數據的輸出:
#./nmon_x86_rhel52 -fT -s 5 -c 5
命令的含義是,-f輸出文件,-T輸出最耗自願的進程,-s收集數據的時間間隔,-c收集次數。比如,測試場景需要執行20分鍾,那么需要每隔10秒監控Linux系統資源就可以寫成:
#./nmon_x86_rhel52 -fT -s 10 -c 120
完成后會在當前目錄生成一個.nmon的文件,如下:
localhost_111228_1919.nmon
nmon輸出文件的命名方式是服務器名_日期時間.nmon,我們在測試結束后,可以到當前目錄下提取這些文件。
如果想在后台運行nmon,則可用:
#nohup ./nmon_x86_rhel52 -fT -s 10 -c 120
命令在后台啟動相關的進程運行nmon工具。
如果想結束該進程,可使用:
#ps -eaf|grep *nmon*
命令查出該進程ID,然后使用:
#kill -9 進程ID
命令殺掉進程即可。
分析數據
利用nmon工具收集到系統資源的相關數據后,就可以使用nmon工具的配套軟件nmon analyser v33g.xls(工具可能因版本不同而不同)進行數據分析了。這個工具使用非常簡單,分析時只需要打開相應的.nmon文件即可。
打開nmon analysis v33g.xls,如圖:
如果報安全級別過高錯誤,則需要修改宏的安全級別設置。
單擊Analyse nmon data按鈕,選擇需要分析的nmon文件(過程中需要保存Execl文件,輸入一個容易分辨的文件名即可)。
保存后的Excel文件如圖:
上圖列出了系統部分資源信息,在實際過程中可根據需要增減,nmon的使用到此就介紹完了。
五、loadrunner直接監控windows系統資源
1、監視連接前的准備
1)進入被監視windows系統,開啟以下二個服務Remote Procedure Call(RPC) 和Remote Registry Service (開始—)運行 中輸入services.msc,開啟對應服務即可)。
2)在被監視的WINDOWS機器上:右擊我的電腦,選擇管理->共享文件夾->共享 在這里面要有C$這個共享文件夾 (要是沒有自己手動加上)。
3)在安裝LR的機器上,開始—》運行,輸入 \\被監視機器IP\C$ 然后輸入管理員帳號和密碼,如果能看到被監視機器的C盤了,就說明你得到了那台機器的管理員權限,可以使用LR去連接了。(LR要連接WINDOWS機器進行監視要有管理員帳號和密碼才行。)
問題:在執行步驟3)時,輸入 \\被監視機器IP\C$,出現不能以administrator身份訪問被監控系統(若采用這種方式用LR對其監控的話,會提示:“找不到網絡路徑”)的情況,現象就是用戶名輸入框是灰色的,並且默認用戶是guest。
解決辦法:這是安全策略的設置問題(管理工具 -> 本地安全策略 -> 安全選項 -> "網絡訪問:本地帳戶的共享和安全模式")。默認情況下,XP的訪問方式是"僅來賓"的方式,如果你訪問它,當然就固定為Guest來訪問,而guest 賬戶沒有監控的權限,所以要把訪問方式改為“經典”模式,這樣就可以以administrator的身份登陸了。修改后,再次執行步驟3),輸入管理員用戶名和密碼,就可以訪問被監控機器C盤了。若這樣都不行的話(可能是其它問題引起的),那只好采取別的方法了。在服務器的機子上,通過windows自帶的“性能日志和警報”下的“計數器日志”中新增加一個監控日志(管理工具—性能—性能日志和警報),配置好日志,也能監控服務器的cpu、memory、disk等計數器。當然,這種方法就不是用LR來監控了。
2、用LR監視windows的步驟
在controller 中,雙擊左邊樹中的Windows Resources,在右邊的Windows Resources圖里點右鍵,選擇Add Measurements,添加被監控windows的IP地址,選擇所屬系統,下面的各種監控指標是系統默認的,可以點下面的刪除去掉一些,想加一些新的話點下面那個Add,然后選擇所屬分類下的系統指標,然后點close就把那個指標添加進去了,一般使用以下兩個指標
1)監控CPU利用率(% ProcessorTime)
指標描述:% Processor Time指處理器執行非閑置線程時間的百分比。這個計數器設計成用來作為處理器活動的主要指示器。它通過在每個時間間隔中衡量處理器用於執行閑置處理線程的時間,並且用100%減去該值得出。可將其視為范例間隔用於做有用工作的百分比。
指標范圍:根據應用系統情況,在80%±5%范圍內波動為宜。過低,則服務器CPU利用率不高;過高,則CPU可能成為系統的處理瓶頸
2)內存指標Availiable bytes(memory)
指標描述:顯示出當前空閑的物理內存總量,它等於分配給待機(緩存的)、空閑和零分頁列表內存的總和。空閑內存可以馬上使用;清零內存是由零值填滿的內存頁,用來防止后續進程獲得舊進程使用的數據;待機內存是從進程工作集(其物理內存)中刪除然后進入磁盤的內存,但是該內存仍然可以收回。該指標僅顯示最后一次觀察到的值,不是平均值。
指標范圍:當這個數值變小時,Windows開始頻繁地調用磁盤頁面文件。如果這個數值很小,例如小於5 MB,系統會將大部分時間消耗在操作頁面文件上。一般要保留10%的可用內存。最低不能<4M,此值過小可能是內存不足或內存泄漏
六、loadrunner直接監控linux系統資源
1 准備工作
可以通過兩種方法驗證服務器上是否配置了rstatd守護程序:
①使用rup 10.130.61.203命令
它用於報告計算機的各種統計信息,其中就包括rstatd的配置信息,此處10.130.61.203是要監視的linux/Unix服務器的Ip,如果該命令返回相關的統計信息。則表示已經配置並且激活了rstatd守護進程;否則表示rstatd守護進程尚未被配置或有問題。
②使用#find / -name rpc.rstatd命令
該命令用於查找系統中是否存在rpc.rstatd文件,如果沒有,說明系統沒有安裝rstatd守護程序。如果服務器上沒有安裝rstatd程序(一般來說LINUX都沒有安裝),需要下載一個包才有這個服務,包名字是rpc.rstatd-4.0.1.tar.gz.這是一個源碼,需要編譯(http://sourceforge.net/projects/rstatd下載地址)
下載后,安裝步驟如下:
tar -xzvf rpc.rstatd-4.0.1.tar.gz
cd rpc.rstatd-4.0.1/
./configure —配置操作
make —進行編譯
make install —開始安裝
rpc.rstatd —啟動rstatd進程
2.安裝rsh,和rsh-server兩個服務包方法
a. 卸載rsh
# rpm –q rsh----------查看版本號
# rpm -e 版本號---------卸載該版本。
b.安裝
# rpm –ivh rsh-0.17-14.i386.rpm
# rpm –ivh rsh-server-0.17-14.i386.rpm
或者
# yum install rsh
# yum install rsh-server
# yum install rusers-server
在啟動rpc.rstatd時,會報錯“Cannot register service: RPC: Unable to receive; errno = Ction refused”。
解決方法如下:
# /etc/init.d ./portmap start
# /etc/init.d ./nfs start
然后再次啟動rpc.rstatd就好了。server
3、安裝xinetd服務
yum install xinetd.i386
/sbin/service xinetd restart
配置xinetd,它的主配置文件是/etc/xinetd.conf ,它里面內容是一些如下的基本信息:
#
# xinetd.conf
#
# Copyright (c) 1998-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.
#
defaults
{
log_type = FILE /var/log/xinetd.log
log_on_success = HOST EXIT DURATION
log_on_failure = HOST ATTEMPT
# only_from = localhost
instances = 30
cps = 50 10
#
# The specification of an interface is interesting, if we are on a firewall.
# For example, if you only want to provide services from an internal
# network interface, you may specify your internal interfaces IP-Address.
#
# interface = 127.0.0.1
}
includedir /etc/xinetd.d
|
我們這里需要修改的是/etc/xinetd.d/下的三個conf文件 rlogin ,rsh,rexec 這三個配置文件,打這三個文件里的disable = yes都改成 disable = no ( disabled 用在默認的 {} 中禁止服務)或是把# default: off都設置成 on 這個的意思就是在xinetd啟動的時候默認都啟動上面的三個服務!
說明:我自己在配置時,沒有disable = yes這項,我就將# default: off改為:default: on,重啟后(cd /etc/init.d/ ./xinetd restart)通過netstat -an |grep 514查看,沒有返回。然后,我就手動在三個文件中最后一行加入disable = no,再重啟xinetd,再使用netstat -an |grep 514查看,得到tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN結果,表明rsh服務器已經啟動。
①檢查rsh是否啟動: rsh監聽的TCP 是514。
[root@mg04 root]# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到514在監聽說明rsh服務器已經啟動。
②啟動rstatd:
# rpc.rstatd
# rpc.rquotad
確認啟動:
# rpcinfo -p
程序 版本 協議 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 826 status
100024 1 tcp 829 status
100001 5 udp 675 rstatd
100001 3 udp 675 rstatd
100001 2 udp 675 rstatd
100001 1 udp 675 rstatd
100011 1 udp 672 rquotad
100011 2 udp 672 rquotad
100011 1 tcp 675 rquotad
100011 2 tcp 675 rquotad
③啟動xinetd方法:
在suse linux如下操作:
cd /etc/init.d/
./xinetd restart
看到網上有的地方說使用如下命令:
# service xinetd reload
# /sbin/service xinetd rstart
確認啟動
# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
配置loadrunner unix監控輸入服務器ip即可 。在controller中,將UNIX resources拖放到右邊窗口里面,右擊鼠標選擇Add Measurements,添加被監控linux的IP地址,然后選擇需要監控的指標就可以了。
從Java 5開始 引入了 JConsole。JConsole 是一個內置 Java 性能分析器,可以從命令行或在 GUI shell 中運行。您可以輕松地使用 JConsole(或者,它更高端的 “近親” VisualVM )來監控 Java 應用程序性能和跟蹤 Java 中的代碼。
二、如何啟動JConsole
如果是從命令行啟動,使 JDK 在 PATH 上,運行 jconsole 即可。
如果從 GUI shell 啟動,找到 JDK 安裝路徑,打開 bin 文件夾,雙擊 jconsole 。
當分析工具彈出時(取決於正在運行的 Java 版本以及正在運行的 Java 程序數量),可能會出現一個對話框,要求輸入一個進程的 URL 來連接,也可能列出許多不同的本地 Java 進程(有時包含 JConsole 進程本身)來連接。如圖所示:
想分析那個程序就雙擊那個進程。
三、如何設置JAVA程序運行時可以被JConsolse連接分析
本地程序(相對於開啟JConsole的計算機),無需設置任何參數就可以被本地開啟的JConsole連接(Java SE 6開始無需設置,之前還是需要設置運行時參數 -Dcom.sun.management.jmxremote )
無認證連接 (下面的設置表示:連接的端口為8999、無需認證就可以被連接)
Java代碼
-Dcom.sun.management.jmxremote.port=8999 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false
如果考慮到安全因素,需要認證,需要安全連接,也是可以搞定的。參考:http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdenv
四、JConsole如何連接遠程機器的JAVA程序(舉例說明)
1、寫一個簡單的一直運行的JAVA程序,運行在某台機器上如(192.168.0.181)
Java代碼
java -cp . -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.managent.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false JConsoleTest
2、另外一台機器進行連接
可以直接使用命令:
Java代碼
jconsole.exe 192.168.0.181:8999
也可以在已經打開的JConsole界面操作 連接->新建連接->選擇遠程進程->輸入遠程主機IP和端口號->點擊“連接”,如圖:
然后就會進入分析界面:
性能分析
下面說說如何分析,如何使用這六個標簽
· 概述: Displays overview information about the Java VM and monitored values.
· 內存: 顯示內存使用信息
· 線程: 顯示線程使用信息
· 類: 顯示類裝載信息
· *VM摘要:*顯示java VM信息
· MBeans: 顯示 MBeans.
概述
概述很簡單沒啥說的,自己看看吧,不過值得一提的是對着圖點擊右鍵可以保存數據到CSV文件,以后可以使用其他工具來分析這些數據。
內存
這個比較有價值,參看堆內存,非堆內存,內存池的狀況總體內存的分配和使用情況以及不同的GC進行垃圾回收的次數和時間。可以手動進行GC查看內存變化。
在分析JAVA內存問題進行調優時候非常有用,你要學習JVM內存模型,之后會發現這里的每個值都具有意義。
GC的算法和參數對性能有顯著的影響,注意垃圾回收次數、時間、以及partial GC和full GC,調整你所使用的不同GC和以及各個GC下的參數,然后在這個視圖下觀察,以得到好的性能。
這里貼一下 Java HotSpot VM garbage collector 下generational GC 的各代的划分圖:
關於GC,可以參考:http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
線程
左下角顯示所有的活動線程(如果線程過多,可以在下面的過濾欄中輸入字符串過濾出你想要觀察的線程)。點擊某個顯示會顯示這個線程的名稱、狀態、阻塞和等待的次數、堆棧的信息。
統計圖顯示的是線程數目的峰值(紅色)和當前活動的線程(藍色)。
另外下面有個按鈕“檢測到死鎖”,有時候會有用處。
類
沒啥要說的。
VM摘要
也沒啥要說的,看看吧,內存狀況,操作系統...
MBean
這里可以有一些額外的操作。
插件
Java代碼
jconsole -plugihttp://www.51testing.com/html/80/n-3722680-2.htmlnpath C:\Java\jdk1.6.0_22\demo\management\JTop\JTop.jar
一看便知,是個什么東西。
轉自:http://www.51testing.com/html/80/n-3722680-2.html