asks_zhuang 发表于 2007-3-23 19:16:11

压力测试问题交流(silkperformer)

问题讨论
   集中或分布(单台主机或多台主机)产生压力得出的压力测试报告是否有较大的数据偏差?
答:取决于测试方案的设定;合理的测试方案不会引起较大的数据偏差。
一个合理而有效的测试方案(包括测试环境的部署),就是能够模拟真实的使用情况,把压力真正的传递到服务器端(Server)。所以考虑具体测试环境,是采用多台压力端(主机)还是单台主机,也要从这个角度出发---保证压力真正的到达服务器。
多台主机和单台主机的区别在于客户端资源(模拟),因为模拟每个用户的操作(虚拟用户:VU)都需要消耗压力机的资源, 包括CPU,Memory,网络资源;其中网络资源往往是最容易被忽略的。如果一个压力测试方案,在一台主机上(压力端)模仿50个VU,如果客户端资源都完全正常(CPU,Memory,Network).那么说明该测试方案是合理的;如果在同种情况下,CPU,memory正常;Network已经占用到了100%,那么说明网络存在瓶颈,一台电脑上已经不允许模拟50个用户,即测试方案不合理,需要更多的压力参与端。


SilkPerformer的最大脚本录制行数?

答:没有限制;我经历过的项目,曾经一个脚本超过5万行。
       在实际测试过程中,脚本的目的是模拟用户的交互过程(Transaction);
        脚本的实现方式也是一种编程语言;所以正如开发工具而言,代码一方面要实现功能,另外也要容易维护,易读。所以SilkPerformer中提供了Transaction,Timer,Function 等概念,完成对脚本的组织,实现脚本的功能性和可读性。

        分布式场景下是否可以较方便的产生出聚合于某个时间点后再同时并发产生压力的效果?
答: 当然可以。通过“集合点”的功能来达到目的。
       首先说明下,在分布式测试环境下(一台压力发起端,多台参与端),要求在某个固定时间点同时并发的情况很少。比如模仿100个并发用户(自始至终都是100个虚拟用户,即Silkperformer中的Steady压力模式),依次完成系统登陆,查询,新增三个交易(Transaction),客户为了要求更精确地并发,一般会要求精确模拟同时在同一时刻,50个用户(或者100个),同时进行新增交易;即,前面49个都在等待,当第50个用户到达后,同时开始新增交易。这就可以通过“Globalwait”函数,来实现。如果必须要求在固定的时间点,即2:00,开始并发,则需要通过if---else来判断实现。

        测试报告是否可以是中文的?
答: 可以。通过套用中文模版即可。
Silkperformer的报告是模版化,显示内容等都可以套用不同的模版来完成。如下,就是使用了中文模版后的报告。

图表 1:SilkPerformer中文报告

        脚本能支持的最大长度?
答:同SilkPerformer的最大脚本录制行数,没有限制。

        多协议组合录制脚本时,具体协议之间的限制,哪些协议能组合在一起?
答:协议组合建议具体情况,具体分析;要结合具体的情况。
基本的是,在SilkPerformer中,任何协议都可以和底层的TCP,UDP组合。而且,即使你选择了某种协议,SilkPerformer也可以识别出更高层次的协议。一个未知的应用,我们测试时候选择的是TCP协议,在实际的脚本录制过程中,会发现使用到了FTP,那么录制完成的脚本就是TCP,FTP的混合。
        能不能通过变相使用工具度量客户端显示时间,如果能具体如何测量?
答:牵涉到具体的应用。对WEB,ERP,Java,Net应用可以达到以上目的。
压力测试工具在测试过程,可以直接得到客户端每个请求发送到服务器端并得到响应的时间,这叫一个round trip时间。
        Round trip=网络传输时间+服务器处理时间
        网络传输=请求时间+响应时间
所以,对于“能触发服务器请求”的客户端操作,可以直接得到客户端显示时间等。
而对于WEB,ERP(Sibel,oracle Form),Java,Net等应用,因为SilkPerformer可以支持到“对象识别”一级的操作,所以,每个操作,即使没有触发到服务器请求,也可以被记录下来,得到响应时间。

        请详细介绍一下Web Services 协议下的XML/SOAP、.NET Explorer 和Java Explorer之间的不同和具体使用方法;
答:这是三种不同类型的应用。
Web Services,XML/SOAP是第一种应用,测试的是Web Service协议,该协议是以XML的格式通过SOAP(http)传输的。
Net Explorer应用是测试Net应用程序的,选择该协议,可以识别出Net开发出来的Dll等类型组件,把组件产开,选择要测试的具体方法。即组件级别的压力测试。
Java Explorer类似,只是测试的应用类型是Java开发出来的组件,如EJB等。

        监控Websphere 6.1 是否需要安装其他的组件或其他监控程序,具体如何监控?是否要对Websphere进行相应配置,如何配置?能监控的计数器种类等?请详细介绍一下。答:需要Websphere上部署了PerfServelet应用,具体的监控步骤同Websphere 5.x,请参照SilkPerformer安装后自带的Performance explorer user guider.pdf,下文是摘录的部分内容,供参考。
