文档库 最新最全的文档下载
当前位置:文档库 › 电子商务网站测试

电子商务网站测试

电子商务网站测试
电子商务网站测试

第5 章电子商务网站测试

5.1 实训项目一程序及数据库测试

5.1.1 实训目的与要求

通过学习与实训,要求学生理解网站测试的重要性,掌握程序及数据库测试的内容与

方法,学会对具体的电子商务网站进行分析与测试。

5.1.2 实训预备知识

网站发布前要进行细致周密的测试,以保证正常浏览和使用。主要测试内容有以下几

个方面。

(1) 服务器稳定性、安全性。

(2) 程序、数据库测试以及网页兼容性测试,如浏览器、显示器。

(3) 文字、图片、链接是否有错误。

网页制作完成之后,对网页内容和网站整体性能进行有效的测试是十分必要的。如今,

网页的更新速度越来越快,更新的内容也越来越多,网页设计制作过程中难免会出现一些错误,但关键是要采取有效的方法和措施对网站进行测试,及时发现错误并更正。

在网站开发、设计、制作过程中,对网站系统的测试、确定和验收是一项重要而富有

挑战性的工作。网站系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户端的显示是否正常。最重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet 和Web 网站的不可预见性使网站系统的测试变得很困难,因此需要为网站系统的测试研究新的方法和技术。

1. 服务器稳定性测试

假设一个企业准备发布新的电子商务网站,其软硬件的设备与设施都已就绪。这个网

站看上去非常漂亮,所有的链接和图片都正确无误,但真正的问题是:它的后台服务在访问高峰时能否顶得住。这需要做严格的负荷测试。

1) 网站的负荷测试目的

为了能预测和防止系统瘫痪以及不可接受的服务迟缓,Intel 开发了严格的负荷测试程序,它针对以下5项关键目标。

(1) 确定一个应用能够支持的并发用户数和交易数的上限。

(2) 证明一个应用能够承受期望的每小时或每天的并发用户数和交易数。

(3) 证明一个应用和设施能够不停机地运行(24×7 模式)。

(4) 证明后台服务器能够承受期望的连接数。

(5) 证明单个的业务交易能够在合理的时间内完成。

电子商务网站设计与管理

·154·

·154·

2) 网站负荷测试的6 大测试程序

为了有效地评估上述5 个目标,Intel 开发了包含6 个关键测试的负荷测试程序,它们

分别是:

脚本验证/数据完整性测试。

单步测试。

性能空间测试。

持续测试。

数据库连接测试。

时间测试/业务实例。

每个测试可看做是对相互关联的系统和服务的行为与性能的深入观察。

(1) 脚本验证/数据完整性测试。

脚本验证测试的主要目的是保证测试是否按照设计的要求进行的。除了证实所记录的

测试步骤可以无错误地重复外,还要进行手工检验数据并在后台进行数据完整性测试。

一旦设计完成,将负荷测试计划记入一个脚本,先运行这个脚本并确认它是按要求运

行的,然后检查后台服务器上记录的日志。要查看互联网服务器日志、性能监督日志以及所有用来运行脚本的工具日志。当脚本在某个表中输入了一些东西,为了确认已经正确地输入数据库中,需要对数据库进行查询,还要注意检查是否有请求失败、超时或通信出错。除了检验脚本是被正确地执行外,该测试对确定运行脚本时产生的瓶颈和错误位置非常有用。

(2) 单步测试。

单步测试用来确定服务器允许的最大并发用户数和交易数。该测试模拟不断增加并发

用户数和交易数直至系统崩溃。一旦脚本设计好以后,第一次运行脚本应该反映未来6 个月内的期望的负载情况。这是所谓的“1X负荷”。

从1X负荷开始,增加到2X、4X,以此类推。随着这种指数的增长,到达某一点时,

后台服务器的记录会显示系统已经不能承受了。其症状是:互联网服务器的缓存命中率大增,互联网服务器的处理器占用率达到峰值,ASP日志记录的错误和连接中断数不断增加。

(3) 性能空间测试。

因为一周内对服务器的访问是不可能均匀分布的,还需利用性能空间测试来确定一个

应用和系统在不同寻常的大访问量时能够维持期望的交易量。

该测试让公司确定在长时间的高访问量下服务器的负荷、性能、内存的使用情况和应用

软件的稳定性,还可以确定是否具有满足未来客户需求的合适的应用软件架构和基础设施。

(4) 持续测试。

