全球转换率最高的10个网站

今早看到一篇有趣的电子商务研究,来自一间市场研究商SeeWhy,他们做了一个有趣的调查,他们根据AC Nielsen的数据加上访谈,列出了十个他们所找到的「转换率最高」的网络商店。所谓「转换率最高」,就是这些商店的流量不见得比别人大(不过至少都要有一个月500万不重复拜访才有资格被列入),但是他们却可以让每个网友进来好像着了魔似的,「成交率」特别高!

         他们说,一般的在线商店的转换率大约是在2~3%,也就是每100人进来只有2~3%的人买单;之前比较过美国两大购物网站Target、Wal- Mart的版型也提过两大购物网站的转换率也只有落在7%~8%左右,吻合SeeWhy的观察。

         而SeeWhy列出来的十大名店,平均转换率却在23%左右,是平常购物网站的10倍!叫我们怎么能不好好研究一下,到底这些购物名站是怎么达到这么高的转换率的?

        先来看看 转换率最高的10个网站 是谁:排行第一的是「Schwan’s」,是卖食物的,高达41.7%的转换率,叫人咋舌!第二名则是常常被用在NET-MBA(现称fb-MBA)课程里的案例、在线花店「ProFlowers」,它的转换率也高达26.5%.另外还包括卖维生素的Vitacost,转换率高达 24%,还有Woman Within,转换率高达22.4,还有卖衣服的Blair.com,转换率高达20.5%.以上是前五名。而第六到第十名则分别是Lands’ End (卖衣的)、Lands’ End(也是卖衣的)、DrsFosterSmith.com(卖宠物用品的)、Office Depot(卖办公用具的)、Roaman’s(卖衣的)、QVC(卖首饰的),转换率分别落在18.3%到20.5%之间。

  看到这个「十大名店」名单,整个人一定兴奋到沸腾了!为什么?因为我们会认为,高转换率的购物网站,有可能集中在某一个产业、对某一个族群,这产业特性因为竞争态势或消费者习性等缘故让它的转换率有机会特别高,但,看到SeeWhy的前十大名单,竟然横跨所有产业!从卖衣服的、卖用品的、卖吃的、卖营养的、卖首饰的、卖花的……都榜上有名。有趣的是,全球最大的购物商城「Amazon」的转换率大约落在16.5%,其实也够高了,但就是被十大名店给打败!可见,它们实在太强了!到底,这些完全不同性质的在线商店「共同」的特色在哪里?

  赶快告诉我、赶快告诉我们吧!

  首先,他们非常惊讶,这些商店的特色,完全推翻了我们先前所「以为」的想法。我们都认为,要让消费者在在线「埋单」,至少、至少、至少,购物车的「checkout流程」一定要愈短愈好、愈简单愈好吧?美国人甚至爱看一个叫「Shopping Cart Abandon Rate」(SAR)来估算自己的网站能不能让消费者顺利掏出信用卡。所以,我们会设计愈来愈先进、超短的购物流程,尤其是「会员」的处理,只有笨购物网站,才会请消费者先填一大堆数据加入会员、再让他买单;应该先让他藉那股狂野的购物冲动赶快、尽快、痛快的输入「卡号」,就先checkout了,剩下以后再说,不是吗?

  不是!

  他们发现,没有!这些十大名站的checkout过程,并没有比别人特别简单或特别短,反而,有几家商店甚至真的犯了「大忌」,要求填入冗长的数据、加入会员以后,才能真的开始买东西。我们都以为这几家商店一定会让消费者在「购买流程」(sales process)非常顺畅,没想到,他们竟然不怎么样!

  反之,SeeWhy的研究者竟然发现了以下两个,非常简单的「关键」:

  一、「长期流程」vs.「成交流程」:首先,他们发现,这十大名店之所以享有高达23%的转换率,他们真正与别人不同的,不是在「购物流程」,而是在「长期流程」(lifetime customer value)。当一个购物网站是朝着「长期流程」来设计的时候,它强调的不再是现时就成交,而是在里面「逛逛」的「体验」——SeeWhy的主管受访时还开玩笑的说,这些十大名店不喜欢和客户玩「一夜情」,而喜欢建立「长期的感情」,所以,有一些贴心的小动作反而是他们所注重的。譬如,当旧客户回来的时候,他其实看得到,他上一次购买什么东西,也可以被带到上一次还没逛完的东西。

  另外,更明确一点的说,这十大名站的整个网站是比较容易「浏览」的。他们在浏览的部份的容易度、精致度,远比他们的购物流程还高。其它购物网站满脑子都在想钱、钱、钱,喜欢放一颗大大的「购买键」在屏幕上深怕别人看不到,但这十大名站的重点却在「浏览一般陈列页面的「防呆机制」」上。他们知道,并不是每个客人都是脑筋清楚的上来这个网站,许多只是不小心冲上来四处看看的客人,都可以享有蛮顺畅、痛快的「干逛逛」(window shopping)的体验,不买东西,也不会觉得有压力;想叫眼睛随意看看的东西,也都找得到在哪里。

  二、「给首次客户优惠」vs.「给旧客户优惠」:另外,这十大名站也都很注重「优惠」,有趣的是,有这么一派的营销人员其实是习惯给「旧客户」优惠的,因为他们认为,创造旧客户的拜访习惯很重要,不是吗?不是!这些23%转换率的十大名站显然不这么认为!SeeWhy发现,这些站比较强调的反而是「给首次客户优惠」,因为,续第一点,他们认为旧客户是因为第一次的痛快的购物体验而回访,而不是因为「优惠」而回访,因此,要如何让第一次进来的客户真正变成客户,反而是更重要的事;变成客户不一定要买东西才能变成,甚至第一次的成交,网站其实是「小赔」的,但,取得这名客户名单,可以「remarketing」、不断寄送数据给客户,让他再回来。

  别小看这个小动作!SeeWhy发现,美国电子商务网站平均只有25%的会对旧客户寄发eDM,但是这十大名站,个个都会寄发eDM给客户。他们根本就不怕会惹火客户。奇怪的是,他们的客户还真的觉得很ok,而SeeWhy发现这十大名站的eDM就是能做到「完全不像eDM」,他们的eDM竟然让客户觉得好像在「做服务」(customer service)的一部份,于是他们的开信率都可以保持较高、他们的退订率也较低。

