利用Web Application Stress Tool(WAS)做性能测试

发表于:2008-7-21 15:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:webmaster    来源:本站原创

  指定用户
  测试需要署名登录的Web站点时,WAS提供一个特性叫做Users,可用于存储多个用户的用户名,密码和cookie信息。
  当一个测试开始时,所有的用户被分配到给定压力系数设置的各线程中。当请求开始时,每个线程使用从与该线程连接的共享池中获得的用户名,密码,和cookie。如果WAS配置的用户数比线程少,一些线程就会没有用户—所有的署名登录页面会登录取失败,任何与cookies的交互会被禁止。所以,当测试需要个人认证的网站时,拥有的用户数比线程多是很重要的。
  对于可以在WAS中创建的用户数没有硬性的规定和限制。然而,因为每个用户都会需要一定的内存和资源,所以如果使用大量的用户,将会使你的测试启动和停止时间更长些。
  创建新用户
  1.在左边窗口展开脚本的信息
  2.点Users节点在右边窗口打开相应的视图
  3.双击Default用户组打开用户视图。
  注意默认已经创建了200个用户。你可以简单地修改用户名和密码就行了。
  你也可以做以下操作来创建一系列新的用户
  1.点Remove All清除所有的记录
  2.在Number of new users,输入你想创建的新用户的数量
  3.在User name prefix,你可以在用户编号的前面输入前缀值,例如“User.”
  4.在Password,输入密码。相同的密码会赋给所有用户。
  5.最后,点Create按钮。用户表单就会填满指定数量的用户
  如果你想使用定制的用户名和密码列表,你可以从一个预定格式的文本文件导入它们。参考WAS帮助文件的“Importing user names and passwords”部分。

  建立各客户端机器
  WAS允许你使用多个客户端机器测试你的网站。当一个测试开始时,WAS会自动地与所有客户机取得联系,向他们传输所有的测试信息(包括测试脚本项,页面组和用户定义信息),启动和停止他们的测试,然后收集测试结果。
使用其中一个客户机器作为你的主客户端。这个主客户端应该是你用来记录和设置测试脚本的机器。

  建立测试客户端
  1.在左边窗口展开脚本信息
  2.点Clients节点在右边窗口打开相应的视图
  3.双击Default客户端打开客户端视图,本地客户端的记录(在你工作的主客户端)已经默认被创建。
  4.要想加入新的客户端,在Machine name输入IP地址或域名。
  5.点Add按钮,新的客户端会以Connected的状态被加到表单中去。
  6.重复步骤5和6,直到全部客户端机器都被加入。
  当添加新的客户端时,尽量加那些大致相同处理能力的机器。我们发现添加一个明显比其他机器速度慢的机器比不添加它还要产生更多的socket错误。
  我们也发现如果我们设置一台专注的机器作为主客户端,但是这台机器不参与产生负载。这样的设置,我们会产生较少的socket错误,而且测试结束得更快。
要这样设置的话,从客户端列表去掉主客户端的名字。如果你有一台慢的机器而你不打算用做负载产生机器,它可以作为你的主客户端而不会影响测试的输出。注意,这台主客户端仍然做所有的产生报告和分发测试脚本的工作。一台慢速度的主客户端意味着你的测试启动和结束的速度会慢些,而且要更多的时间来产生报告。

  设置性能计数器
  WAS可以与Windows NT性能监视器结合简化测试数据的收集。你可以为每个脚本存储你最喜欢的性能监视计数器,WAS 会像其它信息一样收集它们的数据。