运行持续测试将证明应用在实际环境下能够持续工作。

持续测试的结果可看出应用和设施在短期及长期的支持能力。它还有助于预示客户在

公司网站上的感受。通过长时间的运行,该测试有助于发现小的、逐渐积累的问题,使公司能够在它们变成大问题之前将问题解决。

(5) 数据库连接测试。

数据库连接测试确定数据库服务器是否能够支持期望的连接数。通过模拟期望的用户

第5 章电子商务网站测试

·155·

·155·

并发连接数和交易量,测量服务器的负荷、性能、内存使用情况和应用软件的稳定性。该测试的结果将确定数据库服务器能够持续处理的负荷的上限、ASP 连接池是否正确工作以及还有什么措施来优化数据库的性能。

数据库连接是非常困难的。因为各种数据库的格式都不一样,开发者必须对他们所开

发的数据库产品的底层API 有深刻的了解。因此,能处理多种数据库的通用的API 就应运而生了——ODBC(Open Database Connectivity)。ODBC是人们创建通用API的早期产物,在

程序中可以使用相同的代码访问不同的数据产品。因此有许多种数据库(如Access、MSSQL Server、Oracle、Informix 等)都遵从了这种标准,被称为ODBC 兼容的数据库。ODBC 的具体作用如图5.1 所示。

图5.1 ODBC 的具体作用

一般来说,ODBC是由一套扩展的DLL(Dynamic Link Library,动态链接库)组成,DLL

提供了标准的数据库应用程序设计接口。而ODBC 是建立在标准化的SQL(Structured Query Language,结构化查询语言)之上。所以,通过ODBC 和SQL 就可以编写独立于任何数据库产品的数据访问程序。

①用ODBC连接数据库。ODBC中提供三种DSN,它们的区别很简单。用户DSN 只

能用于本用户。系统DSN 和文件DSN的区别只在于连接信息的存放位置不同:系统DSN 存放在ODBC 储存区里,而文件DSN 则放在一个文本文件中。

在ASP 中使用它们时,写法如下。

A.链接SQL Server

用系统DSN:

connstr="DSN=dsnname;UID=xx;PWD=xxx;DATABASE=dbname"

用文件DSN:

connstr="FILEDSN=xx;UID=xx;PWD=xxx;DATABASE=dbname"

还可以用连接字符串(从而不用再建立DSN):

connstr="DRIVER={SQL SERVER};SERVER=servername;UID=xx;PWD=xxx"

B.链接Access

用系统DSN

connstr="DSN=dsnname"

(或者为:connstr="DSN=dsnname;UID=xx;PWD=xxx")

电子商务网站设计与管理

·156·

·156·

用文件DSN:

connstr="FILEDSN=xx"

还可以用连接字符串(从而不用再建立DSN):

connstr="DRIVER={Microsoft Access Driver};DBQ=d:\abc\abc.mdb"

②缺陷。ODBC 含有大量的低级的调用,因此开发ODBC 应用程序还比较困难。开

发者不得不将大量的精力花在底层的数据库通信中,而不能专注于他们所要处理的数据。

③OLE DB。多年以来,ODBC已成为访问客户端/服务器数据库的标准。ODBC 提供

了基于标准的接口,接口要求SQL 处理功能,并被优化用于基于SQL 的方法。然而,如果要访问不使用SQL 的非关系数据源(例如,不按照关系存储数据的Microsoft Exchange Server)中的数据,情况会如何呢?

OLE DB建立在ODBC之上,并将此技术扩展为能提供更高级数据访问接口的组件结

构。此结构对企业中及Internet 上的SQL、非SQL 和非结构化数据源提供一致的访问(实际上,在访问基于SQL 的数据时,OLE DB 仍使用ODBC,因为对于SQL 来说,它是最优结构。)。

OLE DB 由3个组件构成:数据使用者(例如,一个应用程序)、包含并公开数据的数据

提供程序以及处理并传输数据的服务组件(例如,查询处理器、游标引擎)。OLE DB 是一个针对SQL 数据源和非SQL 数据源(例如,邮件和目录)进行操作的API。

OLE DB 为C 和C++程序员及使用其他包含C样式函数调用语言的程序员提供绑定。

有一些语言(例如,VB 和VBScript)不提供指针数据类型(地址变量)。因此,这些语言不能使用C 样式绑定,而且不能直接调用OLE DB。

