利用WebApplicationStressTool做性能测试_第1页
利用WebApplicationStressTool做性能测试_第2页
利用WebApplicationStressTool做性能测试_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用 Web Application Stress Tool(WAS) 做性能测试(2)设置测试脚本新录制的脚本还不能立即用来测试。还必须完成以下设置: 调节脚本项和他们的属性调节测试脚本的测试 建立页面组和点击百份比建立用户帐号建立客户端建立性能计数器调节脚本项在修改一个测试脚本的脚本项时需要考虑几点,我们将在下面介绍。去掉不需要的脚本项去掉冗余项以减少在测试中的噪声因素,或者去掉那些无效的 URL 。当要调整一项特殊的功能时,去掉所有指向图象,样式表单和其他辅助静态文件的脚本项。为脚本项指定思考时间 脚本项表单的最后一项叫做 “延迟 ”。这项允许你在执行脚本项之前指定特定的延迟时间(也叫思

2、考时间)。 对于性能测试来说,如何定义思考时间并没有一个单独的标准。有些人使用零思考时间,有些人考虑使用30 秒为思考时间。主要取决于站点的内容和测试的目的。例如,有长页面内容的站点需要比简单页面的站点使用长一点的时间,因为用户需要使用多点的时间来读页面内容。另外,如果你的目的是快速地决定一个只有少量客户端的 Web 服务器的吞吐量,你可以考虑零思考时间。没有思考时间的话, WAS 的每个线程以最快速度对 Web 服务器施加压力。为脚本项设置一系列的值WAS 允许你为一个脚本项的一对名字 -值赋值,而不是对每一个请求都使用相同的值。这个特性对于模拟 真实情形很重要,没有用户会不停的以相同的数据

3、值请求同一页面吧? 例如,其中一项测试脚本是请求一个 ASP 页面展示一个产品的详细信息。我们可以设置 WAS 随机地从一 列预先定义的产品 ID 选取不同的值,而不是每次都用相同的产品 ID 请求 ASP 页面。为脚本项建立一列值1. 在WAS窗口的脚本项,双击脚本项最前面的方型按钮(在表单的第一列)打开这项的详细菜单。2. 在 Querystring 标签里(也叫Querystring Editor, 如 Figure 3 所示),选定 Format data to CGI standard 。相应的名字 - 值对会出现在 check box 下的表单里Figure 3. Querystr

4、ing Editor screen3. 点选定的名字 -值对的值,一个新的按 钮会出现4. 点这个按钮打开 Field Values 对话 框5. 在 Field values 对话框输入一串值,每一行一个值。你也可以通过剪切,粘贴一个电子表格的数据文件来输入。6. 在 Querystring Editor 里,在表单中 点有相同名字 - 值对的 Distribution 一列。在下拉菜单选择 Random。为脚本项设置 SSL为特定的脚本项激活 SSL ,需要作以下操作:1. 在WAS窗口的脚本项,双击脚本项 最前面的方型按钮(在表单的第一列)打开这项的详细菜单。2. 在 SSL标签里,选

5、Use SSL (注 意在你激活SSL时确保端口值应该在80到443之间)。调整脚本设置 为了您能满意地运行你的性能测试,你需要修改你的测试脚本的设置。通过双击左边的脚本名展开脚本的 信息,你会找到一个 Settings 标签,在这里你可以为你的测试脚本指定很多设置。点击它将在右边窗口打 开 Settings 视图,如 Figure 4 所示。Figure 4. Settings view screen指定目标 Web 服务器默认地,目标服务器是 “localhost ,”应该替换为 IP 地址或目标服务器的域名。改变设置1. 在左边的窗口点测试脚本的名字2. 在右边窗口顶部的 Server

6、输入目标服务器的 IP 地址或域名注意 如果你想对有 Network Load Balancing (网络负载均衡)的服务器群组进行测试,就像 DuwamishOnline 一样,则需要输入IP 地址群。设置并发连接数在设置里的 Concurrent Connections 部分,你可以指定 Stress level (threads) 的值和 Stress multiplier (sockets per thread) 来控制对目标服务器的压力 /负载程度。 Stress level 是全部客户端所产生的 Windows NT 线程的总数。每个线程能产生多个 socket 而每个 socke