网页设计DIV+CSS——CSS布局入门

CSS布局与传统表格(table)布局最大的区别在于:原来的定位都是采用表格,通过表格的间距或者用无色透明的GIF图片来控制文布局版块的间距;而现在则采用层(div)来定位,通过层的margin,padding,border等属性来控制版块的间距。
1.定义DIV
分析一个典型的定义div例子: #sample{ MARGIN: 10px 10px 10px 10px; PADDING:20px 10px 10px 20px; BORDER-TOP: #CCC 2px solid; BORDER-RIGHT: #CCC 2px solid; BORDER-BOTTOM: #CCC 2px solid; BORDER-LEFT: #CCC 2px solid; BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom; COLOR: #666; TEXT-ALIGN: center; LINE-HEIGHT: 150%; WIDTH:60%; } 说明如下:
 层的名称为sample,在页面中用
就可以调用这个样式。
 MARGIN是指层的边框以外留的空白,用于页边距或者与其它层制造一个间距。”10px 10px 10px 10px”分别代表”上右下左”(顺时针方向)四个边距,如果都一样,可以缩写成”MARGIN: 10px;”。如果边距为零,要写成”MARGIN: 0px;”。
注意:当值是零时,除了RGB颜色值0%必须跟百分号,其他情况后面可以不跟单位”px”。MARGIN是透明元素,不能定义颜色。
 PADDING是指层的边框到层的内容之间的空白。和margin一样,分别指定上右下左边框到内容的距离。如果都一样,可以缩写成”PADDING:0px”。单独指定左边可以写成”PADDING-LEFT: 0px;”。PADDING是透明元素,不能定义颜色。
 BORDER是指层的边框,”BORDER-RIGHT: #CCC 2px solid;”是定义层的右边框颜色为”#CCC”,宽度为”2px”,样式为”solid”直线。如果要虚线样式可以用”dotted”。
 BACKGROUND是定义层的背景。分2级定义,先定义图片背景,采用”url(../images/bg_logo.gif)”来指定背景图片路径;其次定义背景色”#FEFEFE”。”no-repeat”指背景图片不需要重复,如果需要横向重复用”repeat-x”,纵向重复用”repeat-y”,重复铺满整个背景用”repeat”。后面的”right bottom;”是指背景图片从右下角开始。如果没有背景图片可以只定义背景色BACKGROUND: #FEFEFE
 COLOR用于定义字体颜色,上一节已经介绍过。
 TEXT-ALIGN用来定义层中的内容排列方式,center居中,left居左,right居右。
 LINE-HEIGHT定义行高,150%是指高度为标准高度的150%,也可以写作:LINE-HEIGHT:1.5或者LINE-HEIGHT:1.5em,都是一样的意思。
 WIDTH是定义层的宽度,可以采用固定值,例如500px,也可以采用百分比,象这里的”60%”。要注意的是:这个宽度仅仅指你内容的宽度,不包含margin,border和padding。但在有些浏览器中不是这么定义的,需要你多试试。