在此基础上,Microsoft 推出了另一个数据访问对象模型:ADO(第一个是DAO)。ADO

采用基于DAO 和RDO 的对象,并提供比DAO 和RDO 更简单的对象模型(尽管会产生一些冗余的功能,如现在进行一项操作时可以用不止一种方法)。ADO 中的对象层次结构比

DAO中的更平缓。ADO 包含一些简化对数据存储区数据的访问任务的内置对象。

而DAO 是第一个面向对象的接口,DAO 模型是设计关系数据库系统结构的对象类的

集合。它们提供了完成管理一个关系型数据库系统所需的全部操作的属性和方法,这其中包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等。

④数据库链接实例。

dim conn

set conn = server.createobject("adodb.connection")

conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = "

& server.mappath("../db/bbs.mdb")

其中../db/bbs.mdb 是数据库存放的相对路径。如果数据库和ASP 文件在同一目录下,

你只要这样写就可以了:

dim conn

set conn = server.createobject("adodb.connection")

conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = "

& server.mappath("bbs.mdb")

第5 章电子商务网站测试

·157·

·157·

有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序,只要数

据库路径正确就不会出问题了。

(a) 建立MdbRecordset 对象。MDB数据库是一个完整的数据库,内部可能含有若干个

数据表,在此函数中,Connection 的作用是连接数据库,Recordset 的作用是打开数据表。Function CreateMdbRecordset(数据库文件名, 数据表名或Select语句)

Dim conn,Provider,DBPath

'建立Connection 对象

Set conn = Server.CreateObject("ADODB.Connection")

Provider="Provider=Microsoft.Jet.OLEDB.4.0;"

DBPath = "Data Source=" &Server.MapPath("数据库文件名")

'打开数据库

conn.Open Provider &DBPath

Set CreateMdbRecordset = Server.CreateObject("ADODB.Recordset")

'打开数据表

CreateMdbRecordset.Open "数据表名", conn, 2, 2

End Function

(b) 建立带密码的MDB 数据库的Recordset 对象。它的建立方式与建立不带密码的

MDB 数据库的Recordset 对象类似,只是多了一个密码参数,即在与数据库连接时,必须给出密码信息。

Function CreateSecuredMdbRecordset( 数据库文件名, 数据表名或Select 语句,

password )

Dim conn,Provider,DBPath

'建立Connection 对象

Set conn = Server.CreateObject("ADODB.Connection")

Provider = "Provider=Microsof.Jet.OLEDB.4.0;"

DBPath = "Data Source="&Server.MapPath("数据库文件名")

'连接数据库,注意要带有密码参数

conn.Open Provider &DBPath&"Jet OLEDB:Database Password="&password

Set CreateSecuredMdbRecordset = Server.

CreateObject("ADODB.Recordset")

'打开数据表

CreateSecuredMdbRecordset.Open "数据表名", conn, 2, 2

End Function

(6) 时间测试/业务实例。

时间测试/业务实例测试用来确定单个业务交易能够在合理的时间内完成。这是个需要

企业其他部门和IT 合作测试的例子,它是连接IT 和业务的桥梁。运行这个测试将记录下平均完成每个交易所需的时间,从零负荷、平均负荷到突发重负荷和重负荷。

3) 网站负荷测试的两点局限

负荷测试方法和工具在过去的一年取得了很大的进步,然而,仍然存在一些需要指出

的局限。因为当进行负荷测试时,已经建立了一个代表将来对服务器的要求的模型,它是根据公司对用户在网站上的行为估计而定。

电子商务网站设计与管理

·158·

·158·

虽然与互联网的连接因调制解调器的速度、局域网连接和网络延迟而不同,但在测试

模型中,所有虚拟用户都与互联网完美地连接:很高的带宽和最低的网络延迟。因此,除非这些变化能够在测试中进行模拟,否则这些模型对最终用户的感受的预测是有局限的。要实现真实世界的测试条件的最佳方法是建立与访问者有效的反馈机制。这样可以收集到用户的看法而不是测得的因特网性能,从而改进设施来满足用户的要求。

2. 安全性测试

Web 应用系统的安全性测试主要有以下几个方面。

(1) 现在的Web 应用系统基本采用先注册后登录的方式。因此,必须测试有效和无效

的用户名和密码,要注意到是否区分大小写、可以尝试多少次的限制、是否可以不登录而直接浏览某个页面等。

(2) Web 应用系统是否有超时的限制,也就是说,用户登录后如果一定时间内没有操