把性能监视计数器加到你的脚本
  1.在左边的窗口展开脚本的信息
  2.在右边的窗口点Perf Counters节点打开相应的视图
  3.在Collection Interval,输入收集时间间隔。这是以秒计算的取样时间。
  4.点Add Counter按钮
  5.从Add counter to report对话框,通过点Add按钮选机器,对象和你感兴趣收集的计数器。
  在WAS帮助文件的"Common performance monitor counters"部分有一系列的通用性能计数器的介绍。
  如果你在使用这个特性时遇到什么问题,请参考WAS的基本知识介绍。

  运行测试脚本
  一旦你设置好了测试脚本,就准备好了在你的客户机运行脚本
  启动主客户端的测试
  1.点需要测试的脚本
  2.从Scripts菜单选Run也可以点工具栏上的Play按钮运行脚本。

  检查测试报告
  测试完成后,你应该先检查测试报告看是否有socket 或 HTTP错误
  从报告中检查这些错误
  1.从View菜单选Reports打开相应的视图,见Figure 7.
  2.在左边窗口,双击脚本打开测试报告,如果需要的话
  3.点测试报告名(有测试运行时间指定),如果需要的话。你会看到右边窗口显示报告的概要。
  4.在报告概要,检查Socket Errors部分是否有任何的socket有关的错误(值不为0)。这里列出每种socket错误的解释:
  · Connect—客户端不能与服务器取得连接的次数。如果这个值偏高,检查在客户端与服务器之间产生的任何潜在的错误。从每个客户端Ping服务器或telnet服务器的端口80验证你得到正确的回应。
  · Send—客户端不能正确发送数据到服务器的次数。如果这个值偏高,检查服务器是否正确地工作着。在客户端打开一个浏览器然后手工点击站点页面验证站点正确地工作着。
  · Recv—客户端不能正确从服务器接收数据的次数。如果这个值偏高,执行和Send错误相同的操作。还要检查一下如果你减低负载系数,错误是否跟着减少。
  · Timeouts—超时的线程的数目,而且随后就关闭了。如果这个值偏高,在客户端打开一个浏览器然后手工点击站点页面验证是否即使只有一个用户你的程序也会很慢。再做一个不同负载系数的压力测试,看看你的程序的潜在特征。
  5.如果socket错误很低或为0,拉下报告视图找到Result Codes部分。
  6.检查一下是否所有结果代码都是200,表示所有请求都被服务器成功地返回了。如果找到大于或等于400的结果,继续下面的步骤以查找哪个脚本项(URL)产生这些HTTP错误的。
  7.在左边窗口展开脚本信息
  8.双击Page Data节点展开所有的脚本项
  9.点每个脚本项在右边窗口看页面数据的报告
  10.在每项脚本的页面数据报告检查Result Codes部分,验证是否有那项产生了HTTP错误。如果要看常见的结果代码列表,请参考WAS帮助文件的"HTTP result codes"部分。

  运行脚本
  在准备好以上介绍的测试脚本后,你现在就可以准备运行测试及收集数据了。你可以按照前面介绍的步骤手工运行每项测试。然而,这将会是一项耗时的过程。WAS有一个对象模型,允许你创建自己的Microsoft Visual Basic Scripting Edition (VBScript)脚本来控制和配置测试运行。当测试运行时,你应该监视和记录不同的性能相关的系统计数器,包括跟踪系统吞吐量的计数器,反应时间和资源利用率。

  结论:最好的习惯
  客户机器。密切监视每个客户端的系统资源利用率。如果CPU或内存使用高于80%,客户端可能已经过载,你应该考虑使用更多的客户端机器来测试。压迫客户端机器会导致不可靠结果和在与服务器连接时产生socket错误。
  给服务器设置多层负载。估计一下需要并发请求的最大用户量以便在预备测试中把你的Web服务器群推到100%的使用率。
当没有足够的客户端机器来使服务器群到达极限时,就需要设置更高的负载倍数,例如,如果你发现使用4,000个线程,都乘一倍的负载系数,你还是不能把服务器推到极限的话,把负载系数加大。然而,使用大于1的负载系数会产生不精确的Web程序页面的TTLB。如果有可能,增加更多的机器比靠增加负载系数要好。
  使用Session跟踪。使用Session跟踪来记录WAS 和Web服务器之间的详细连接。当定义一个新的WAS脚本时,确保所有的URL都正常工作而且Web服务器返回的是所需要的结果。如果不是,那么很有可能你得到改进的性能结果,但是Web服务器返回的却是错误的响应。
你应该设置SessionTrace为1,类型为REG_DWORD。SessionTrace线程跟踪可以在注册表的\HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \WAS注册。最后,记得在确认了新的脚本后关掉SessionTrace(0),否则,你的磁盘会很快就满了。
  监视Web服务器的日志文件。要准备重新部署或清除你的Web服务器日志文件。太多的性能测试会使它膨胀的很快,尤其对于长时间的测试。你也可以把日志文件作为故障检查员帮助你检查WAS报告的应用程序错误。
  限制脚本的项数和用户数。避免创建多于1000脚本或用户,除非有特殊原因需要多于这个数目的对象。虽然允许的数目限制是由客户端的内存决定的,你会发现初始化这么多的脚本和用户会花费太多的时间
跟踪HTTP重定向的选项。如果脚本已经录制了重定向的URL就不要再使用这项选项。如果你使用这项选项,重定向的页面将会计算两次。
  用户名和密码。 WAS的帮助文件说用USERNAME 和 PASSWORD填表是指定每一个WAS用户的方法。在我们的测试过程中使用USERNAME 和 PASSWORD会大大地增加关闭各个客户端的脚本的时间。从一些WAS的内部使用者得到建议,我们在QueryString里指定USER 和 PASSWORD名字-值对。通过为USER 和 PASSWORD设置顺序访问机制,我们保证了密码总是和用户名对应。

  除了WAS的一些缺陷外,WAS是你发布网站之前模拟用户使用你的网站的好工具。使用性能测试工具对于成功的网站程序发布有重要作用。这些工具允许你清楚你的程序的性能特征,那么你就会清楚你的程序在高负载情况下会如何表现。你在操作网站的过程中得到的惊奇越少,你的站点就越可靠。

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号