7、t 就是一个并发的请求。 以下公式解释了他们之间的关系:Total Concurrent Requests = Stress level (threads) x Stressmultiplier(sockets per thread) = Total Number Sockets在我们的实验室, 我们使用不同的 Stress 层次来 性能测试。例如,我们使用过 100, 200, 300, 400, 500, 750, 1000, 1500, 和 2000 的值来连续测试以研究我们的服务器群组是如何对连续增长的负载作出反应的。 你应该在初步测试的结果基础上调整这些数值。通常来说,你需要在低负载

8、度时收集更多的数据点,因为 这时候系统的吞吐量会随线程的增长而线性增长。另一方面,你可以在高负载度时运行较少的测试以节省 时间和精力,尤其是系统吞吐量已经高于峰值时。注意我们的第一次测试将设定在 1000 个线程。目的是运行足够的请求以建立我们程序的数据缓冲。因为 程序的性能会因为有没有缓冲而表现大不相同,这将帮助我们为负载测试保持一个一致的环境。设定测试运行时间在设置视图的 Test Run Time 部分,你可以以日,小时,分钟,秒来设定总的运行时间。取决于你的脚本项的预期反应时间,建议你运行测试脚本至少若干分钟以便产生足够的请求,避免变形的测试结果。你的程序的反应时间越高,测试进行的时间

9、就应该越长,以便产生大量的数据。你可以运行短而密集的测试以便监测你的站点的任何问题。另外,你需要运行更长的测试时间(例如, 30天),看看你的站点的性能是否随时间而退化,尤其是在中级或高级的负载压力下。在 Duwamish Online 这个站点, 大多数的性能测试都运行 7 到 10 分钟,以便有足够时间来稳定测试结果。 </P< p>设置随机延迟时间在设置视图的 Request Delay 部分,你可以在执行测试前为每个脚本项选择加入随机延迟时间(或思考时 间)。如果 Use random delay 选项框被选中,每个 WAS 线程会空转一段随机的时间(在最大值和最小

10、值之间)加上为每个脚本项指定的固定的思考时间。下面的公式解释了延迟时间的计算方法:每项的延迟时间 =随机延迟时间 +每项的固定延迟时间随机延迟时间的特性在固定延迟时间被指定给脚本项时尤为重要。如果没有使用随机延迟时间,所有的线 程会在几乎相同的时间发送请求到 Web 服务器,然后等待几乎相同的固定延迟时间然后发送下一个请求。 随机延迟时间在向 Web 服务器施加负载时有助于压平峰值和谷值, 因此为所需的负载水平呈现一个更为精 确的环境。设定挂起时间在设置视图的Suspend 部分,你可以以日,小时,分钟,秒来设定 warmup 和cooldown 时间。Warmup时间就是初始化测试运行时间,

11、在这段时间里不会收集和计算性能数据。类似地,cooldown 时间就是指定结束阶段的测试时间,也不收集数据。 Warmup 和 cooldown 被用于最小化测试结果的失真。通常,在一个新测试运行的初始化阶段,很多系统资源是被特定的活动所消耗,像组件或应用程序的缓冲初始化。 Warmup 时间有助于在任何测试数据被收集之前稳定系统的环境。另一方面, cooldown 时间有助于在测试运行的结束阶段避免数据的变形, 这时额外的系统资源被用于停止 测试和开始从客户端收集数据。另外, socket 连接可能会过早地停止,造成大量的 socket 错误。 在 Duwamish Online ,我们使用

12、 30 到 60 秒作为大多数性能测试的 warmup 和 cooldown 时间 指定带宽瓶颈在设置视图里的 Bandwidth 部分, WAS 允许你模拟从 14.4 Kbps 的 modem 连接到 T1 (1.5 Mbps) 的 LocalArea Network (LAN) 连接的网络带宽。这个特性的最大好处是可以支撑大量的并发连接到目标服务器。这 是大多数 Web 站点(用户使用低速 modem 连接)所体验的情形。 激活带宽瓶颈1. 在设置视图里的 Bandwidth 部分,选 择 Throttle bandwidth 选项框。2. 在下拉菜单,选择一个代表大多数用 户的连接吞吐