下面是这个层的实际表现: 这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容, 这里是演示内容,这里是演示内容, 这里是演示内容,这里是演示内容, 这里是演示内容… 我们可以看到边框是2px的灰色,背景图片在右下没有重复,内容距离上和左边框20px,内容居中,一切和预想的一样。hoho,虽然不好看,但它是最基本的,掌握了它,你就已经学会一半的CSS布局技术了。就是这样,不算难吧!(另一半是什么?另一半是层与层之间的定位。我会在后面逐步讲解。)
2.CSS2盒模型
自从1996年CSS1的推出,W3C组织就建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落、列表、标题、图片以及层 。盒模型主要定义四个区域:内容(content)、边框距(padding)、边界(border)和边距(margin)。上面我们讲的sample层就是一个典型的盒。对于初学者,经常会搞不清楚margin,background-color,background-image,padding,content,border之间的层次、关系和相互影响。这里提供一张盒模型的3D示意图,希望便于你的理解和记忆。

3.辅助图片一律用背景处理
用XHTML+CSS布局,有一个技术一开始让你不习惯,应该说是一种思维方式与传统表格布局不一样,那就是:所有辅助图片都用背景来实现。类似这样: BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom; 尽管可以用直接插在内容中,但这是不推荐的。这里的”辅助图片”是指那些不是作为页面要表达的内容的一部分,而仅仅用于修饰、间隔、提醒的图片。例如:相册中的图片、图片新闻中的图片,上面的3d盒模型图片都属于内容的一部分,它们可以用元素直接插在页面里,而其它的类似logo,标题图片,列表前缀图片都必须采用背景方式或者其他CSS方式显示。 这样做的原因有2点:
 将表现与结构彻底相分离(参考阅读另一篇文章:《理解表现与结构相分离》),用CSS控制所有的外观表现,便于改版。
 使页面更具有易用性,更有亲和力。例如:盲人使用屏幕阅读机,用背景技术实现的图片就不会被朗读出来。

开源的未来意味着什么?

在当今竞争激烈的软件业,开源的崛起,以及人们对开源产品的青睐,为 Oracle, 微软,苹果,Sun 一类的技术巨头带来了压力。在数据库和服务器领域这种情形已不鲜见,而各种迹象表明,开源的力量同时也正在移动平台,乃至操作系统这些消费级市场中凸显。

近年来,基于 iOS 系统的设备的流行(尤其是 iPhone),使得对一个新平台的呼声越来越高,这个新平台不仅可以同 iOS 展开竞争,还可以弥补 iOS 的不足,于是就有了 开源的 Android。时至2010年,在几次版本更迭之后,Android 已经入驻超过30种手持设备,Android 已经成功进入几乎所有新的手机与平板电脑系统。Android 的流行让开源以前所未有的方式贴近大众用户。

 

Chrome 与 Ubuntu
在 PC 领域,基于 Windows 的上网本正遭受来 Chrome 上网本的威胁。和派生于 Linux 的 Ubuntu 等系统一样,Google Chrome 操作系统同样派生于一个基于开源操作系统 Chromium OS 的项目,在同 Windows 展开竞争的时候,Chrome 操作系统拥有别的系统所不具备的优势,因为 Chrome OS 和 Chrome 浏览器很像,这款被 17% 的上网用户使用的浏览器,加上正在使用 Gmail, Docs,Calendar 等服务的用户,组成了一个1亿7600万的庞大用户群,当这些人上网的目的主要是使用那些便宜的设备浏览网页,收发 Email,编辑简单的文档的时候,他们会很容易接受 Chrome 操作系统,这正是 Google 伟大之处。

 

