大家看到标题后的第一个问题可能是:“我们需要这样做吗?”

如果我们开发的是局域网 Web 应用的话,可能没有必要这样做。但如果我们的 Web 应用面向的是互联网上的成千上万的用户,这样做就很必要了。因为在现实世界中并不是所有的用户都有高数率的网络连接,也许用户使用的是拨号接入,移动设备,3G,或者是 USB 网络加密狗。如果我们没有在低数率的网络环境中测试过我们 Web 应用,极有可能在上线后收到一些意想不到的关于系统性能方面的抱怨。这个时候无论我们的 Web 应用界面多么地 Web 2.0,功能多么地强大,对于用户来说都失去了使用价值。

目前有很多工具能够模拟慢速网络,值得一提的是 Firefox Throttle,这是一个 Firefox 插件,你可以设置上载和下载的数率,并且监控当前带宽的使用情况。另一个非常有用的特性是它可以控制你的 localhost 的连接数率,对本地测试很有用。

另一个工具是 Sloppy,它是一个 Java Web Start application。

 

两天,jnj在本站发布了《如何在低速率网络中测试 Web 应用》,那是测试网络不好的情况。而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能。我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具。

Grinder –  Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利。 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管理。根据项目网站的说法,Grinder的 主要目标用户是“理解他们所测代码的人——Grinder不仅仅是带有一组相关响应时间的‘黑盒’测试。由于测试过程可以进行编码——而不是简单地脚本 化,所以程序员能测试应用中内部的各个层次,而不仅仅是通过用户界面测试响应时间。

Pylot -Pylot是一款开源的测试web service性能和扩展性的工具,它运行HTTP 负载测试,这对容量计划,确定基准点,分析以及系统调优都很有用处。Pylot产生并发负载(HTTP Requests),检验服务器响应,以及产生带有metrics的报表。通过GUI或者shell/console来执行和监视test suites。

Web Capacity Analysis Tool (WCAT) – 这是一种轻量级负载生成实用工具,不仅能够重现对 Web 服务器(或负载平衡服务器场)的脚本 HTTP 请求,同时还可以收集性能统计数据供日后分析之用。WCAT 是多线程应用程序,并且支持从单个源控制多个负载测试客户端,因此您可以模拟数千个并发用户。该实用工具利用您的旧机器作为测试客户端,其中每个测试客户端又可以产生多个虚拟客户端(最大数量取决于客户端机器的网络适配器和其他硬件)。您可以选择使用 HTTP 1.0 还是 HTTP 1.1 请求,以及是否使用 SSL。并且,如果测试方案需要,您还可以使用脚本执行的基本或 NTLM 身份验证来访问站点的受限部分。(如果您的站点使用 cookie、表单或基于会话的身份验证,那您可以创建正确的 GET 或 POST 请求来对测试用户进行身份验证。)WCAT 还可管理您站点可能设置的任何 cookie,所以配置文件和会话信息将永久保存。

fwptt – fwptt 也是一个用来进行WEB应用负载测试的工具。它可以记录一般的请求,也可以记录Ajax请求。它可以用来测试 asp.net, jsp, php 或是其它的Web应用。

JCrawler – JCrawler是一个开源( CPL) 的WEB应用压力测试工具。通过其名字,你就可以知道这是一个用Java写的像网页爬虫一样的工具。只要你给其几个URL,它就可以开始爬过去了,它用一种特殊的方式来产生你WEB应用的负载。这个工具可以用来测试搜索引擎对你站点产生的负载。当然,其还有另一功能,你可以建立你的网站地图和再点击一下,将自动提交Sitemap给前5名的搜索引擎!

Apache JMeter – Apache JMeter是一个专门为运行和服务器装载测试而设计的、100%的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。

Siege -Siege(英文意思是围攻)是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。 Siege 支持基本的认证,cookies, HTTP 和 HTTPS 协议。

http_load – http_load 以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。可以可以测试HTTPS类的网站请求。

Web Polygraph – Web Polygraph这个软件也是一个用于测试WEB性能的工具,这个工具是很多公司的标准测试工具,包括微软在分析其软件性能的时候,也是使用这个工具做为基准工具的。很多招聘测试员的广告中都注明需要熟练掌握这个测试工具。

OpenSTA – OpenSTA是一个免费的、开放源代码的web性能测试工具,能录制功能非常强大的脚本过程,执行性能测试。例如虚拟多个不同的用户同时登陆被测试网站。其还能对录制的测试脚本进行,按指定的语法进行编辑。在录制完测试脚本后,可以对测试脚本进行编辑,以便进行特定的性能指标分析。其较为丰富的图形化测试结果大大提高了测试报告的可阅读性。OpenSTA 基于CORBA 的结构体系,它通过虚拟一个proxy,使用其专用的脚本控制语言,记录通过proxy 的一切HTTP/S traffic。通过分析OpenSTA的性能指标收集器收集的各项性能指标,以及HTTP 数据,对系统的性能进行分析。 

