2008年4月1日星期二

Web网站的性能测试工具

  随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生服务器响应速度变慢甚至服务中断。为了避免这种情况,需要一种能够真实模拟大量用户访问Web应用系统的性能测试工具进行压力测试,来测试静态HTML页面的响应时间,甚至测试动态网页(包括ASP、PHP、JSP等)的响应时间,为服务器的性能优化和调整提供数据依据。

  我推荐各位Web 2.0开发测试人员使用Microsoft 的Web Application Stress Tool这个工具软件,这个微软提供的小工具仅9.58M,很小巧且实用。虽然功能上比不了专业的LoadRunner,但LoadRunner体积庞大,价格不菲,一般的企业也不会花那么多钱去购买LoadRunner,而微软的WAS则是完全免费,并且主要的功能都有,够用就行。

  Microsoft Web Application Stress Tool能有效测试一个网站的负载性能,这个软件可以通过脚本模拟100个强并发用户的访问,并模拟实际用户的一些点击操作,WAS还可以连接上远程Windows网站服务器的性能计数器(Performance Counter),通过对服务器性能(CPU/内存等)的性能分析来找到系统的瓶颈。CPU使用百分比反映了处理器开销,CPU使用百分比持续地超过75%是性能瓶颈在于处理器的一个明显的迹象。

  每次测试运行结束后WAS会生成详细的报表,WAS报表可以从View菜单选择Reports查看。

  另外,CSDN也总结了一些其他的测试工具,包括性能测试工具和功能测试工具,前十大测试工具排名如下:

  业级自动化测试工具WinRunner

  Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

  工业标准级负载测试工具Loadrunner

  LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

  全球测试管理系统testdirector

  TestDirector 是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。

  功能测试工具Rational Robot

  IBM Rational Robot 是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面 IBM Rational TestManager 上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。

  单元测试工具xUnit系列

  目前的最流行的单元测试工具是xUnit系列框架,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。该测试框架的第一个和最杰出的应用就是由Erich Gamma (《设计模式》的作者)和Kent Beck(XP(Extreme Programming)的创始人 )提供的开放源代码的JUnit.

  功能测试工具SilkTest

  Borland SilkTest 2006属于软件功能测试工具,是Borland公司所提出软件质量管理解决方案的套件之一。这个工具采用精灵设定与自动化执行测试,无论是程序设计新手或资深的专家都能快速建立功能测试,并分析功能错误。

  性能测试工具WAS

  Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。

  自动化白盒测试工具Jtest

  Jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。parasoft同时出品的还有C++ test,是一款C/C++白盒测试工具。

  功能和性能测试的工具JMeter

  JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。

  性能测试和分析工具WEBLODE

  webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。

2008年3月30日星期日

WordPress 2.5发布,宽屏显示异常

  今天WordPress 2.5终于发布了,比起WordPress 2.3来说,这个版本的变化是比较大的,据WordPress官方介绍,新的版本开发了185天(6个月零3天),修改了364个文件,增加了54008处,删除了29136处,总共修改点超过了1300处。

  目前很多主机已经提供了自动升级WordPress的功能,例如我使用的DreamHost已经可以在One-Click Installs中升级了,点一下就可以将当前版本的WordPress升级到2.5版本,升级后,登陆WordPress还要提示更新数据库,更新完数据库后,就可以看到一个全新的WordPress 2.5的界面了。

  新的界面有一个很大的BUG,就是几乎所有的界面,都是针对1024X768设计的,针对1440X900的宽屏显示器,会只显示左边部分,使用操作起来特别的别扭,看起来还不如老版本WordPress舒服,看来WordPress的开发者没有使用宽屏液晶显示器,否则也不会出现这么明显的BUG啊。希望WordPress能快出一个补丁,然宽屏显示器的用户也能看着舒服一些。

  新的WordPress 2.5英文版本在这里下载:http://wordpress.org/download/

WordPress 2.5发布,宽屏显示异常