Ubuntu 之类 Linux 平台的开发者们,似乎也希望他们的产品像 Google 那样被普通大众接受,然而,虽然 Ubuntu 对那些初次接触 Linux 用户来说已经做得相当不错,但它们仍然过于限于一个技术的圈子,同时,他们也不具备苹果那样的资源,可以让他们对手的用户,知道自己与众不同的地方。

WordPress, Drupal & Joomla
除了前面说到移动平台以及操作系统等领域的开源系统,在 Web 领域,诸如 WordPress,Drupal,Joomla 一类的开源内容管理系统(CMS),正在支撑着网络上数量庞大的博客与网站。你是否好奇 Wall Street Journal, Forbes, TechCrunch, Mashable, CNN 之类的主流新闻站点是基于什么系统的?它们都基于开源系统。如今,多数博客都运行在 WordPress 上,还有一些基于 Drupal 和 Joomla 等开源 CMS 平台。越来越多的商业用户希望通过博客接近他们的用户,人们对这类低投入系统的需求越来越旺盛,使得这些系统最终超越它们的收费对手。

 

开源的今天
可以看出,开源已经从之前的服务器领域扩展到 Web 领域,然而,这种依赖开源社区的模式也存在一些问题,最好的例子是那些基于 Android 的移动设备。当运营商或设备制造商推出基于某个版本的 Android 设备时,他们往往会加入一些自己的定制功能,这时,如果 Google Android 推出新版本,而运营商和制造商还来不及针对新版本重新定制的时候,他们的用户就无法获得官方升级,只好冒险直接升级 Google 的版本,最终,运营商和制造商为定制所付出的所有努力都付诸东流。

在 WordPress 等 CMS 领域,则存在另一个问题,插件。插件是这些开源 CMS 系统最受欢迎的东西,可以帮助用户定制自己的主题,或实现主程序所不具备的功能。然而基于某个版本的 WordPress 的插件往往并不兼容 WordPress 的后续升级,虽然很多插件的作者会孜孜不倦地跟随 WordPress 主程序同步推出自己的升级并提供免费的支持,更多插件的作者往往不再维护自己的产品,导致使用了这些插件的用户迟迟不敢升级。

开源的未来
开源应用越来越强大,并被越来越多的用户所接受,而非技术用户对开源产品的接受,将为那些传统的靠付费软件获得收入,且尚未从免费软件找到获利模式 的软件公司敲响警钟。如今,WordPress.com 可以借助广告,VIP 账户以及技术支持获利,Google 可以靠将搜索条置入成千上万的 Android 设备获利,对于这些,微软和苹果将如何应对?

Chrome 7首个Beta发布 未默认开启GPU加速

Google今天宣布,Chrome 7的首个Beta已经完成, 版本号为Build 7.0.517.24,提供了Windows、Linux、Mac平台以及浏览器内嵌插件(Chrome Frame)四个版本。对于普通用户来说,Chrome 7 Beta并没有提供太多新功能,主要是在JavaScript等浏览器性能方面进行了完善,修复了一些Bug问题,并且新增了“about:labs”实 验室选项,该功能主要是为今后的大规模功能更新做准备。

值得一提的是最新的开发者版本Chrome 7.0.536.2,该版本中新增了大量的功能,包括默认开启了WebGL 3D图形技术,内置了Google Instant即时搜索,为一些CSS转换提供了硬件加速。

Chrome团队开发人员Anthony Laforge表示,Chrome 7.0已经完成了很多新功能,不过当前还不能提供给普通用户,此外还有一些技术正在开发中,不过新的“about:labs”今后将不断为大家提供惊喜, 一些新功能将陆续通过“about:labs”提供。

Google所说的即将到来的新功能中就包括Chrome Web商店和硬件加速,Web商店即将发布,用户可以方便的在这里下载应用程序。对硬件加速的支持如今是一个热门话题,IE9和Firefox 4都已经在Beta中默认开启了硬件加速,虽然Chrome 7的开发者版本也支持硬件加速,但是并没有完全默认开启,用户还需要手动添加多个命令行。