PHP已经成为主流网页语言,我们每天访问的百度、开心等知名网站都是采用的PHP,由于PHP拥有平台无关性、易学等优点,许多中小型网站也逐步 加入PHP行列。如今,网络上的PHP建站程序可谓相当丰富,但参差不齐的性能却让一些站长们犯了愁。下面笔者向大家推荐几套不错的免费PHP建站软件。 PS:非权威排行榜,仅代表笔者观点。

1、PHPCMS 内容管理系统

官方网站:www.phpcms.cn

推荐理由:Phpcms由内容模型、会员、问吧、专题等20多个功能模块组成,内置新闻、图片、下载、信息、产品5大内容模型,功能强大得毋庸置 疑。如果大家觉得感受不明显,就去访问2008奥运官网、21世纪报道、卡巴斯基中国官网看看。

2、Discuz&PHPWind 论坛社区程序

官方网站:www.comsenz.com www.phpwind.com

推荐理由:关于Discuz、PHPWind的争辩在BBS社区领域早已司空见惯,多年来,两大高手的对决一直难分高下,两套论坛都有众多的粉丝。 一个功能强大,整合性较好;一个速度更快,处理效率较高,如何选择,就看网站的定位了。

3、iWeb SNS 社交网络软件

官方网站:www.jooyea.net

推荐理由:也许你会问为什么我不推荐uchome,不是uchome功能不够强大,而是笔者认为uchome如今早已被漫游平台绑架了。iWeb SNS有一个非常实用的功能,可以直接在后台更改模板代码,相信更有特色的网页风格比千篇一律的Facebook还是更有吸引力吧。

4、WordPress 博客程序

官方网站:cn.wordpress.org

推荐理由:全球使用量最大的博客程序,功能强大,插件众多,易于扩充功能,甚至有许多第三方开发的免费模板,安装方式简单易用。如果你想搭载一个 PHP博客网站,WordPress肯定是不二之选。

5、HDWiki 百科程序

官方网站:kaiyuan.hudong.com

推荐理由:中国第一款拥有自主知识产权的中文WIKI系统,就是类似于百度百科。易用,功能强大,对于众多的中小站长而言,利用 HDwiki 均能够在最短的时间内,花费最低的费用,采用最少的人力,架设一个性能优异、功能全面、安全稳定的百科网站平台。

6、PHP168 分类信息系统

官方网站:www.php168.com

推荐理由:集地区分类信息管理、城市管理、智能防采集、自定义模型自定义字段、搜索等多种强大的功能于一身,它可以帮助你做成类似58同城、百姓网 那样的巨型站。

7、VODCMS 视频点播系统

官方网站:www.vodcms.com

推荐理由:诚然市场占有率最高的视频程序是MaxCms,但它是asp的,而自家的PHP视频程序pocle又是面向企业用户,好在基于PHP的 VODCMS功能还算齐全,足够应付中小型网站需求。

8、EasyTalk 微博客程序

官方网站:www.9italk.com

推荐理由:由Twitter引发的微博客热已经开始蔓延到国内,康盛也在测试自己的CCT微博系统,似乎EasyTalk走得更前,不过谁会笑到最 后,还得等到它们各自推出正式版后才能见分晓。