通用PHP动态生成静态HTML网页的代码

  最近研究PHP的一些开发技术,发现PHP有很多ASP所没有的优秀功能,可以完成一些以前无法完成的功能,例如动态生成HTML静态页面,以减少服务器CPU的负载,提高用户访问的速度。

  我们知道,PHP读取MYSQL动态显示,在访问量大的情况下,会有很多性能问题,如果租用别人的虚拟主机,则会因为CPU消耗过多而被限制CPU,导致网页无法访问。我这里给出一个PHP动态生成HTML的方法,可以极大降低服务器CPU负荷。

  首先设置.htaccess文件,将动态调用的参数转换为静态的HTML的URL地址,例如将在post目录下的文件,转发到根目录的wp-post.php文件中,加入的语句类似:

RewriteRule ^post/([a-z0-9-]+.html)$  wp-post.php?$1$2

  然后修改wp-post.php文件,在文件的开头加入以下PHP代码:

ob_start();
$qstring = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";
define("HTML_FILE",  $_SERVER['DOCUMENT_ROOT']."/post/".$qstring);

if (file_exists(HTML_FILE))
{
 $lcft = filemtime(HTML_FILE);
 if (($lcft + 3600) > time())  //判断上次生成HTML文件是否超过1小时,若没有才直接输出文件内容
 {
  echo(file_get_contents(HTML_FILE));
  exit(0);
 }
}

  之后是现有的PHP的代码,然后在当前代码的最后面加上如下的PHP代码:

define("HTMLMETA","<!-- this is a real static html file created at ".date("Y-m-d H:i:s")." -->");
$buffer = ob_get_flush();
$fp = fopen(HTML_FILE, "w");
if ($fp)
{
 fwrite($fp, $buffer.HTMLMETA);
 fclose($fp);
}

  好了,然后查看你的静态HTML页面,如果页面尾部出现了注释行,说明已经成功的创建了静态HTML文件。

  这个方法的一个应用就是我先前写的那个“WordPress年度博客统计插件”,这个统计插件由于查询十多次数据库,很多人访问的时候会有很大性能问题,使用我介绍的这种动态生成HTML技术后,一天就查询一次,生成一次统计排行,完美解决了查询数据库的性能问题。

2008年3月29日星期六

从IIS的ASP迁移到APACHE的PHP的方法

  目前在网站服务器软件市场中,开放源码的Apache服务器占据了60%的市场份额,而微软免费捆绑在操作系统当中的IIS排名第二,其市场份额为31%,从总体上看,目前的网站服务器软件市场已经被Apache和IIS瓜分。

  一般从性能上通常都认同Apache的性能优于IIS,虽然IIS的操作管理界面非常简单易用,但是从IIS平台迁移到Apache平台依然是大势所趋,今天我就介绍几种从IIS的ASP转换到Apache的PHP的方法。

  通过插件模拟运行ASP

  通过一些公司的产品,直接让IIS的ASP代码正常运行于Apache环境,目前主要的产品有:

  Apache::ASP  http://www.apache-asp.org/

  SUN ONE ASP  http://www.sun.com/software/chilisoft/

  iASP http://www.instantasp.co.uk/

  通过程序转换ASP到PHP

  ASP和PHP都是很易用的网页脚本语言,目前有一些第三方程序可以将ASP转换到PHP,例如免费的asp2php。

  asp2php 是一个把 ASP 转成 PHP 的转换程序,类似的转换程序还有Chilisoft、InstantASP 与 Free ASP,目前 asp2php 可以转换大部分的ASP程序,不过,转换过程中有一些Bug,需要手动进行源代码的调整。

  使用Windows环境调用COM

  如果使用Windows + Apache的环境,那么数据库可以依旧使用Access或SQL Server数据库,使用PHP创建ADODB的COM组件后可以直接使用其命令,调用方法和ASP中的完全一样,示例代码如下:

$conn=new com("adodb.connection");
$conn->open("driver=microsoft access driver (*.mdb);dbq=member.mdb");
$rs=$conn->execute("select * from tablename");
while(! $rs->eof) {
  $f = $rs->Fields("username");
  echo $f->value;
  $rs->MoveNext();
}
$rs->close();
$conn->execute("update tablename set username='williamlong' ");

2008年3月28日星期五