根据Google之前的说法,Chrome的硬件加速与其它浏览器不同,它会自动在操作系统上选取最佳图形API,支持Windows XP、Windows Vista、Windows 7、Mac OS X和Linux。此外,Google软件工程师James Robinson上月底宣称,早期数据显示Chrome 7的开发版本比Chrome 6快60倍。

分布式系统测试的难点与分析

分布式系统具有软硬件平台分布性、高稳定性、高可用性、高可扩展性、高可管理性、高并发性及数据一致性等多种特性。正是由于这些重要的特性,使得分布式系统的测试过程变得相对复杂和困难。本文主要从分布式系统测试的四个重要方面出发,探讨分布式系统测试过程中存在的一些难点问题并进行适当的分析。

分布式系统测试环境

一般来说,分布式系统是由一组服务器或者网络设备组成(如图1)。我们在部署测试环境的时候,所涉及的系统架构也会是比较复杂的,有以下几个方面:

  • 网络架构。在图1中,我们应该如何在本地测试实验室环境中模拟分别位于北京和纽约的两个数据中心呢?由于地理原因,北京和纽约之间网络的RTT(Round Trip Time)至少不会低于某个值。所以,在正式进行测试之前,我们需要构建出测试所需要的网络环境,模拟出这样的固定网络延时。
  • 硬件要求。例如,我们曾经测试过一个分布式的文件系统,数据服务器要求运行在裸盘设备上(数据的存储格式、寻址方式自定义以提高查找速度),所以,在安装操作系统时需要特别考虑这样的需求。同时,在测试前,我们需要按照系统设计的要求采购硬件设备。例如,硬盘的规格(SATA硬盘还是SAS硬盘)、内存的规格等。
  • 配置复杂。分布式系统涉及的软硬件平台较多,整个系统中需要设置的参数项非常多,系统配置过程会相应地变得复杂、困难和易错。例如,在图1中,我们需要配置的系统配置文件至少有十多个。

图1  一个典型的分布式系统

如果条件允许的话,分布式系统的测试环境应该由测试工程师自己来搭建。系统管理员、网络管理员等都没有办法完全代替测试工程师来进行这些工作,因为他们并不清楚在实际的测试过程中,测试工程师对软硬件环境的具体需求是什么,尤其是不同的测试用例对于环境的要求可能是不一样的。

分布式系统功能测试

在测试执行过程中,对测试结果的分析是一个需要进行深入思考的重点问题。分布式系统测试的重点在于对后端服务器集群的测试,而判定系统中是否存在Bug则是我们需要解决的重要问题。那么应该如何确定是否存在Bug呢?