笔者只推荐PHP语言程序并不是说其他语言的程序就不好,比如动易、Z-blog、马克斯等都是非常不错的建站软件,只是笔者更加倾向于PHP的跨 平台性。另外可能有朋友注意到文章里面没有提到Ecshop网店系统,虽然官方网站上一直宣称开源免费,但网站系统一般都是指用于个人和非商业用途免费, 然而又有多少网店不是以营利为目的呢?

   什么是web 2.0?

  到目前为止,关于Web2.0并没有清晰的定义。业内普遍的一种说法是,微内容是Web2.0的一个关键词。其中,微内容包括个人所形成的任何数据:比如一则网志、一个评论、一幅图片、收藏的书签、喜好的音乐列表、想结交的朋友等等。这些微内容,充斥在了人们的生活、工作和学习的方方面面。而Web2.0重点要解决的正是对这些微内容的重新发现和利用。于是,我们看到了这样的现象,只要是和微内容相关的技术和架构,都是以Web2.0为名义的。

  就目前的发展情况而言,Web2.0是以 FlickrCraigslistLinkedinTribesRyze FriendsterDel.icio.us43Things.com等网站为代表,以BlogTAGSNSRSSwiki等应用为核心,依据六度分隔、xmlajax等新理论和技术实现的互联网新一代模式。

  什么是博客(Blog)?

  BLOG也就是WEB LOG的缩写简单来说就是网络日记。一种极其简易便捷的网络个人出版形式,使得任何一位网民都可以在几分钟之内拥有自己的个人网站,自由挥写。但是,越简单越难定义,人们对于博客的理解千姿百态,:博客代表着新闻媒体3.0”:旧媒体新媒体互媒体(硅谷最著名的IT专栏作家丹·吉尔摩);博客是继E-mailBBSICQ(IM)之后的第四种网络交流方式;博客就是一个人未经编辑的声音(戴夫·温纳);博客是互联网上独立的思想泡泡(JamesSnell);博客是媒体的开放源代码运动(方兴东);博客是个人出版2.0”(孙坚华);博客是用文字进行对话的网上咖啡屋(《博客手册》)……著名IT记者和专栏作家保罗·安得鲁斯认为,博客以及其他网络新闻的崛起,在一定程度上是因为媒体巨头在公信力方面的快速衰落,他们要努力推翻传统媒体的守门人”:“新一类新闻记者正在兴起,他们以直接来自新闻源的原始素材为基础。这些记者正在进行新的试水……是对体制官僚化的媒体的报复性破坏……博客改变了新闻从个人传播到公众的信息流动的本性……只要一摁张贴键,任何人都可以出版自己的作品,这将改变传统媒体出版模式。

  什么是播客?

  播客,即英文的PodcastPodcasting,这个词来源自苹果电脑的"iPod""广播"(broadcast)的合成词,其指的是一种在互联网上发布文件并允许用户订阅feed以自动接收新文件的方法,或用此方法来制作的电台节目。这种新方法在2004年下半年开始在互联网上流行以用于发布音频文件。

  播客与其他音频内容传送的区别在于其订阅模式,它使用RSS 2.0文件格式传送信息。该技术允许个人进行创建与发布,这种新的传播方式使得人人可以说出他们想说的话。

  什么是Tag?

  Tag(中文叫做标签”) 是一种新的组织和管理在线信息的方式。它不同于传统的、针对文件本身的关键字检索,而是一种模糊化、智能化的分类。 Tag是一种更为灵活、有趣的分类方式,您可以为每篇日志、每个帖子或者每张图片等添加一个或多个Tag(标签),你可以看到网站上所有和您使用了相同Tag的内容,由此和他人产生更多的联系。Tag体现了群体的力量,使得内容之间的相关性和用户之间的交互性大大增强。

  什么是RSS?

  RSS就是一种简单的信息发布和传递方式,使得一个网站可以方便地调用其他提供RSS订阅服务的网站的内容,从而形成新闻聚合,让网站发布的内容在更大的范围内传播。

  如果从RSS阅读者的角度来看,RSS获取信息的模式与加入邮件列表获取信息有一定的相似之处,也就是可以不必登录各个提供信息的网站而通过客户端浏览方式(称为“RSS阅读器”)或者在线RSS阅读方式这些内容。

  什么是Wiki?

  Wiki一词来源于夏威夷语的 "wee kee wee kee" ,原本是快点的意思。在这里Wiki指一种超文本系统。这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作的辅助工具。我们可以在Web的基础上对Wiki文本进行浏览、创建、更改,而且创建、更改、发布的代价远比HTML文本为小;同时Wiki系统还支持面向社群的协作式写作,为协作式写作提供必要帮助;最后,Wiki的写作者自然构成了一个社群,Wiki系统为这个社群提供简单的交流工具。与其它超文本系统相比,wiki有使用方便及开放的特点,所以wiki系统可以帮助我们在一个社群内共享某领域的知识。

  什么是AJAX?

  Ajax并不是一种技术。它实际上是几种已经在各自领域大行其道技术的强强结合。Ajax混合了:

  *基于XHTML/CSS

  * DOM(Document Object Model)实现动态显示与交互

  * 通过XMLXSLT进行数据交换及处理

  * 使用JavaScript整合上述技术

  直观一点的说Ajax能够实现不刷新浏览器窗口(当然更不用安装额外的插件)而满足用户的操作,现在一些看上去很Cool的网站,很多是用这项技术实现的,其中包括:orkutGmailGoogle GroupGoogle SuggestGoogle MapsFlickrA9.com等。

  什么是SNS?

  SNS:Social Network Sofwaret,社会性网络软件,依据六度理论,以认识朋友的朋友为基础,扩展自己的人脉。并且无限扩张自己的人脉,在需要的时候,可以随时获取一点,得到该人脉的帮助。

  六度关系理论:美国著名社会心理学家米尔格伦(Stanley Milgram)20世纪60年代最先提出,在人际脉络中,要结识任何一位陌生的朋友,这中间最多只要通过六个朋友就能达到目的。就是说你想认识一个人,托朋友找朋友找认识他的人,之间不会超过六个人。

  在经济高速发展的今天,人际关系的作用愈发明显,人脉资源对于一个人的成功非常重要。目前很多职业人士在人际资源方面其实都比较匮乏,因此SNS这种新兴的网络社交方式一出现,迅速流行欧美国家,已经成为精英阶层拓展人际关系的主要方式之一。