TPC-W总结
1TPC-W概述
TPC-W是一个用于电子商务测试的基准,适用于B2C和B2B商业模型。目前的版本号是1.8,由Transaction Processing Performance Council制定和发布的for web的TPC标准。
TPC-W基准是仿真了一个在线电子书店的场景,这个场景的参数都有明确的定义,它测的对象是一个包含Web服务系统,包含支持服务的硬件和软件,不包含该Web服务器所支撑的Web应用本身。一个例子:目前精品课程系统硬件有两台物理机器,软件有tomcat、mysql、memcache等,那么使用TPC-W测试出来的是这两台硬件加上这些软件组成的环境(不包含精品课程工程本身)的能力,与精品课程本身是没有关系的。
2TPC-W详述
TPC-W使用“相同的应用,即在线书店,测试不同的软硬件运行环境的性能”。TPC-W仿真了一个在线电子书店的场景,这个场景有三种工作模式:Browsing、Shopping和Ordering,三种模式的读写比例分别是95%:5%, 80%:20%, 50%:50%。这个比例指用户在使用电子书店的过程中产生的产品查看和产品浏览的比例。
TPC-W定义基准的服务器端是一个采用三层架构的电子书店的参数包含14个页面和8张数据表,这14个页面的用处都是有明确规定的,另外8张数据表的字段也是有规定的。但是有一点,在实现TPC-W规范的时候,只要满足这个最低要求即可,然后还可以按需要增加自己的页面和表格或者字段。纽约大学的版本中即增加了数据表的字段数。
TPC-W定义基准的客户端包含两个注意的部件,EB(Emulated Browsers)和RBE(Remote Browser Emulator)。EB是代表了一个浏览器,RBE可以看出是一个EB工厂,所有的EB的行为都是由RBE统一管理的。主要进行模拟人的交互行为的是EB,一个EB代表了一个与网站进行Web交互的人。EB使用Http协议和ejb的库函数模仿人在访问网站的时候进行的搜索、浏览、下订单、付款等等行为。以搜索为例,EB模仿人的输入关键词,然后触发服务器的Servlet执行搜索,并将搜索结果以html的形式返还给EB。RBE监控EB的整个生命期。
TPC-W的测试结果是WIPS,即每秒处理Web交互的数目,这里Web交互包含产品查看、产品信息更新、下订单、修改订单、提交订单、付款等等。此外还有WIPSb、WIPSs和WIPSo,即在Browsing模式、Shopping模式和Ordering模式下的WIPS值。
3关于NYU-UVA版本的TPC-W实现
官方给出的Web服务器软件是JBoss3.2.x和MySQL 4.1.x。我在实际的测试过程中使用的版本和这个稍微高点。使用ant也可以编译出war包部署在tomcat容器中部署。
NYU-UVA版本包含了Server和Client客户端。目前,按照官方给出的解释,这个实现有部分没有遵循TPC-W的规定。其中包括:订单确认的时候没有使用TPC-W规定使用的SSL;没有实现付款时候与第三方支付方,即类似支付宝的支付网关。官方的解释是需要使用SSL和付款的交互占所有交互的比例相当小,所以这个对测试结果的影响不是很大。除了这里给出的没有遵循TPC-W规定的地方外,其他的都严格按照TPC-W实现的。