对于测试结果的分析,我们通常观察下面几种情况。

  • 观察前端应用的返回结果。这里需要分两种情况来考虑:第一,按照前端应用业务功能点及流程进行操作,观察返回结果是否符合业务方的需求预期;第二,操作后端的服务器(通常是重启、宕机、断网等操作),观察前端应用的返回结果是否符合系统的设计需求。
  • 分析服务器日志。在功能测试过程中,当我们在启动服务器的时候,需要将日志级别定义为Debug级别(最低级别)。这样做的主要目的是为了能便于测试工程师来分析日志和定位问题。为了能更好地定位问题,常常需要在服务器程序代码中进行日志打桩,把程序中的一些重要数据通过日志的方式展现出来。通常情况下,我们需要对日志的格式进行约定,在日志行中增加一些关键字来进行分类,这将便于测试工程师进行日志分析,也有利于开展分布式系统的自动化测试。另外,值得注意的是,我们尽可能地将打桩代码放在Debug代码中,避免影响系统代码,引入新问题。
  • 分析操作系统的一些重要信息。我们测试的分布式系统绝大多数是基于Linux操作系统开发的,在测试的过程中,除了详细分析程序日志以外,还需要对操作系统的一些重要数据信息进行分析,从而来诊断服务器程序是否存在异常。以Linux操作系统为例,我们常常会使用top命令、netstat命令及sar命令来查看操作系统的一些数据信息。例如,可以通过netstat命令检查服务器程序是否正确地监听了指定的端口等。
  • 借助其他分析工具。例如,如何判断服务器程序是否产生了内存泄漏?通常需要借助于内存检测工具来进行分析。在Linux环境下,我们常用Valgrind来进行内存检测。这是一款非常好用、功能强大的分析工具(官方网站:http://www.valgrind.org/),可以帮助测试或者开发工程师快速发现很多隐藏的程序Bug,尤其是在内存检测方面(同时它还具有很多其他优秀的功能,读者可以自己查看官网中的使用手册)。

分布式系统压力测试与性能测试

对于分布式系统而言,压力测试和性能测试非常重要。在进行压力测试和性能测试的时候,可能会碰到下面一些难点。

  • 数据准备。如何准备海量的测试数据并保证模拟数据的真实性?以一个分布式的文件系统为例,预先存入100GB的数据还是存入100TB的数据、存入的文件是大小基本一致差别不大还是各不相同甚至差异很大(例如,从几十字节至几十兆字节不等),这些因素对于分布式系统的性能影响是有很大差异的。另外,如果需要预先存入100TB的数据,若按每秒写入100MB数据来计算,写入100TB数据需要100×1024×1024/100=1048576秒=291.27小时=12天。我们是否能忍受这么长时间的数据准备工作?为了解决这样的问题,我们需要对系统架构设计进行深入分析,设计好测试场景,并提前进行测试用例的设计,以尽早开始准备测试数据。
  • 性能或压力测试工具。通常来说,分布式系统的测试需要开发一些测试工具来满足性能测试的需求。如果可以的话,建议这样的测试工具最好由测试工程师自己来实现,因为测试工程师更清楚自己的测试需求。当需要自己开发测试工具的时候,有两个关键问题需要重点关注:第一,一些关键数据的收集方式与计算将成为性能测试工具的关键,例如,TPS(每秒请求数)、Throughput(吞吐量)计算的准确性;第二,要保证性能测试工具的性能,如果工具本身的性能不好,将无法给予分布式系统足够强大的压力来进行测试。另外,当考虑到多并发(例如有10万客户端同时并发连接)时,如果性能测试工具在一台测试机器上只能运行50个或者更少的话,那么需要的测试机器数量也将会很庞大(例如2000台测试机),这个成本或许是许多公司不能承受的。因此,性能测试工具本身的性能必须要足够好才能满足需求、降低测试成本。

分布式系统自动化测试

自动化测试是测试行业发展的必然趋势,对于分布式系统测试而言也不例外。在实施分布式系统自动化测试的过程中,我们可能会碰到下面两个难点问题。

  • 涉及平台多且硬件杂,测试流程控制困难。在实施自动化测试的过程中,测试脚本需要控制的操作系统和应用程序很多,而且存在跨平台的特性,同时还有可能需要控制一些网络设备。因此,选择一个优秀的自动化测试框架成为了非常重要的工作之一。以我们的实践经验来看,STAF是一个不错的选择(官方网站:http://staf.sourceforge.net/),它的平台(Windows及Linux各版本)支持及开发语言的支持都很全面。
  • 测试结果验证复杂。对于分布式系统的自动化测试来说,我们需要通过测试脚本来收集各种测试结果数据以验证测试结果的正确性。在实施自动化测试的过程中,我们可以将测试结果数据收集部分模块化,通过各子模块来检测各项数据是否正确。例如,我们会设计一个日志分析模块,主要负责从服务器应用程序的日志中收集相应数据进行对比验证(本文前面提到的在打桩日志中增加关键字部分就显得格外重要)。

随着互联网的发展,大型分布式系统也越来越多、越来越复杂、越来越重要。如何有效地保证大型分布式系统7×24小时全天候持续稳定地运行也就成为了一个重要课题。本文希望通过对分布式系统测试过程中碰到的一些难点问题的分析给予读者一定的启发。

作者简介:

帅丹文,测试技术专家,近十年测试与开发工作经验,目前负责淘宝基础应用测试团队,对测试架构以及自动化测试、接口测试、分布式系统测试有深入的研究。

(本文来自《程序员》杂志10年08期)

Page 32 of 49« First...1020«3031323334»40...Last »