Procedure To monitor IBM WebSphere Application Server 5.0 via
Performance Servlet, do the following:
• Open the Administrative Console
• Expand “Applications” and click “Install New Application”.
1 MONITORING SERVERS
Defining Data Sources
• Install the perfservlet application. To do this press the browse button and
search for a file named “PerfServletApp.ear”. It is usually under
“WebSphere\AppServer\installableApps\PerfServletApp.ear”. Press
Next.
• The wizard will guide you through the installation. Check the box for
“Generate Default Binding”. Type in the virtual host. For example
“default_host”. Press Next.
• AppDeployment Options:The next step is named “AppDeployment
Options”. Accept the settings and click “Next”
• Map virtual hosts for web modules: Check the box for “WebModule”
and for “perfservlet” and select the virtual host. For example “default_
host” and click “Next”.
• Map modules to application servers: Check “Module” and
“perfservlet” and click “Next”.
• Map security roles to users/groups: Allow all roles by checking all
check boxes. Click “Next”.
• Summary: Click Finish
• The perfservlet application is now deployed but not running. Click the
link “Save to Master configuration” and save your settings you have
made so far.
• Once this is done, expand the node “Applications” and click “Enterprise
Applications”. From the list check the perfservlet application and press
the “Start” button.
• With WebSphere 5.0 monitoring is disabled by default. To enable
monitoring expand the node named “Servers” and click “Application
Servers”.
• Click the server where monitoring has to be enabled. For example
“server1”. Under “Additional Properties” click the link named
“Performance Monitoring Service”. Check the checkbox for “Startup”
such that monitoring is always enabled on startup. Also specify the
specification level. The granularity of performance measures to be
retrieved.
• Click OK and save your settings to the master configuration.
• To verify that the perfservlet application was successfully deployed open
and XML compatible Internet Browser and type in the following URL:
“http://yourHost[:port]/wasPerfTool/servlet/perfservlet
• Assuming that everything was successfully deployed open Performance
Explorer.

        监控集群服务器(IBM JS21刀片服务器3节点群集)需要特殊配置吗?需要安装其他程序或组件吗?请详细说明。
答:通过对操作系统的监控完成,取决于安装的操作系统,对Linux,AIX,有不同的配置,请参考SilkPerformer安装后自带的Performance explorer user guider.pdf。

        测试结果能提供哪些数据,以什么形式(数据或分析图之类)提供?能否根据测试结果便捷的生成报告(自动或手工)?答:测试报告,提供从客户端角度出发的各种数据,默认的测试报告以html格式显示。测试报告可以自动产生,并可以提供定制,如定制显示一些server端
的数据等。
   如在WEB 测试中,测试报告中可以显示每个业务请求(业务逻辑,操作的组合)的响应时间,服务器处理时间。每个页面请求,每个form的时间;自动产生多个纬度的排序报告:
   按照响应时间排序
   按照网络传输时间排序
按照占用服务器端资源等。

       

        是否能监控网络延迟,网络流量和每秒采样数等?如何监控?
答。可以监控到和测试应用相关的网络流量,包括发送请求数,响应请求数;
        如一个测试过程中,该应用发送的请求引起的数据量等;这些监控都是从客户端角度出发考核的,都是在压力测试过程中,自动完成的,先是在测试报告的Summary Internet部分,包括如下内容:

网络延迟和每秒采样数的概念,不太熟悉,需要确认。

        能否对应用服务器上的Java虚拟机(Java虚拟机中的内存总数、Java虚拟机分配的内存总数和剩余的可用内存数等)进行监控,如何监控?
答:取决于不同的应用服务器;
        对SilkPerformer而言,监控Weblogic,可以通过SNMP,JMX两种模式来完成;对于Webspher,则是通过PerfServlet来实现。而这些接口,都是web服务器来提供的,所以监控的具体颗粒度,也取决于这些接口。

   如果要求对于Java的运行情况,包括JVM等在内,可以细颗粒度的审查,可以考虑一些专业的监控和分析工具,如Borland Optimizeit servertrace,CA Wily introscope, Veritas I3, Quest Foglight/Perforshore等

        长时间不间断的运行Silkperformer 的虚拟用户,内存的使用率会不会随时间的推移而增长,影响测试?
答:取决于“多长的时间”和具体的应用。
        可以确认的是,作为企业级别的性能测试工具,SilkPerformer会占用最少的资源,模拟更多的应用。

        是否支持对Red Flag Linux 操作系统进行监视?
答,可以。
        可以通过以下三种方式对Red Hat Linux进行监控。


关于压力测试过程中的监控

另外,我不想过分的强调压力测试工具对于系统资源的监控,对于压力测试工具,模拟压力---用最小的资源模拟最真实的压力,是正业。监控的目的是为了协助稳定定位,这个更需要经验---综合的经验,来完成,我认为是副业。
SilkPerformer中的监控,其实质是通过调用每个服务器上的广播接口,通过他们得到服务器的运行环境,所以监控到的具体颗粒度,就取决于这些广播接口。

songfun 发表于 2007-3-31 17:33:26

庄兄的文章,帮你顶!sdlkfj3

wangjingying 发表于 2007-4-1 12:04:42

赞版主,照单全收鸟~

vickiren 发表于 2007-4-23 16:02:13

回复 #1 asks_zhuang 的帖子

我来了
谢谢搂住

zmf111 发表于 2007-4-27 09:40:46

多谢了,读!

c0py1eft 发表于 2007-7-4 16:49:45

非常感谢

nobody29029 发表于 2007-7-6 18:40:49

回复 #1 asks_zhuang 的帖子

sdlkfj3

weiyihang 发表于 2007-7-17 18:51:21

谢谢

好文章,顶了。
谢谢共享了,、

423799223 发表于 2007-11-20 09:40:40

文章写的好呀
文笔好

xqliu87 发表于 2008-2-20 11:18:49

强,受益匪浅

lijia0912 发表于 2008-3-17 17:31:12

:lol

huazhi2004 发表于 2008-7-5 16:52:33

很好:)

随风而动 发表于 2009-2-17 01:15:59

顶下

ziheng198688 发表于 2009-10-26 10:58:31

虽然有部分内容不是太了解 但是值得珍藏

luozhijun 发表于 2012-6-11 08:45:23

标记,很不错的内容。
页: [1]
查看完整版本: 压力测试问题交流(silkperformer)