作任何页面,是否需要重新登录才能正常使用。

(3) 为了保证Web 应用系统的安全性,日志文件是至关重要的。需要测试相关信息是

否写进了日志文件、是否可追踪。

(4) 当使用了加密算法时,还要测试加密是否正确,同时要检查信息的完整性。

(5) 服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以要测试没

有经过授权就不能在服务器端放置和编辑脚本的问题。

基于Web 的系统测试与传统的软件测试既有相同之处,也有不同的地方,这对软件测

试提出了新的挑战。基于Web 的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端显示是否正常,还要从最终用户的角度进行安全性和可用性测试。

3. 程序及数据库测试

1) 程序测试

在网页制作软件Dreamweaver 中,“Check Target Browser”可以自动检测该网页在多

种不同版本的浏览器Internet Explorer 2.0~6.0 和Netscape 2.0~5.0 中的支持情况,并会自动生成一个报告详细检查结果的HTML 文件,并且调用默认浏览器。此检查报告十分详细,

不仅指出每个错误在文件中的详细位置,而且说明了错误的原因。检查功能还支持对JavaScript 和DHTML 的检查,可以解决使用FrontPage制作的网页在Netscape 下浏览往往显得杂乱无章的问题。

用Dreamweaver 软件制作的网页的层不太适合Netscape 调用,最好还是先将它转换成

为表格。这个问题用以上方法是检查不出来的。

对于拼写也可以使用程序检查,如在FrontPage 中打开检查拼写的网页,然后依次选择

菜单中的“工具”、“拼写与检查”或按F7键,然后FrontPage 2000 会报告检查结果,可以立即予以更改修正。

2) 数据库测试

在网站应用技术中,数据库起着重要的作用。数据库为Web 应用系统的管理、运行、

查询和实现用户对数据存储的请求等提供空间。在Web 应用中,最常用的数据库类型是关第5 章电子商务网站测试

·159·

·159·

系型数据库,它可以使用SQL 对信息进行处理。

在使用了数据库的Web 应用系统中,一般情况下,可能发生两种错误,分别是数据一

致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的。针对这两种情况,可分别进行测试。

5.1.3 实训步骤

1. 数据库测试

(1) 安装SQL 数据库连接软件(SQL execute helper tool)。

(2) 打开SQL 数据库连接软件,出现如图5.2 所示的界面,输入HOST IP、User、Password,单击Connect 按钮即可测试SQL 数据库是否连接成功。

图5.2 SQL数据库连接测试界面

2. 程序测试

1) 端口扫描

在客户端和服务器端进行一次端口扫描,找出那些已打开但并不需要的通信端口。各

种服务,如FTP、NetBIOS、echo、gotd 等使用的端口是引起安全问题的典型因素。

2) 检查用户账户

将目光转移,看看操作系统、任何数据库以及程序自身的账户,特别注意guest 账户、

默认账户或者简单密码账户以及不需要的用户ID。

3) 检查目录许可

在关闭了无用端口并禁用了多余的账号后,仔细检查一下程序所用到的数据库和服务

电子商务网站设计与管理

·160·

·160·

器目录的权限设置。很多攻击利用了配置失误的权限,这种方法经常被用来攻击Web 服务器。

4) 对数据库也进行和上面同样的设置

文件系统不是唯一因权限设置不当而受到攻击的对象,大多数的数据库系统也有很多

安全漏洞。它们的默认权限设置通常不正确,如打开了不必要的端口、创建了很多演示用户。加强数据库安全的措施与操作系统一样,要关闭任何不需要的端口、删除或禁用多余的用户,并只给用户完成其任务所必需的权限。

5.1.4 思考与练习

1. 思考题

(1) 如何注意网站的安全性?

(2) 服务器的稳定性测试指的是什么?在IIS 和Apache 中应如何设置以保证服务器的

稳定性?

2. 练习题

浏览某一个电子商务网站,测试其数据库安全性,并撰写测试报告。

5.2 实训项目二网页测试

5.2.1 实训目的与要求

通过学习与实训,学生应了解网页测试的内容,掌握网页测试的方法与技巧。

5.2.2 实训预备知识

1. 网页测试的内容

(1) 测试网页对浏览器的兼容度。浏览器的测试,是指测试网页在不同浏览器及其不