GoDaddy无法从中国访问

  Godaddy是世界上最大的域名注册商和顶尖的主机服务商,也是ICANN(互联网名称与数字地址分配机构)的顶级域名代理服务商,提供的域名产品价格相当低廉,目前注册一个COM域名,在国内的万网需要每年139元人民币,而在GoDaddy的价格为9.99美元(70元人民币),仅为国内价格的一半,而使用优惠码的话域名价格更只要6.95美元(49元),仅为万网的三分之一,为了节约域名注册费用,相信不少中国网民都在使用GoDaddy的域名服务,包括我在内,我一直都建议不要在国内注册域名,而现在,中国电信竟然将这个服务给屏蔽了。

  通过使用Tracert命令追踪路由,我们发现访问GoDaddy被202.97.33.126这个路由器阻止了。

GoDaddy已经无法从中国访问

  通过查询这个IP地址,我们发现这个路由器是电信骨干网的路由器,因此这个屏蔽行为无疑是电信所为。

中国电信骨干路由器

  众所周知,GoDaddy是个正规的域名注册商,没有提供违反中国法律的服务,中国电信没有权利禁止用户使用这个价格低廉的域名服务,虽然中国电信一直都有封锁国外优秀网站服务的传统,但这次干的也太邪门了吧,竟然开始屏蔽世界上最大的域名注册商,相信中国电信一定会给我们这些广大的网民一个合理的解释。

  根据读者的反馈,无法管理自己域名的,可以通过 https://mya.godaddy.com 这个地址救急。

  更新:3月28日,GoDaddy恢复正常。

  背景简介:Godaddy成立于1997年,是全球域名注册排名第一的服务商,全球市场占有率达18%。域名的附加服务很多,有blog,Email,email指向,停放页,出售页面等。而且GoDaddy的域名可以很方便的修改注册人信息(过户),将域名转移给其他会员。GoDaddy的域名注册价格也较为低廉,使用优惠码购买COM域名只有6.95美金,算上税钱也才7.15美金,折合人民币50块钱左右。

2008年3月27日星期四

百度Hi抢鲜体验和邀请发送

  百度Hi是百度推出的IM工具,和百度空间以及百度搜索具有一定的整合和集成,是一个具有一定特色的聊天工具,目前百度Hi正处于内测阶段,用户通过邀请可以使用。今天通过邀请我简单使用测试了一下百度的这个聊天工具,有一些初步的感受。

  一、界面精炼

  界面、配色和微软的MSN很像,但整体界面非常简练,无广告,类似GTalk的精练风格,这个值得赞扬。

界面精炼

  界面上可以直接进入自己的百度空间,和MSN类似。

  可以换肤,目前有两个皮肤。

  二、好友管理

  好友可以用多种形式显示。好友可以自定义头像。

好友管理

  好友可以分组。可以加入群。

  三、百度群

  允许用户加入一个群。这点比MSN要强。

百度群

  邀请30个用户即可创建一个群。(这招厉害啊)

  创建群要登记个人信息和手机号码,下面是建立群时候出现的界面。(实名制?)

创建群

  四、设置和管理

  系统设置的界面可以设置一些个人信息。

系统设置

  消息管理器和腾讯QQ的界面好相像啊。

消息管理器

  五、登陆机制

  可以通过百度帐号登录,登录后也可以设置通过电子邮件登陆百度Hi。

  目前百度Hi需要邀请才能使用,如果你需要一个百度Hi的邀请,请先注册百度帐号,然后将你的百度帐号发邮件到我的信箱 williamlone+baidu@gmail.com 即可获得邀请,登录百度查看个人消息可看到邀请链接。

2008年3月26日星期三

谷歌Google.CN新界面

  今天发现Google正在测试中文版的新界面,类似韩国的动画效果,显得比较生动。这个新界面并非在所有浏览器下都显示,也并非所有的地区都显示,估计还是一个测试阶段的版本,正式的版本应该会有更不错的体验。

  新的界面对于不同浏览器会有一些区别,我使用IE7打开Google.CN就看不到新界面,而使用IE6和FireFox 2.0就可以看到新的动画界面。不过是使用IE6在福建的一台服务器上访问Google.CN却没有看到新的效果,估计这个界面还对区域进行了一些判断。

  新的界面看上去感觉不错,对中国的新用户来说有点吸引力,不过对于经常搜索的用户来说,未必会对这几个小图标感兴趣。

谷歌Google.CN新界面