一、loadrunner通过代理录制app脚本
随着手机APP的广泛应用,手机应用的使用已占据了大量的市场份额,尤其是优秀的手机APP,动辄用户过千万过亿,对于如此庞大的用户量,我们在开发APP时,也需要对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
步骤:
转载自:http://www.cnblogs.com/mxqh2016/p/6016866.html
要使用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服务器系统资源
下载地址: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地址,然后选择需要监控的指标就可以了。
二、如何启动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、无需认证就可以被连接)
- -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 -cp . -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.managent.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false JConsoleTest
2、另外一台机器进行连接
可以直接使用命令:
- 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
这里可以有一些额外的操作。
插件
- jconsole -pluginpath C:\Java\jdk1.6.0_22\demo\management\JTop\JTop.jar
一看便知,是个什么东西。