同版本下的运行和显示状况。在实际工作中,用户会使用不同的浏览器登录互联网。通过此项测试和修改,可以保证网页在大多数的浏览器中都能正确显示。测试结果既给出网页在IE 浏览器和Netscape 浏览器下的显示报告,还详细统计网页中哪些HTML 语法不被浏览器支持以及改善的建议。

(2) 分辨率测试。显示器在1024×768 像素与800×600 像素情况下网页有哪些变化。

(3) 操作系统测试。测试在不同的操作系统下,网页显示效果是否一致。

(4) HTML 语法检查。不正确的HTML 语法会影响浏览器的编译速度,而且可能会导

致页面在容错性差的浏览器中出错。

(5) 链接情况检查。帮你检查页面上所有链接是否正确,有没有死链接。当页面创建

了很多链接时,用它来帮助检查链接的正确性。

(6) 下载时间测试。测试网页在不同连接速度下的下载时间,并且指出被测试页面所

链接的文件(如图片文件、框架页面、样式表文件、脚本文件等)中哪个过于庞大。

第5 章电子商务网站测试

·161·

·161·

(7) 拼写检查。检查网页上的中英文文法错误。

下面重点介绍一下链接测试与兼容性测试。

1) 链接测试

链接是网站系统的一个主要特征,它是在页面之间切换和引导用户去一些地址求知的

页面的主要手段。链接测试可分为3 个步骤:首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证网站应用系统上没有孤立的页面。所谓孤立页面是指没有链接指向该页面,只有知道正确的URL 地址才能对其进行访问。

链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶

段完成,也就是说,在整个网站系统的所有页面开发完成之后进行链接测试。

下面是网页链接速度测试的代码。

电子商务网站设计与管理

·162·

·162·

2) 客户端兼容性测试

(1) 平台测试。

市场上有很多不同的操作系统类型,最常见的有Windows、UNIX、Linux 等。Web 应

用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。因此,在Web 系统发布之前,需要在各种操作系统下对Web 系统进行兼容性测试。

(2) 浏览器测试。

浏览器是Web 客户端最核心的构件,来自不同厂商的浏览器对Java、JavaScript、ActiveX、Plug-ins 或不同的HTML 规格有不同的支持。例如,ActiveX 是Microsoft 的产品,

它是为Internet Explorer 而设计的,JavaScript 是Netscape 的产品,Java 是Sun 的产品等。另外,框架和层次结构风格在不同的浏览器中也会有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。

测试浏览器兼容性的一种方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、

不同版本的浏览器对某些构件和设置的适应性。

2. 网页测试的方法

网页测试的方法见表5-1。

表5-1 网页测试的方法

测试类型测试方法

浏览器测试用Dreamweaver MX 2004中的“结果”面板

分辨率测试在操作系统中调整分辨率

操作系统测试在不同操作系统下测试

HTML语法检查用Dreamweaver MX 2004中的“命令”|“清理HTML”

链接情况检查用Dreamweaver MX 2004中的“结果”面板

下载时间测试对网页上传、下载测试

拼写检查用Dreamweaver MX 2004中的“文本”|“检查拼写”

5.2.3 实训步骤

1. 浏览器测试

(1) 在Dreamweaver MX 2004中打开目标网页,单击“窗口”|“结果”,打开“结果”

面板,如图5.3所示。

(2) 单击“结果”面板的“目标浏览器检查”按钮,单击左上角的按钮,在弹出的

菜单中单击“设置”按钮,打开“目标浏览器”对话框进行浏览器选择。单击“确定”按钮,在“结果”面板中会自动列出当前的检测结果。

第5 章电子商务网站测试

·163·

·163·

图5.3 “结果”面板

(3) 单击弹出菜单中“为整个站点检测浏览器”,在“结果”面板中将列出整个站点

中网页的不兼容信息。

(4) 单击“浏览报告”按钮,弹出一个关于网页中与浏览器不兼容的报表,报表详细

地列出了检测的浏览器及不兼容网页信息的位置。

2. 链接测试

(1) 在Dreamweaver MX 2004 中,单击“结果”面板的“链接检查器”按钮,单击左

上角的按钮,在弹出的菜单中选择“检查当前文档中的链接”或“为整个站点检查链接”命令。

(2) 在“结果”面板中查看链接情况。

5.2.4 思考与练习

1. 思考题

(1) 如何调整不同分辨率情况下的网页效果?

(2) HTML语法检查该如何测试?

(3) 将框架网页进行IE 和Netscape这两种浏览器测试。

2. 实训题

为整个站点进行链接测试。

相关文档