13、量的带宽。在 Duwamish Online 里,我们试过不同的带宽瓶颈的设置。初始化时。我们把用户连接设在56 Kbps ,想明白我们的程序在大多数 Web 站点的情况下是如何表现的。我们也试过把用户连接设在ISDN DualChannel (128 Kbps) 以模拟未来宽带趋势下,我们的大多数用户通过快速的连接访问我们的站点。最后, 我们以没有带宽瓶颈的情形测试我们的站点。 有趣的是, 我们发现这种设置产生的负载条件与用 128 Kbps 连接的一样。不管你如何设置带宽瓶颈,务必要在你想比较测试结果的所有测试中保持一致性。指定其他设置在设置视图的其他部分,我们保持默认值,除 HTTP 重

14、定向外。我们故意去掉 Follow HTTP redirects 选项。这在创建脚本过程中你录制脚本时已经录制了 URL 的重定向的时候是必须的。 你不需要重复两次地运行那些 URL 。设置页面组在 WAS 里,你可以把一系列的脚本项组织成所谓的页面组。 这个特性允许你把所有的页面元素 (包括 HTML 文件,图象文件,样式表单等)或多个相连的页面组织成一个逻辑单元。你可以为每个页面组指定不同的 点击率,那样就能控制哪个页面或相连的页面会访问更多或更少。如果你有你的网站的使用方法像目录浏览或购物车 页面组允许你以你希望你的站点会获得的点击率来运行。建立页面组1. 展开左边窗口的脚本的信息2.

15、点 Page Groups 节点在右边窗口打开 相应的视图你会看到默认的以 100% 分布率的页面组已经创建好了。所有的脚本项默认都初始化为这个组。3. 在组表单的空白行,在 Group 列输入 新的组名(像"Home'作为主页),在Distributen列输入数值。分布率会被用于计算这个页面组的点击率,见 Percent 列。重复这个步骤添加更多的页面组。4. 点左边窗口的脚本名回到该脚本项的 视图5. 在脚本项表单的 Group 列,从下拉菜 单选择其中一个页面组。为每个脚本项重复这个步骤。所有关联的页面都应该选同样的页面组。Figure 5. Example of pa

16、ge groups definition6.点左边窗口的脚本名回到该脚本项的视图7. 在脚本项的表单的Group 一列,从下 拉菜单选则其中一个页面组,见 Figure 6 。Figure 6. Script Items view screen showing group selection8. 重复 6 到 7 为每一个脚本项选择一个 页面组。所有相关项(像 ASP 页面,样式表单和图象文件)应该选择相同的页面组。另一种创建和指定页面组的方法是在录制脚本时指定页面组。要使用这种方法,在浏览器跳到新的页面之 前返回到 WAS 窗口(见 Figure 2 )。点 Change Group 按钮然

17、后在 New Group 对话框输入组名。以后 录制的脚本项都会被指定到这个新的组。指定用户测试需要署名登录的 Web 站点时, WAS 提供一个特性叫做 Users ,可用于存储多个用户的用户名,密码和 cookie 信息。当一个测试开始时,所有的用户被分配到给定压力系数设置的各线程中。当请求开始时,每个线程使用从 与该线程连接的共享池中获得的用户名,密码,和 cookie 。如果 WAS 配置的用户数比线程少,一些线程 就会没有用户 所有的署名登录页面会登录取失败,任何与cookies 的交互会被禁止。所以,当测试需要个人认证的网站时,拥有的用户数比线程多是很重要的。对于可以在WAS 中创建的用户数没有硬性的规定和限制。然而,因为每个用户都会需要一定的内存和资 源,所以如果使用大量的用户,将会使你的测试启动和停止时间更长些。创建新用户1.在左边窗口展开脚本的信息2.点 Users 节点在右边窗口打开相应的 视图3.双击 Default 用户组打开用户视图。注意默认已经创建了 200 个用户。你可以简单地修改用户名和密码就行了你也可以做以下操作来创

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论