浅谈Web应用服务器测试

2024-09-22

浅谈Web应用服务器测试(精选15篇)

1.浅谈Web应用服务器测试 篇一

前些日子的安全事件大多与Web应用程序密切相关,许多单位和个人也由此看到了采取必要措施防护Web应用程序安全的重要性,笔者觉得有必要在采取防范措施之前先对自己的系统进行一次严格的渗透测试。因为一些专业的应用程序渗透测试工具和服务有助于防止自己的网站变成 和恶意软件的桥头堡。

有人认为单位的网站有了Web防火墙的保护就不需要其它保护措施了。这是错误的,因为最近的攻击以及将来的攻击将越来越依赖存在于Web应用程序中的缺陷,这些缺陷通常都包含着易于被利用的漏洞。据有关数据统计显示,如今多数支持外部访问的应用程序都是基于Web的,而其中的多数又都包含着可被利用的漏洞。

所以,在将Web应用程序推向实际使用之前,最好先借助Web应用程序渗透工具测试一下。目前,这类工具多数都可以执行Web应用程序的自动扫描,它们可以实施一些威胁模式测试,从而揭示一些常见的漏洞,例如许多程序可以揭示Sql注入式攻击漏洞、跨站脚本攻击等。有时,这些工具还可以提供一些参数供用户修正所发现的漏洞。

用户需要在攻击者实施破坏之前先对自己“狠”一点。当今的Web 渗透测试已经被多数机构看作是一个保障Web应用程序安全的关键步骤,这种安全测试已经成为机构风险管理的至关重要的部分。否则,单位就是将这种“测试”拱手交给了 。

而如今的安全测试市场并没有绝对的标准,所以有必要探讨一些评估和使用这些工具的服务和方法。(本文所涉及的Web应用程序渗透测试工具也指Web应用程序扫描工具)

三个要素

1、使用者:

由于其复杂性,将保障Web应用程序的安全性的责任分配给适当的人员并不是一件简单的事情。对开发人员和咨询人员来讲,这可谓是一个新的概念。安全管理成员也许更熟悉网络问题,而不是应用程序问题。那么,谁来做这件事情呢?笔者认为,由安全专家们实施测试,然后将结果交给开发人员的做法并不明智,甚至难以实施。不过,这正是目前许多公司正在使用的方法,至少在开发人员乐意使用这种工具之前是这样的。

如有的信息安全专家就承担了Web应用程序安全的责任,他们相信维护和保障企业网络安全最终是他们的责任,所以不必由应用程序的开发人员解决漏洞问题。如果开发人员说,不要紧,我检查一下,应该没事儿的。你怎么办呢?

试想如果我们将测试工具将由开发人员使用,他检查出来的安全报告篇幅又较长,还不把他们给吓坏了?实际上,安全团队可以帮助开发人员使用这种工具。安全人员由于具备了专业的知识和技能,也就能够区分安全问题的优先顺序和严重程度,并可以编辑这些报告,从而便于开发人员实施修正措施。如果由开发人员自己解决这些问题,如果发现了200个问题,他又如何判断哪些是高风险的漏洞,哪些是低风险的呢?

所以,先要决定这种漏洞扫描程序给什么人用的问题。

2、这种扫描的性质:

也就是要看它是一种工具还是一种服务?用户可以购买相关工具,并投入资源来打造一个强健的测试机制,或者通过一个厂商来远程扫描企业的Web应用程序,验证所发现的问题并生成一份安全聚焦报告。但由于控制、管理和商业秘密的原因,许多公司喜欢自己实施渗透测试和扫描,但专业的扫描服务将会不断发展壮大。

公司也可以选择兼而用之。如有的安全管理人员自己先不使用安全测试,而是委托其它的专业厂商进行。特别是在发现自己的公司并没有这方面的专业人员来管理安全测试所生成的海量数据时,这应该是一个明智的选择。否则,企业会发现受到许多似是而非的东西的影响,并不能得到真正漏洞的完整报告分析。企业可以求助于专业的公司分析测试结果,并与开发人员协商来修正问题。在逐渐熟悉这种服务或工具之后,企业可以扩展这种工具的使用,并且可以采取一种三步走的方法,

第一步,开发人员测试代码,并与安全测试厂商协调。第二步,安全管理人员用安全测试工具进一步测试程序。第三步,将应用程序推向互联网,由专业的测试公司或工具来实施测试。

3、如何整合?

这些工具在通过本地化方式或通过应用程序接口(API)与开发人员或咨询团队所使用的其它系统整合后,运行起来将达到最佳状态。如与内容管理工具、项目管理工具等工具的整合,从而也便于跟踪并修正其它方面的代码缺陷。如与微软的可视化开发开台Visual Studio.net的集成,就可使开发人员从其桌面上执行扫描,它的使用界面类似于其开发工具的界面。

最好的工具应当能够将结果直接导出到一个静态代码扫描工具中。这正是Web应用程序测试工具可以告诉用户是什么性质的漏洞,但却并不查明代码中是哪个位置有问题的原因。

10个评估标准

一款优秀的测试工具总有其自身的独特性,但不同厂商的扫描技术原理大同小异,其不同点也不过在于下面的这些特性:

1、与软件开发、生产过程、平台的高度集成。

2、可管理部署的多种扫描器。

3、针对不同环境进行调整的能力。

4、提供除应用程序扫描之外的特性和服务,如扫描源代码、其它的一致性分析、自动漏洞修正等,还可对进程设计提供帮助等。

5、漏洞检测和纠正分析。不但应当报告漏洞,还应当以一种开发人员可以理解的语言和方式来提供改正建议。这种扫描器应当能够确认被检测到漏洞的网页。并尽量排除那些似是而非的东西。

6、持续有效地更新其漏洞数据库。因为时过境迁,总有新的攻击出现,供应商应当根据新出现的漏洞更新其数据库。

7、报告和分析。这种工具应当能够有助于对检测到的漏洞进行分类,并根据其严重程度对其等级评定。此外,还要有漏洞的详细解释、建议的解决方案、到达现有补丁的链接等。这种报告最好还能够满足应用程序开发人员和不同水平的安全专业人士的需要。

8、非安全专业人士也易于上手。

9、协议支持:如今的多数扫描器仅使用HTTP协议来探测支持Web的应用程序。然而,如果它还支持其它协议的话,如增加SOAP协议等。就会极大地增加其可用性。

10、这种工具应当支持常见的Web服务器平台,如IIS和Apache,以及ASP、JSP、ASP.net等网络技术。

使用渗透测试工具的四个注意事项

首先,要保证贵公司不仅仅要投资于扫描工具,还要加强培训、员工管理,并围绕着发现和修正漏洞制定强健的进程。有些单位在拿到工具之后,不管三七二十一,就针对Web应用程序实施扫描和测试,却没有教育测试人员如何测试,也不花费点时间来教育员工如何配置,如何使用相关的插件来强化这种测试。这是盲动的表现。

第二、不要期望开发人员马上就喜欢这种工具。许多开发人员可能对这些工具所提示的安全状态不感兴趣或不屑一顾。企业应当关注如何让员工认识到所揭示内容的严重性和风险。

第三、要认识到这种工具的局限性。一些人相信,只要这些工具没有发现问题,他们就可以高枕无忧了。但笔者要说的是,这只能说明你的系统也许并不存在这些特定的问题。因为任何工具都不可能包含过去和未来的所有漏洞清单,所以这种工具并不是包治百病,从一定意义上讲,它们有时确实无能为力。单靠一种工具并不能发现所有的问题,经常出现这种情况,用一种漏洞扫描工具发现的漏洞,用另外一种漏洞扫描工具却无法发现。所以还需要人力资源来确认问题的存在。

第四、要真正认识到,安全并不是权宜之计,不是忙完了这阵子就算完。因为Web应用程序是动态变化的,企业需要经常地、不断地测试和检查,以保障不会出现新的漏洞。如有的单位每隔一个星期就扫描一下。笔者认为,只要人力、物力许可经常检测应当是一件好事。

2.浅谈Web应用服务器测试 篇二

当前, Web版MySpaceIM测试服务仅限于加拿大地区用户, 未来几周将推广至美国等英语国家, 普及到其他国家和地区需数月时间。

Web版MySpaceIM位于MySpace用户个人页面下方的工具栏中, 与Facebook Chat服务相似。用户可选择只对好友可见, 也可以选择与不在好友列表中的MySpace用户聊天。

3.浅谈Web应用服务器测试 篇三

关键词:Web应用系统;系统测试;动态网页;静态网页

中图分类号:TP311.5

随着Internet的应用范围变得更加广泛,更多的用户可以通过Web应用系统来完成各种需求,其复杂度正在对不断增高。选用什么样的方法来进行测试,会得到不同的效率和结果。因此,对Web应用系统测试的方法进行有效性的分析和研究,对测试环节有着重要的意义。

1 Web应用系统测试方法分析

1.1 Web应用系统测试的几种方法

(1)数据驱动测试

数据驱动测试是单独将用于测试的数据存储起来,测试的时候可以独立地调用该数据文件,这样就在结构上把测试的控制流和数据流相互分开,可以创建多个不同的独立数据文件达到输入大量不同数据的测试方式。数据驱动优点就是实现简单,修改替换方便。

(2)关键字驱动测试

关键字驱动测试则对数据驱动进行了扩展,在逻辑上用测试用例来进行描述,这样就代替了数据驱动中的数据文件,使用更加接近自然语言的方式,对将要进行的测试可以采用一批关键字来给定测试。这种方法只注重目标,而不注重过程怎么实现。

(3)模型驱动测试

模型驱动测试是通过形式化语言的描述,对测试过程中的用例采用建模的方式来生成,最常见的方式就是采用UML来进行建模,建立Web应用系统的对象模型。最终通过模型自动生成测试需要的用例,得出最后的测试结果。

(4)用户会话测试

用户会话测试主要是模拟或从真实的用户场景出发,最好是已经投入一段时间使用的Web应用系统,通过数据库的日志记录,采集访问Web应用系统的用户会话的数据,并把这些数据作为测试的主要数据来进行测试,并对结果作出分析,达到最大限度地以真实用户场景来进行的一种测试。

(5)网络爬虫测试

网络爬虫测试是一种新近出现的测试方法。利用网页爬虫的工作原理和机制,抓取需要测试的网页数据,把这些数据存储到数据库当中去,并对这些数据进行分析,最终得出测试的结果。

1.2 测试方法的有效性比较

对于一个规模较小、复杂度不高的Web应用系统来说,即使是用户数量多,但因为系统本身复杂度不高,应该优先采用数据驱动测试的方式。表1对前三种测试方法作出了对比。表2对后两种测试方法做出对比。

数据驱动测试把数据单独剥离出来,便于数据的输入维护与更改,逻辑结构简单清晰。产生数据文件时的开销比较大,维护和管理专业性强,需要专业人员进行操作。

关键字驱动测试封装性好,测试操作简单,自动化程度更高。测试方法易于推广到其他系统测试。关键字不易于选择,一旦选择不恰当,会导致测试产生更大的开销。

模型驱动测试用形式化的语言来进行描述并生成测试用例。对用户需求测试可靠性高。更加贴近系统需求和测试目标。测试可以和系统的设计与运行同时进行,与传统开发模式不同,对软件开发过程实现迭代式开发,保证了系统质量。

用户会话测试一种场景测试,可以充分检测用户需求,用户使用感受,以及用户满意度用例选择不当会导致测试产生冗余现象。

网络爬虫测试利用爬虫机制,测试效率比传统方法高,可以检测系统运行过程中的漏洞。系统复杂度高的时候效率难以控制。

前三种属于开发阶段的测试,后两种属于使用阶段系统的测试。根据实际情况选择适当的测试方法搭配测试。

2 测试方法的度量指标

测试方法度量的指标是基于测试的规模大小以及测试复杂的程度,度量流程如图1所示。

图1 度量流程

度量指标可以从以下几个方面衡量:

2.1 测试所用的时间

在能满足测试需求的前提下,整个测试所用时间越短越好,说明选用方法的测试效率高。可用线性公式y=∑x来进行计算。其中,y就是所需时间的总和,x为测试个模块单独使用的时间。

2.2 测试所投入的人员

投入人员的数量并不是越多越好。如果将测试总量采取分而治之的方式进行测试的话,上面公式可以加入影响因子y=∑ax,a为影响因子,考虑投入人员以及人员工作效率等因素,其值可以为找出各模块的系统缺陷数量与该模块投入人员的比值。

2.3 测试用例的产生效率

采用不同方法产生的测试用例效率也不相同。产生效率为单位时间内该方法能生成的测试用例的数量。即产生效率n=m/t。m为产生测试用例的数量,t为产生测试用例所需的时间。

2.4 测试用例所覆盖的比率

在能全面体现Web应用系统功能的前提下,使用最少数量的用例(同时考虑深度和广度)来进行测试。即是测试用例产生进行测试之后完成的测试点数量与测试需求中的测试数量的比值。可以通过线性回归统计的方式来进行计算。

3 结束语

Web应用系统正广泛使用在各行各业的软件系统当中,对其进行完善的系统测试是保障这些软件系统与用户正常交互的必须拥有的步骤。采用不同的测试方法,会带来不同的测试效率和有效的结果。针对不同的测试方法进行分析和对比,对具有对不同特征系统找到对应最佳的测试方法,才能使Web应用系统的可靠性得以充分地保障。

参考文献:

[1]伍小荟.面向软件可靠性的性能测试方法研究与应用[D].上海交通大学,2011.

[2]曾凡平.软件漏洞测试若干问题研究[D].中国科学技术大学,2009.

[3]王栓奇.软件可靠性加速测试与评估方法[J].哈尔滨工程大学学报,2012,11:1358-1365.

[4]李铭.软件装备维护回归测试技术研究[D].电子科技大学,2013.

作者简介:于为(1980-),女,硕士,讲师,主要研究方向为:软件开发技术,企业信息化,软件工程新技术。

4.浅谈Web应用服务器测试 篇四

市场研究机构Gartner公司高级分析师Daryl C. Plummer表示,Web服务是通过标准的互联网技术交付的松耦合的软件组件。Web服务是平台和供应商独立的协议,能够使来自不同数据源的应用通过一个公共的XML文档格式互相交流数据和信息,同时没有浪费时间的自定义编码。使用Web服务,可以让 IT部门更侧重于建设基于标准的应用基础设施,而不是专有技术---这是创建一个更加灵活的企业架构的重要基础。

使用Web服务集成CRM应用可以在许多方面给企业带来好处。使用Web服务进行集成的企业有可能对于市场变化和竞争压力变得反应更快和更有效率。通过重用组件,Web服务既能减少应用集成的成本,又可以帮助企业解决系统互用性的挑战。Web服务也为信息和数据共享建立了一种共同的格式,从而使企业能够克服系统不兼容的问题,并能有助于更快的被用户所接受。

Web服务可以帮助一个企业以一种更具成本效益和更有效率的方式把按需定型(On-Demand)自助式应用和交互式语音应答(IVR)系统同企业的核心CRM应用集成在一起。这使得企业能够无缝地在自助式工具和模块与CRM应用之间交换数据和信息,而不需要经历一个漫长而复杂的集成过程。

虽然Web服务提供了一种有效的集成机制,不过任何事情都既有好的一面也有不好的一面,Web服务确实也有一些缺点。比如,因为相互依存性和定制化是不太容易实现的,因而Web服务的用户界面不是很灵活。而且,它是一个相对较新的技术,因此,它的标准和规范都仍在进一步发展之中。作为一个基于HTTP的协议,Web服务还容易受到安全性威胁并且必须使用认证机制和SSL加密技术才能进行部属。

Web服务是如何帮助CRM应用集成的

使用Web服务整合任何两个应用都需要需要一个面向服务的架构(SOA)。Web服务是通过一个应用服务器环境交付的,而SOA可以对这些服务进行约束。Web服务器可以提供访问Web服务的HTTP网络传输,而应用服务器则负责托管简单对象访问协议(SOAP)的接口。 Web服务还提供了组成服务的对象组件,而对象组件则提供应用之上的商业服务层。最终的结果是Web服务提取底层的应用,在明确定义的业务流程中提供独特的援助服务。

以下步骤构成一个使用Web服务集成CRM应用的标准过程。集成过程的持续时间会由于应用的不同而不同,主要取决于业务单元的数量和需要部署的Web服务的数目,

同样地,任何两个应用的集成部署步骤和过程也是不同的,不过,处理数据所使用的方法和技术将是一样的。下面列举了一些集成CRM应用的技术准则,请务必记住。你可以根据实际情况灵活应用:

◆SOAP数据处理应该使用扩展标记语言(XML);XML是能够提供标准数据和信息表示方式的一种语言。

◆SOAP通用描述、发现和集成(UDDI)应该被用于列出和定位应用。UDDI是一个“目录标准”,目前有一些应用工具把它作为一种内置服务提供给用户在集成时使用。

◆SOAPWeb服务描述语言(WSDL)文件应该从数据应该被发往的第三方应用中获取。WSDL是一个“描述标准”,一个应用程序可以使用WSDL来描述它与的用户界面以及与其它应用的互动规则。在表现形式上,WSDL的是一个XML文件,该文件描述了一个Web服务,它指定了服务的位置以及服务(或方法)暴漏给外界的操作。一个WSDL文件还可以包含其它元素,比如扩展要素和服务元素,它们用来在一个单一的WSDL文件中把多个Web服务的定义聚合在一起。

◆SOAP在每个应用提供的专有工具的帮助下使用WSDL并且生成XML消息以满足所需的数据结构。

◆SOAP使用SOAP协议传输XML数据,SOAP是一个轻量级的信息交换协议。同时,SOAP还是一种基于XML的协议,由三个部分组成:一个协议框架、一套编码规则和一套表示规则。协议框架描述了信息中包含什么内容以及如何处理这些内容;编码规则主要用于表示应用程序定义的数据类型实例;表示规则主要用于代表远程过程调用和响应。

◆SOAP可以被像HTTP或者HTTP扩展框架(HTTP Extension Framework)这样的协议中。HTTP通信协议有助于使用上面提到的XML数据查询第三方应用程序或者与第三方应用程序互动。

如何使用Web服务开始进行CRM集成

如果你正在考虑使用Web服务作为你的CRM部署工作的一部分,第一步是要分析现有的应用服务器、应用程序开发环境以及它们与Web服务的扩展能力。

其次,在使用Web服务着手进行应用集成项目之前,分析和评估的数据在多个客户管理系统中的数据。

5.浅谈Web应用服务器测试 篇五

1.下载webbench文件

直接网上下载webbench文件或wget命令下载:

wget home.tiscali.cz/cz210552/distfiles/webbench-1.5.tar.gz

2.解压要编译的文件

tarzxvf webbench-1.5.tar.gz

3.编译源代码和安装文件

cd webbench-1.5

vim Makefile (自定义安装路径,PREFIX?=/usr/local)

make&& make install

3.2 可能的报错

问题描述:

我的系统是CentOS6.3,在安装时报如下错误:

cc -Wall -ggdb -W -O-c -o webbench.o webbench.c

webbench.c: 在函数‘alarm_handler’中:

webbench.c:77: 警告:未使用的参数‘signal’

cc -Wall -ggdb -W -O-o webbench webbench.o

ctags *.c

install -s webbench /usr/local/bin

install -m 644 webbench.1 /usr/local/man/man1

install: 无法创建普通文件”/usr/local/man/man1“: 没有那个文件或目录

make: *** [install] 错误 1

解决办法:

1)缺少ctags命令引起的,需要安装ctags

wget prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz

cd ctags-5.8

./configure && make && make install

2)无法创建普通文件”/usr/local/man/man1“:没有那个文件或目录

在/usr/local/下手动创建man、man/man1,重新到webbench-1.5下make && makeinstall即可,

3.3 使用

webbench-c 500 -t 30 172.7.9.201/

参数说明:-c表示并发数,-t表示时间(秒)

测试结果:

[root@shiwei software]# webbench -c 500 –t 30 172.7.9.201/

Webbench - Simple Web Benchmark 1.5

Copyright (c) Radim Kolar -, GPL Open Source Software.

Benchmarking: GET 172.7.9.201/

500 clients, running 30 sec.

Speed=721654 pages/min, 1900355 bytes/sec.

Requests: 360827 susceed, 0 failed.

每秒钟传输数据量:1900355 bytes/sec每秒钟相应请求数:721654/60= 12027 pages/sec

6.Web安全测试知多少 篇六

2. 数据验证类型: 如果web server端提交sql语句时,不对提交的sql语句验证,那么一个 就可暗喜了。他可将提交的sql语句分割,后面加一个delete all或drop database的之类语句,能将你的数据库内容删个精光!我这一招还没实验在internet网站上,不知这样的网站有没有,有多少个。反正我负责的那个web系统曾经发现这样的问题。

3. 网络加密,数据库加密不用说了吧。

WEB软件最常碰到的BUG为:

1、SQL INJETION

2、对文件操作相关的模块的漏洞

3、COOKIES的欺骗

4、本地提交的漏洞

SQL INJETION的测试方法

原理:

如有一新闻管理系统用文件news.asp再用参数读取数据库里的新闻譬如

www.xxx.com/news.asp?id=1这一类网站程序

如果直接用

rs.open “select * from news where id=” &

cstr(request(“id”)),conn,1,1

数据库进行查询的话即上面的URL所读取的文章是这样读取的

select * from news where id=1

懂得SQL语言的就知道这条语言的意思是在news读取id为1的文章内容。

但是在SQL SERVER里select是支持子查询和多句执行的。如果这样提交URL的话

www.xxx.com/news.asp?id=1and 1=(select count(*) from admin

where left(name,1)=a)

SQL语句就变成了

select * news where id=1 and 1=(select count(*)

from admin where left(name,1)=a)

意思是admin表里如果存在字段字为name里左边第一个字符是a的就查询news表里id为1的内容,news表里id为1是有内容的,从逻辑上的角度来说就是1&P。只要P为真,表达式就为真,页面会返回一个正确的页面。如果为假页面就会报错或者会提示该id的文章不存在。 利用这点就可以慢慢得试用后台管理员的用户和密码,

测试:

测试存不存在SQL INJETION很简单如果参数为整数型的就在URL上分别提交www.xxx.com/news.asp?id=1and 1=1 和www.xxx.com/news.asp?id=1and 1=2

如果第一次返回正确内容,第二次返回不同页面或者不同容内的话表明news.asp文件存在SQL INJETION。如何利用就不多说了,毕竟我们都不是为了入侵。

对文件操作相关的模块的漏洞在测试

原理:

如一上传文件功能的程序upload.asp如果程序员只注重其功能上的需求没有考虑到用户不按常规操作的问题。如上传一个网页木马程序上去,整个网站甚至整个服务器的架构和源码都暴露而且还有一定的权限。

测试:

试上传asp,php,jsp,cgi等网页的文件看是否成功。

补充:

还有像 www.xxx.com/download/filespath.asp?path=../abc.zip

下载功能的软件如果

www.xxx.com/download/filespath.asp?path=../conn.asp

很可能下载到这些asp的源码数据库位置及用户密码都可能暴露。

其它还有很多,就不一一举例了。

COOKIES的欺骗

原理:

COOKIES是WEB程序的重要部分,COOKIES有利有弊。利在于不太占用服务器的资源,弊在于放在客户端非常容易被人修改加以利用。所以一般论坛前台登陆用COOKIES后台是用SESSION,因为前台登陆比较频繁,用SESSION效率很低。但如论坛程序管理员用户在前台也有一定的权限,如果对COOKIES验证不严的话,严重影响了WEB程序的正常工作。如前期的LEADBBS,只有后台对COOKIES验证严格,前台的位置只是从COOKIES读取用户的ID,对用户是否合法根本没有验证。

测试:

推荐使用MYBROWER浏览器,可即时显示及修改COOKIES。尝试一下修改里面的对应位置。

本地提交表单的漏洞

原理:

Action只接爱表单的提交,所以表单是客户WEB程序的接口。先举一个例子,一个投票系统,分A,B,C,D各项的VALUE是100,80,60,40。

但是如果先把些页面以HTML形式保存在本地硬盘里。然后修改其VALUE,再向其ACTION提交,ACTION会不会接受呢?

测试:

如一投票系统,把投票的页面保存在本地硬盘,用记事本打开,找到对应项的VALUE值,对其修改,然后提交。

强制后台浏览:绕过登陆页面,直接提交系统文件夹或文件页面。不完善的系统如果缺少index.html就可能被绕过登陆验证页面。在系统文件夹中保留一些公司机密内容也会造成不可估计的损失。

跨站脚本攻击:基本上这个我只是在论坛――各种形式的论坛里看到过,具体的一个例子,比如这段代码可以被填在任何输入框里 “”,如果未对一些字符,如 “<”、“>”进行转换,就会自动执行这个脚本。百度快照所提供的网页都自动将代码执行了。不信大家搜一点JS的代码,看看你能不能看到。

7.浅谈Web应用服务器测试 篇七

语义Web技术和Web服务的结合产生了语义Web服务,是当前Web服务发展的主流趋势。它采用OWL-S服务标记语言,在OWL的本体框架下对服务规约进行描述,使得计算机能够理解以前只能由人工进行处理的服务规约信息,并自动根据这些描述信息来获取Web服务的各种参数。

早期,国内外学者在Web服务测试用例自动生成方面的研究主要基于WSDL语言[1,2,3]。还有的学者通过对WSDL语言添加扩展信息来生成测试用例[4,5]。随着语义Web服务的兴起,越来越多的学者开始研究利用语义Web描述服务规约的Web服务测试用例自动生成方法[6,7,8,9]。姜瑛利用合约变异对随机生成的测试数据集进行筛选优化[6],但由于采用随机生成初始测试数据,存在很多冗余和无效数据。Noikajana将语义描述中的输入、输出、前置条件和后置条件(IOPE)转换为决策表中的条件入口、行动入口、条件桩和行动桩,构建一个有限决策表来产生测试用例[7]。但是这种方法需要人工对条件桩和行动桩进行构造。

该文通过对OWL-S文档进行解析,定义输入数据模型(IDM),结合本体类等价划分,基数约束和属性限制,以及SWRL规则,提出了测试用例自动生成的具体算法,在一定程度上实现了测试用例自动生成,为Web服务自动化测试提供了有力手段。

1 背景知识

OWL-S是一种基于本体描述语言OWL的Web服务标记语言,对Web服务的规约信息进行语义描述,使Web服务成为计算机可以理解的实体,从而可以自动完成诸如发现、调用、互操作和监控等任务。

OWL-S通过(hasValue、allvaluesFrom、someValuesFrom)来限制类中指定属性的值域,通过(minCardinality、maxCardinality、cardinality)来约束类中属性可以出现的次数,这些可以在等价分区生成时作为关键划分条件。OWL-S中的数据属性指向具体的数据类型和取值,是测试数据生成的重要依据,它重用了XMLSchema和RDF中的全部数据类型,还包括通过添加诸如minLength、maxInclusive等刻画约束,从基本数据类型中衍生出来的自定义数据类型。

这里我们将这些属性限制、基数约束和数据类型刻画约束进行分类,分别采取边界值、等价类划分和随机生成法等来生成测试数据。具体分类如表1所示。

2 测试用例生成方法

2.1 具体步骤

本体中的类概念具有层次结构,如果把父类看作一个输入空间的话,子类在一定程度上可以看成是父类的一个子空间,利用子类来对父类所代表的个体集合进行划分,能够产生各种有效和无效的等价分区。OWL-S中包含对Web服务所需输入参数的描述,其类型可以是内建数据类型或自定义数据类型的地址引用,也可以是类的地址引用。对于类型为类的输入参数,可以根据从本体中获取的类和属性信息,根据一定的规则生成有效和无效等价分区,再为每一个等价分区生成测试数据作为输入参数的备选测试数据。最终,生成整个Web服务的测试用例。

测试用例生成方法主要包括等价分区生成,测试数据集生成,测试数据选取三部分,具体步骤如下:

1)将被测服务的OWL-S描述文件导入分析器中,分析器根据需要利用OWL-S API导入相关的本体文件,解析出所有OWL实体,存入OWLOntology中。

2)获取被测服务中需要测试的Process服务,得到该Process服务的IOPE信息。对Inputs中的参数逐一进行分析。

3)根据该Input参数的OWL数据结构、约束条件等,进行等价子类划分。

4)根据Precondition和Effect信息,对等价分区进行再次细化。

5)对每一个等价分区逐一调用数据生成器,生成相应的测试数据,并保存在测试数据库中。

8)为每个Input参数选择一个等价类实例作为输入数据,最终生成测试用例。

2.2 输入数据模型定义

利用美国Fujitsu实验室开发的OWL-S API,能够实现对OWL文件及OWL-S文件的读写,从而获取指定Web服务的全部本体信息。但为指定输入参数生成测试数据,只需要对部分涉及到的本体信息进行分析。为了能够更好地组织和保存与输入参数相关的各种OWL本体信息,我们定义一个输入数据模型(IDM),将涉及指定输入参数的本体类、属性以树的形式组织起来,这样更加方便测试用例生成算法的实现。

该模型形式化定义为六元组:IDM=,其中:

·C表示OWL类的集合。

·IN表示OWL个体的集合。

·OP表示对象属性的集合,元素形式为:{PURI,Domain,Range}。其中,PURI表示该属性的URI地址;Domain∈C;Range∈C∪IN。

·DP表示数据属性的集合,元素形式为:{PURI,Domain,DataType,DR},其中Domain∈C;DataType包括OWL-S支持的所有数据类型;DR表示对该数据类型的数据约束刻画,DR中的元素形式:{x,nonNegativeInteger or patternExpression},其中x为表1中刻画约束关键词。

·EP表示类与属性之间的关系,元素形式为:{c,f,p},其中c∈C;p∈OP∪DP;f∈PR∪{¢},PR表示属性约束(Property Restriction),元素形式为:{x,Drange},其中x为表1中属性限制关键词,DRange∈Range∪DataType};f表示类与属性之间的基数约束,元素形式为:{x,nonNegativeInteger},其中x为表1中基数约束关键词,并且f可以是f1∪f2的形式。

·nr表示开始节点,且nr∈C。

2.3 IDM生成算法

具体的IDM生成算法如下:

Step1:建立类的结构树。

1)使得C=¢,IN,OP=¢,DP=¢,R=¢,EP=¢;利用OWL-S API获取该Web服务的本体信息OWLOntology Ont;

2)判断输入参数的ParamType,如果指向内建数据类型或自定义数据类型,则建立dp={puri,domain,datatype,dr},其中,puri=ParamType,domain等于输入参数的ParamName;datatype和dr从本体信息中获取;并将dp放入集合DP中,即DP=DP∪{dp};然后,转到step2;否则,以该输入参数的ParamType值,建立OWLClass node,并将该节点放入集合C。即C=C∪{n},令nr=node;

3)在Ont中递归的查找类node的全部子类,放入C中。

Step2:递归建立类与属性之间的关系。

1)令node=nr,如果node=null,则转到Step4;

2)否则,从Ont中逐个获取node类的每一个属性,如果该属性为对象属性,利用该属性的puri,domain,range,建立op={puri,domain,range},并将op放入集合OP中,即OP=OP∪{op};获取该属性的基数约束和属性限制f1,建立ep={node,f1,op},并将ep放入集合EP中,即Ep=EP∪{ep};转到Step3;

3)如果该属性为数据属性,利用该属性的puri,domain,datatype,dr,建立dp={puri,domain,datatype,dr},并将dp放入集合DP中,即DP=DP∪{dp};获取该属性的基数约束和属性限制f2,建立ep={node,f2,op},并将ep放入集合EP中,即Ep=EP∪{ep};转到Step4。

Step3:获取对象属性指向的类的IDM子结构。

1)从Ont中获取该对象属性的range所指代的类,建立OWLClass range,并将该类放入集合C。即C=C∪{range}。

2)按照Step1(3)步和Step2中的方法获取range的子类、数据属性和对象属性信息,分别保存到相应的集合C、DP、OP和EP中,转到Step4。

Step4:Return IDM。

2.4 测试数据生成算法

测试数据生成算法以IDM作为输入,生成的测试数据保存在测试数据库中,具体程序伪代码如下:

根据EP中数据属性的数据约束刻画dr和数据类型,采用边界值法、等价类划分和随机测试的方法,可以生成指定数量的有效和无效测试数据,保存在测试数据库中。

根据属性限制pr、基数约束f以及数据约束刻画dr等,采用边界值法、等价类划分和随机测试的方法,可以生成指定数量的有效和无效测试数据,保存在测试数据库中。

根据individuals中的个体以及属性限制pr和基数约束f,采用第2章中介绍的相关方法,产生指定数量的有效和无效测试数据,保存在测试数据库中。

End Foreach

采用一定的选取规则,从数据属性产生的数据值和对象属性产生的数据值中分别选择合适的数据值,构建n类的个体集Listfinalindividuals。

2.5 案例分析

为了更加详细的说明测试用例的生成方法,本节以expressBuyBook服务作为案例进行分析。它是一个B2C网站(http://www.cango.com)提供的在线书籍销售服务只包含一个expressBuy类型的输入参数。利用3.3节中介绍的算法,可以生成IDM如图1所示。

这样我们根据数据类型的刻画约束可以为每一个叶节点的数据类型生成有效和无效的测试数据,结合基数约束,可以得出每一种OWL数据属性的取值。具体取值数量和数值如表2所示。

在得到IDM中每一个叶节点取值后,下面我们考虑expressBuy类的整体取值个数,对于没有基数约束的属性hasbook,分别取基数为0,1,2进行处理。如果采用完全组合的方式来选用测试数据,expressBuy类的测试数据理论取值个数为:5700,里面包含了很多复杂重复的测试用例。考虑到IDM的树形结构,以及类的概念,我们引入面向对象的思想对测试数据进行组合。按照图1中每个类所处的层数,从大到小,利用基于解析空间树的组合测试方法,依次对每个类生成测试数据,逐个向上递归直到回溯到根节点,过程中,类与类、类与数据属性之间以类为整体,生成测试数据。在本例中,首先生成custInfo类的测试数据,取值个数为:8;其次生成OrderItem类的测试数据,取值个数为:22;最后,结合数据属性OrderID的取值数为5,生成OrderRequest类的测试数据,取值数为152。由此可以看出,测试用例数得到了显著降低,但每两个测试取值都满足了两两覆盖要求。

利用生成的测试用例对该服务进行测试,发现的错误如表3所示。

3 结论

该文以基于OWL-S描述的Web服务单个简单服务为研究对象,定义了输入数据模型(IDM),介绍了一种自动生成测试用例的方法,并给出了具体实现算法,为实现Web服务的有效测试提供了手段。通过实验,说明该方法能够产生有效的测试数据。

该方法只限于对单个简单服务进行测试。但随着Web服务的发展,一个功能通常需要利用多个简单服务的组合来实现,各个简单服务之间的调用顺序,业务逻辑以及输入输出匹配等方面都很容易发生错误。所以,在下一步的研究中我们重点针对组合服务测试用例的自动生成,希望能够进一步提高服务测试数据自动生成的质量和效率。

参考文献

[1]Bai X Y,Dong W,Tsai W,et al.Chen.WSDL-Based Automatic test case generation for Web Services testing[C].Proceedings of the 2005IEEE International Workshop on Service-Oriented System Engineering(SOSE’05),20-21,China,2005:215-220.

[2]Hanna Samer,Munro Malcolm.An Approach for Specification-based Test Case Generation for Web Services[C].Computer Systems andApplications,2007.AICCSA’07.IEEE/ACS International Conference on,2007:16-23.

[3]Ma C Y,Du C L,Zhang T.WSDL-Based Automated Test Data Generation for Web Service[C].International Conference on Computer Sci ence and Software Engineering,2008:731-737.

[4]Tsai W T,Ray Paul.Extending WSDL to Facilitate Web Services Testing[C].Proceedings of the 7th IEEE International Symposium on HighAssurance Systems Engineering(HASE’02),2002:1-2.

[5]陈佳蕊,蔡国永.基于扩展WSDl变异的Web服务测试方法[J].计算机应用,2007,27(7).

[6]姜瑛,辛国茂,单锦辉.一种Web服务的测试数据自动生成方法[J].计算机学报,2005,28(4):568-577.

[7]Noikajana S,Suwannasart T.Web Service Test Case Generation Based on Decision Table[C].Proc.of the 2008 The Eighth InternationalConference on Quality Software,2008:321-326.

[8]Noikajana S,Suwannasart T.An Approach for Web Service Test Case Generation Based on Web Service Semantics[C].Proceedings of theInternational Conference on Semantic Web and Web Services,2008:171-177.

[9]张晓燕,黄宁,余莹.基于OWL-S的测试用例生成[J].北京航空航天大学学报,2008,34(3).

8.WEB服务在制造业中的应用 篇八

[关键词] WEB服务 完美订单 制造仿生系统

一、引言

制造企业正在努力使计算机应用系统发挥出应有的效益,如提高生产效率、改善供应链管理等。随着软件业向基于WEB的服务转移,制造业面临着新的挑战,即如何将它们的扩展企业融入一个实时的、协同制造仿生系统中以便使企业的生产管理水平获得新的飞跃,尤其是在ERP和供应链执行领域。

二、完美订单的实现

1.完美订单的概念

完美订单即没有库存、没有进行中的工作、品质完美无暇、最优交货和立即支付的订单。当前制造业的一种趋势是不断向外扩展,包括和供应商及用户建立合作的伙伴关系。企业因此能够减少库存及供应商的数目,生产运作更为简化并富有效率。为了保持企业级精简和优化带来的好处,同时增强抵御意外事件影响的能力,整个系统必需能够针对外界影响实时作出响应。这需要在系统的参与者之间定义一种动态的关系,具有灵活、高效、快速响应等内在特性,最大限度地满足最终用户的需求,实现完美订单。

2.提高完美订单率的三要素

(1)实时可见性

要提高完美订单率,系统中各个贸易伙伴之间的运作以及产品流动过程中的计算机应用系统和员工都应保持实时可见性,即从企业内外都能访问系统中的其他成员以及和其他员工交互。新技术如基于WEB的应用系统以及经济上的利益驱使,大型的制造企业加强了它们的扩展企业中的可见性。各种计算机应用系统,如ERP系统、仓储和配送管理系统以及后勤和供应链管理系统等通过标准的基于WEB的集成技术连接在一起,以便获得可控、快速的响应,把系统中的供应和需求实时地联系起来。用户可以通过固定设备和移动设备随时获取企业信息,无论其是运行在什么计算平台上,这样才能满足实时环境的需求。

(2)企业的运行速度

提高完美订单率的第二个因素是提高企业运行的速度。可见性为用户提供了数据,运行速度则产生了结果。如果企业和合作伙伴之间、各个计算机应用系统之间以及员工之间都能保持畅通、便捷的信息交换,企业就能对生产经营中出现的混乱情况及时做出响应。任何影响价值链的事件,都能被及时发现并处理,其负面影响将被降至最小。正确识别约束条件、针对各种可选方案建立相应的模型以及实时通信确保了这种及时的响应。企业实际运作中,供应链管理系统可能被修改,生产作业计划可能发生调整,仓储和配送可能被纠正。提高这些过程的执行速度将降低成本、减少运作失误等带来的负面影响。尤其是供应链的执行速度,随着模块化生产、外包生产以及合约生产等的日渐盛行,正被认为是提高企业竞争力的最关键的因素之一。

(3)附加值

提高完美订单率的第三个因素是可以从IT基础架构中获得的附加值。利用互联网特有的优势可以尽量把计算机应用系统迁移到WEB上,然后作为WEB服务来部署,这样企业就能把旧有的系统升级成下一代的实时系统。

阻碍扩展企业中的可见性和供应链执行速度的因素,如不同系统的整合和系统缺乏灵活性,可以通过使用基于WEB的、标准和开放的环境来解决。使用基于WEB的架构,计算机应用系统可以运行在企业内部或外部,这将减少部署和维护成本。

三、制造仿生系统的实现

1.制造仿生系统的特点

制造企业正在从包括供应商、合作伙伴和用户的企业扩展系统向实时的制造仿生系统转变,以实现对生产和供应链执行过程中的变化的实时响应。这需要一种整个仿生系统范围内、基于互联网的计算机应用系统,以便能在多个地点、不同的合作伙伴及不同的环境中保持通信。

WEB服务模型及其相关规范的建立为开发和部署满足制造业需求的计算机应用系统提供了基础架构。其中立竿见影的一个领域是供应链的执行环节。改进后的仿生系统的可见性和执行速度使得制造企业可以通过实施基于WEB的供应链质量管理系统、供应链事件管理系统以及实时配送和后勤优化来降低成本、提高灵活性和扩大市场占有率。

2.WEB服务的优势

WEB服务在不需要用户干预的情况下,方便了程序和程序之间的直接通信和交互。这种在不同环境中、在运行时动态绑定组件的技术是WEB服务的关键特征之一。建立了WEB服务模型后,将来就可以构建一个完全由互联网连接的制造仿生系统,整合了各种旧有的硬件设备、计算机应用系统和数据库,保证了整个价值链上响应的实时性。整个生态系统参与者的任何方面的变化,如订单或需求的变化、质量的波动、生产作业计划的调整等都会被及时传递给相关方面进行处理,而不需要任何人为地干预。这些响应可以通过各种设备诸如个人电脑、PDA、手机等直接发送到有关人员,或者用来触发更多的WEB服务以便完美订单的实现。

WEB服务能够帮助一个计算机应用系统和其他实现了WEB服务的应用系统通过标准的界面和消息传递协议进行交互。事实上,WEB服务被认为是B2B和供应链自动化的实时实现的粘合剂。WEB服务也可以用来封装内部的过程以便其在整个价值链上都可用。结合基于作业成本法的模型,制造仿生系统的参与者可以评估变化带来的经济影响,针对某一最终用户或订单制定价值链上适当的改进措施。随着WEB服务平台越来越多的优越性被发现,各个企业正逐渐抛弃原来紧耦合的胖客户端,取而代之的是一个开放、灵活的计算机应用体系。

四、结论

通过把制造企业中的计算机应用系统部署为基于开放、规范的技术基础之上的WEB服务,提高了完美订单率,实现了实时的制造仿生系统。

参考文献:

[1]张凌辉:客户服务-物流企业的核心竞争力[EB/OL].博锐管理在线.http://www.boraid.com/darticle3/list1.asp?id=48489&pid=1540. 2006

9.浅谈Web应用服务器测试 篇九

因为很多客户端web是内嵌的,内部通信,所以很多对安全的考虑就很少,漏洞亦较多。在此,我想跟大家分享一下客户端的web测试思路,让大家找到更多的高质量漏洞。

首先打开一个客户端界面,如腾讯的群介绍界面。

方法一:测试F5键。大家都知道F5是刷新键,按f5测试界面是否全部或部分刷新,如果刷新,很大的可能就是嵌入的web。

方法二:测试右键。网页自己特有的右键,如果出现,则可判定是web。

方法三:测试拖曳,

可以点一个图片或一段文字到某个位置,如桌面,浏览器址栏等,如果能拖曳成功,很大可能是web。拖曳操作在测试触屏客户端时最有效。如ATM机、机票终端等。如中国银行XTM

方法四:测试Ctrl+A。如果能全选,那就再Ctrl+C。之后打开一个富文本编辑器,如在线编辑器,如kindeditor.net/demo.php,然后Ctrl+V,再在源码模式查看即可。

方法五:打开burpsuit,直接测试。这个是最准确。得到了地址,就是常规web了,同时可以发现很多内部接口。

因该说上面的五种方法是自己一次次在实践中总结到的,现在看来很简单,但当你发现一种新方法时,总会有一批漏网之鱼向你游来,收获之喜只有自己知道。

10.浅谈Web应用服务器测试 篇十

Nginx提供web服务时Linux内核参数调整是必不可少的,其中在优化方面就需要我们格外的注意,在下面就是对Linux内核参数优化的详细介绍,希望大家有所收获。

关于Linux内核参数的优化:

net.ipv4.tcp_max_tw_buckets = 6000

timewait的数量,默认是180000。

net.ipv4.ip_local_port_range = 1024 65000

允许系统打开的端口范围。

net.ipv4.tcp_tw_recycle = 1

启用timewait快速回收。

net.ipv4.tcp_tw_reuse = 1

开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。

net.ipv4.tcp_syncookies = 1

开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理。

net.core.somaxconn = 262144

web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而Nginx内核参数定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值。

net.core.netdev_max_backlog = 262144

每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.ipv4.tcp_max_orphans = 262144

系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上,

如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。

net.ipv4.tcp_max_syn_backlog = 262144

记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。

net.ipv4.tcp_timestamps = 0

时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

net.ipv4.tcp_synack_retries = 1

为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。

net.ipv4.tcp_syn_retries = 1

在内核放弃建立连接之前发送SYN包的数量。

net.ipv4.tcp_fin_timeout = 1

如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60秒。2.2 内核的通常值是180秒,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2的危险性比FIN-WAIT-1要小,因为它最多只能吃掉1.5K内存,但是它们的生存期长些。

net.ipv4.tcp_keepalive_time = 30

11.小议Web测试 篇十一

关键词:软件测试;web系统;时间短任务量大

中图分类号:TP393文献标识码:A文章编号:1007-9599 (2011) 03-0000-02

The Discussion on Web Testing

Su Li

(Neusoft Group Co.,Ltd.,Shenyang110179,China)

Abstract:The web-based software testing with the traditional stand-alone software testing both the similarities and differences.Implementation of user needs only a web-based software test basis,in addition,for the different resolutions,different browsers display manufacturers situation,whether to use,the system is safety tested.How time is short,the task carried out large amount of web software test cases,which presented new challenges.This type of test from the web test aspects of functionality,performance,availability,

client-side compatibility,security,and other web-based discussion of system testing methods

Keywords:Software testing;Web system;Short time for large amount of tasks

近年来随着Internet的兴起与快速增长,web对于我们的工作和生活产生了深远的影响,电子商务和电子政务等Web应用的兴起,基于B/S结构的软件日益强劲发展,正在成为未来软件模式的趋势。同时,由于web系统开发的开发规模较小、周期较短、成本较低、便于维护等原因,使得多数的中小型规模的软件企业都愿意在此进行投入。通常意义上的大型软件例如《魔兽世界》、《星际争霸》等,从软件的设计、开发、测试到最终版本发布,周期通常以年来计算;而基于web的应用软件的发布周期则短很多,通常以月,甚至是以日来计算。因此,由于时间的缩短,任务量的骤然增加,在这种情况下web测试人员如何能够快速地进行软件测试,成为当前最需要解决的问题。本文的研究就是基于这种需求,作者基于最近几年的实际项目经验,结合已经进行过的Web测试实践,总结出的在时间短、任务量大的情况下,基于目标的Web性能测试方法,具有较强的目的性和可操作性。

一、概述

一般来说,web测试主要可以分为功能性测试和非功能性测试两种:功能性测试就是参照软件产品的需求规格说明书,根据功能测试用例对软件的各个功能进行逐一验证,检查测试的软件是否达到最终的要求;而非功能性需求会涉及到一些诸如性能、可用性等属性。测试的目的:不同的阶段,测试的目的也是不同的。我对web测试分成三个阶段,第一阶段,主要是功能性测试,验证基本功能是否达到要求,同时进行部分非功能性行测,以检测系统是否易用;第二个阶段是系统的性能测试,这个阶段的目的是检测系统在功能达标的情况下,是否存在性能的瓶颈,为系统优化打好基础;第三个阶段是进行系统的安全性测试。

二、web系统的功能性测试

在进行功能性测试的时候,各个模块的功能要必须与用户的需求保持一致,同时业务流程必须正常完成。常见的功能性测试主要包括以下几个类型:

(一)链接测试

链接是web应用系统的一个比较重要的功能,用户可以通过访问链接,进行自己想要进行的操作。链接测试目的是确认点击的链接是否已经按照设计的要求链接到了该页面、激活某个特定的页面或者窗口保证web应用系统上没有孤立的页面。

(二)表单测试

当用户向web系统提交例如注册、登录等信息时,通常需要使用表单的来进行,因此就要对表单内容的各个对话框输入数据的合法性以及提交数据完整性进行测试,以保证业务的顺利进行。

(三)cookies测试

cookies通常用来存储用户信息web系统上进行的操作。用户访问web应用系统,服务器会将此用户的信息,以cookies的形式给客户端决胜局,并且存储在客户端计算机上,以这种方式来创建动态页面或者存储信息。如果web应用系统使用了cookies,就必须对此进行检查。可以通过cookies是否按预定的时间进行保存,或者刷新对cookies有什么影响来进行验证,验证cookies是否有效。

(四)web程序设计语言与脚本语言的测试

现在网上常用的web程序设计语言有很多,但是程序设计语言版本的差异,都会引起客户端甚至服务器端严重的问题。除了web程序设计语言之外,不同的脚本语言,例如Java、JavaScript、ActiveX等也要对此进行验证。

(五)数据库测试

在web应用软件中,对于信息的记录通常使用数据库来进行,例如MySQL等。在web应用软件中,最常用的数据库类型是关系型数据库,例如系统中各个关联的下拉菜单可以使用这种方式进行配置。在进行数据库测试的时候,主要进行以下几种测试:数据库中表的关联是否正确、数据操作是否在对应的表单中进行、存储超界或者视图不全这类的操作是否会引起系统的异常如果有异常应当如何进行友好提示等。

三、web系统的非功能性能测试

非功能性需求会涉及到一些诸如性能、可用性等属性。常见的非功能性测试主要包括以下幾个类型:

(一)性能测试

性能测试包括很多种,但是主要的分为以下几类:

1.连接速度测试当用户点开一个页面或者激活一个窗口的时候,如果web系统响应时间太长(例如超过5秒钟,使用电话线拨号上网这种方式除外),或者执行某个操作,系统由于程序或者带宽的限制导致得到的操作结果十分缓慢,这样就会导致用户的满意度直线下降。

2.负载测试。负载测试是为了衡量web系统,在某种特定负载级别上的性能,以确定web系统能够正常工作的范围。例如:web应用系统允许多少个用户同时在线?多少个用户执行并发操作?如果超过了这个范围,会有什么影响?

3.压力测试。进行压力测试是指以施加压力破坏一个web应用系统的方式对系统进行测试,以检验系统在这种情况下的运行情况。压力测试不达标一般是主要有以下2种情况。

一是程序出现异常,大量数据的读写可能会出现代码或数据库的异常。二是程序读写效率低下。压力测试的目的是测试用系统在什么情况下会崩溃?崩溃的后果是什么?在web系统中,对于表单、登陆和其他信息传输页面,都需要进行压力测试。

(二)可用性测试

可用性测试主要进行的是非功能性测试,其中包括:

1.导航测试导航是否直观?因为在同一个页面上放太多的信息,往往起到与预期相反的效果。

2.图形测试一个web应用系统的图形可以包括图片、动画、按钮等。图片和动画除了能起到美化页面的功能之外,还可以进行广告宣传图形测试的内容有:

(1)保证页面元素的美观,不要杂乱无章地排列,同时图片和动画要尽可能地小,以免浪费传输时间。之前在进行某项目的web性能测试的时候就发现,系统中的某个特定页面,加载的时间始终是很长,经过分析,发现是页面中的一个图片元素过大所导致。

(2)验证所有相关联的页面布局和字体的风格是否一致。

(3)背景颜色应该与字体颜色和前景颜色相搭配。

3.内容测试。内容测试用来检验web应用系统所提供信息的是否准确,而错误的内容,很可能导致法律纠纷等一系列问题的出现。

(三)客户端兼容性测试

对于客户端兼容性的测试主要包括浏览器和操作系统两部分。而用户的操作习惯是不一样的,选择的浏览器通常也是不一样,例如MS IE、Firefox等。操作系统部分原则上说,由于操作平台绝大多数都是Windows系列平台,所以没有特殊要求的话,测试Windows几个有代表性操作系统的版本即可,例如MS Win XP SP2,Win2003和Win7。

(四)安全性测试

web应用系统的安全性测试主要包括:

1.登录测试:现在绝大多数的web应用系统都采用先注册、后登陆的方式来进行。对于登录功能,就需要对有效无效的用户名和密码、系统是否区分特殊字符与大小、错误密码数限制、是否可以通过登录后的地址栏中复制的链接直接访问某个页面等。

2.超时限制:如果用户在登录系统一段时间内(例如20分钟)没有进行任何页面的操作,则会话断开,需要重新登录系统才能正常使用。

3.为了保证web应用系统的安全,需要对系统进行操作日志文件的跟踪测试。

4.服务器端的脚本的安全性测试。例如脚本注入式攻击等等,常常被黑客利用对于这部分安全性测试来说,现在有很多现成的自动化的工具可以直接使用,例如Rational AppScan。

四、常用的web测试方法

进行web测试有很多种测试方法,通常来说有以下几种主要测试方法:点击页面上的链接,检查每个链接的跳转是否准确;在执行删除、增加等功能时,需要检查执行之后的信息是否准确?是否会对其它关联项产生影响;检查按钮的功能是否正确;检查对话框输入字符串长度的限制,对于超出部分是禁止输入还是给予提示,如果强制提交系统是否会出现异常;检查输入项的字符类型是否符合要求,例如只有数字的对话框是否可以输入字母或者密码框是否会显示明文;对于空格、各种引号、回车键等特殊符号,系统处理是否正确;关联页面的检查,例如对于新建信息页面中的必填项,在同样的修改页面中同样的选项是否仍然是必填;修改重名内容时,把不能重名的选项改为名称已存在的内容,检查系统是否会出现异常;使用tab键光标是否会按照预料的步骤进行跳转;检查是否支持常用快捷键,如Ctrl+C、Ctrl+V、Backspace等,系统的快捷键是否与常用的快捷键方式相同等等。

12.浅谈Web应用服务器测试 篇十二

随着软件应用复杂度的增加,保证软件质量变得越来越难,需要测试人员寻找很多测试方法和技术,以解决产品质量问题。自动化测试不仅可以大大减少测试人员的工作量,降低工作难度,还可以避免不必要的人为疏忽与问题,加快测试速度,保证产品质量和进度,提高效益。

目前自动化测试研究如火如荼,涌现了很多自动化测试[1]工具,例如占据主流应用HP的QTP。QTP对系统环境要求很高,运行时会占用很大的内存空间,且价格昂贵。另外,软件开发需求千变万化,自动化测试工具要不断适应这些变化。

1Selenium概述

Selenium是一个用于Web应用程序测试的工 具,它提供了一系列测 试函数,用于支持Web自动化测 试[2]。这些函数非常灵活,能够通过多种方式定位界面元素,并将结果与系统实际结果进行比较。作为一款强大的测试工具,Selenium具有以下几个特性:1可以对多种浏览器进行测试,如IE、Firefox、Safari、Chrome、Android手机浏览器等;2支持多种 语言,如Java、C#、Python、Ruby、PHP等;3跨平台,如Windows、Lunix、iOS、Android等;4开源免费。

Selenium提供很多工具组供测试工程师选用:1SeleniumIDE:用于构建脚本的初级工具;2Selenium1(SeleniumRC):Selenium最主要的测试工具之一,支持多语言和多浏览器;3 Selenium2:集成了WebDriver,WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。测试者可以根据不同的平台、不同浏览器选择不同的WebDriver去执行测 试。WebDriver可以驱动 本地或远程机器上的浏览器。对比Selenium1时代的SeleniumRC,WebDriver优势明显[3];4 SeleniumGrid:一般用于分布式测试和集群测试,Selenium能同时并行地、在不同环境上运行多个测试任务,极大地加快了Web应用的功能测试。

本文采用Selenium2测试工具,对某公司出差管理系统的核心功能进行了一整套Selenium自动化测 试,主要步骤是:1需求分析;2测试用例设计;3根据测试用例设计测试脚本,并执行测试;4分析测试结果。

2Selenium测试分析

以某公司外派到日本的员工出差信息管理系统为例,其功能模块如图1所示。

系统的核心功能主要是对各种信息进行增加、删除、修改、查找。针对这些核心功能,需要分别设计测试用例并编写测试脚本,通过脚本运行,可以有效完成各功能的测试。

3Selenium测试设计

根据系统功能结构图和系统需求,对整个系统进行模块划分。以个人信息模块为例,其主要功能有新增个人信息、修改个人信息、按不同条件查找个人信息和删除个人信息等4大功能,功能界面如图2所示。

利用黑盒测试用例设计方法设计测试,见表1。

4脚本编写与运行结果

根据设计的测试用例TC001编写测试脚本,代码如下:

(1)通过driver打开网站链接:

(2)获取“新增员工”按钮并点击:

(3)获取界面组件并输入内容:

(4)点击提交按钮:

(5)等待提交后的系统反馈:

(6)获取弹出对话框信息:

5语结

本文介绍了Selenium,并以出差管理系统的新增操作为例,对系统进行了自动化用例设计和脚本编写。使用过程中,Selenium的优势非常明显:因为使用的是面向对象的程序设计语言,编写代码简便、易懂,相比较用QTP录制脚本,Selenium脚本更易于维护,整个测试框架可以用面向对象思想进行设计,框架复用性高。不足之处是Selenium对测试步骤中的验证支持度不够。

摘要:基于Selenium自动化测试技术对出差管理系统进行了自动化测试设计,介绍了Selenium在Web应用程序中进行自动化测试的过程。通过案例说明Selenium对Web应用程序进行自动化测试的优势。

13.浅谈Web应用服务器测试 篇十三

提取码 kzlp

ps:本来里面有5个漏洞利用插件和一个工程的,但是由于一些隐晦的原因我最后删掉了。=_=

压缩包里有说明文件,插件接口和开发包(开发包没怎么写,就是一些很常用的功能,本来还行写发送 http 请求的方法来着,但是想想既然都有 httpclient 和 curl了,就不写了了。

如果大家有兴趣为 skadi 开发插件或者希望添加什么功能,还有如果想要源码的话,发送邮件到我的邮箱 hoerwing@foxmail.com 。

14.linux配置web服务器 篇十四

linux配置web服务器

 

LINUX系统中常见的有:CERN、NCSA、Apache三种方式,一般最常用的方法就是用Apache。此种方式特点明显,配置简明,具有最大的对系统兼容性,以下是用此方式配置基于Linux的WEB服务器的全过程。

一.Apache服务器慨述。

其特征是显著的:可以运行于所有计算机平台,自然包括UNIX/LINUX系统;集成代理服务器和Perl编程脚本;对用户的访问会话过程跟踪;可对服务器日志定制;还支持虚拟主机及HTTP认证等等。再配合LINUX系统本身的强大,我们没理由不选择Apache。

二.安装Apache。

一般说来,所有Linux版本应该包含有此软件包的安装,如果你在安装Linux系统没有安装此软件包,可以从安装光盘或是www.apache.org/网站上找到其安装文件(注意网上有两种版本:一种是下载后需重新编译的源代码,一种是只需解压就可使用的可执行文件),然后执行安装即可。

1. 如果你下载的是可执行文件包如:apache_1.2.4.e.tar.gz(当中的数字视你下载的版本而定,此为举例),那这就相对简单,比较适合对Linux编译不熟悉的初级用户,只需执行:tar xvzf apache_1.2.3.4.tar.gz即可完成安装。

2. 如果下载的是源代码如:apache_1.2.4.rpm,则先用rpm –ivh apache_1.2.4.rpm安装,然后在src目录下执行“./configure”;接着执行“make”命令编译Apache;接着将编译好的可执行文件复制到/etc/httpd/bin目录下;再将Apache的配置文件:httpd.conf、access.conf 、srm.conf和mime.types复制到/etc/httpd/conf目录下,才算完成安装。

三.配置Apache,实现WEB服务。

其实,到现在你的Linux已经开始WEB服务了,你要做的只需将Linux系统连入互联网,然后将主页存放于“/home/httpd”目录下即可。但为了让此WEB服务器更有效率的工作,我们还需对其作些设置,具体需要配置的其实就是刚才复制的那4个文件。以下对其主要的两个配置文件httpd.conf和access.conf作些说明:

1. httpd.conf.

此文件是主配置文件,主要用来设置服务器启动的基本环境,也就是说它负责安排WEB服务器怎样运行。其相关设置参数为:

ServerType standalone/inetd:此选项作用就是指定以何种方式运行WEB服务器。其中standalone参数表示WEB服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务;其效率更高,主要是设置主服务器进程侦听的特定端口地址,方法为:Port [number] (缺省为80)。

而inetd模式相对standalone来说它更安全,此模式也是RedHat Linux运行Apache的默认方式。如果你的版本不是RedHat,则需在/etc/inetd.conf文件里加入以下一新行:httpd stream tcp nowait httpd /etc/httpd/bin/httpd –f /etc/httpd/conf/httpd.conf;然后在/etc/services文件里同样添加一新行:httpd 80/tcp httpd即可。

ErrorLog:用来指定错误记录的文件名称和路径。格式如:ErrorLog /var/httpd/error.log。

ServerRoot:用来指定将服务器的配置及日志文件存于何处。格式如:ServerRoot /etc/httpd。

Server Admin: 设置WEB管理员的E-Mail地址.格式如:Server Admin XXX@XXXX.com。

2. srm.conf

这是Apache的资源配置文件,作用为告诉服务器你想在WWW站点上提供的资源及如何提供,其主要参数为:

DocumentRoot: 用来指定主文档的地址。格式如:DocumentRoot /home/httpd/html。

DirectoryIndex:跟windows平台的IIS设置一样,用来指定首页文件的名称。大家都知道,首页一般都以“index.html”或“index.htm”作为文件名。当设置为这两种文件名之后,只要用户发出WEB请求,即将调入以“index.html”或“index.htm”命名的主页。格式如:DirecotryIndex index.html index.htm。

经过以上简单的配置后,你的WEB服务器已经具备基本的功能了。接下来要做的就是重启WEB服务,使刚才的配置生效,我们可以用以下命令来完成:

/etc/rc.d/init.d/httpd restart

最后,我们来看看基于Apache服务的安全方面。Apache服务器通过认证系统能控制哪些主机可以访问某些特定的站点。具体来说,它通过两种方式来实现:

一种是基于主机地址的认证,但由于目前大部分上网用户使用的都是动态地址,因此此种方式并没多少实际意义;

15.浅谈Web应用服务器测试 篇十五

一、SERV-U的Sniffer测试

1、测试环境:

A、B同一子网的两台计算机,B是员工计算机,一名员工通过其访问公司的FTP服务器。A是我们安装了sniffer的计算机,其目的是嗅探使用B计算机访问FTP服务器的员工的帐户和密码。

2、测试过程:

(1).在A计算机上安装sniffer嗅探工具,并启动该程序。在sniffer软件中通过上方的“matrix”(矩阵)按钮启动监测界面,打开监测界面后我们就可以开始监测网络中的数据包了。通过菜单栏的“capture(捕获)→start(开始)”启动。在检测数据包窗口中我们点左下角的objects(对象)标签,然后选择station(状态),这样将把当前网络中所有通信都显示在窗口中。(图1)

(2).这时候我们通知B计算机的员工使用电脑登录了FTP服务器,那么我们在sniffer中点菜单的“capture(捕获)→stop and display(停止并显示)”。这里假设我们FTP服务器的IP地址为192.168.1.20,那么我们从显示的地址列表中找到关于192.168.1.20这个IP的数据包,然后点下方的“DECODE(反解码)”按钮进行数据包再分析。(图2)

(3).在“DECODE”(反编码)界面中我们就可以对关于192.168.1.20的所有数据包进行分析了。我们一个一个的分析数据包,分析到大概第十九个数据包时出现用户名信息,我们可以从界面中看到用户名为lw。继续往下看,到了第二十一个数据包的时候就可以看到密码了,密码以明文的形式显示在sniffer中,密码为test168。(图3)

至此,我们通过sniffer工具获取了该员工登录FTP服务器的帐户和密码。依据笔者的经验,攻击者在获取了服务器的控制权之后,往往会安装相应的嗅探工具,进而获取更多的敏感信息,因此,嗅探不得不防。二、SERV-U的Sniffer防范

其实,SERV-U本身就提供了防嗅探功能,只不过大多数用户没有开启罢了。该功能就是SSL加密,在SSL中,采用了公开密钥和私有密钥两种加密方法。所以使用SS后就可以保证网络中传输的数据不被非法用户窃取到了。

1、创建SSL证书

要想使用Serv-U的SSL功能,需要SSL证书的支持才行。虽然Serv-U在安装之时就已经自动生成了一个SSL证书,但这个默认生成的SSL证书在所有的Serv-U服务器中都是一样的,非常不安全,所以我们需要手工创建一个自己独特的SSL证书。

在“Serv-U管理员”窗口中,展开“本地服务器→设置”选项,然后切换到“SSL证书”标签页,创建一个新的SSL证书。首先在“普通名称”栏中输入FTP服务器的IP地址,接着其它栏目的内容,如电子邮件、组织和单位等,根据用户的情况进行填写,

完成SSL证书标签页中所有内容的填写后,点击下方的“应用”按钮即可,这时Serv-U就会生成一个新的SSL证书。(图4)

2、启用SSL功能

虽然为Serv-U服务器创建了新的SSL证书,但默认情况下,Serv-U是没有启用SSL功能的,要想利用该SSL证书,首先要启用Serv-U的SSL功能才行。

要启用Serv-U服务器中域名为“ftp”的SSL功能。在“Serv-U管理员”窗口中,依次展开“本地服务器→域→ftp”选项。在右侧的“域”管理框中找到“安全性”下拉列表选项。这里Serv-U提供了3个选项,分别是“仅仅规则FTP,无SSL/TLS进程”、“允许SSL/TLS和规则进程”、“只允许SSL/TLS进程”,默认情况下,Serv-U使用的是“仅仅规则FTP,无SSL/TLS进程”,因此是没有启用SSL加密功能的。在“安全性”下拉选项框种选择“只允许SSL/TLS进程”选项,然后点击“应用”按钮,即可启用softer域的SSL功能。(图5)

需要说明的是,启用了SSL功能后,Serv-U服务器使用的默认端口号就不再是“21”了,而是“990”了,这点在登录FTP的时候一定要留意,否则就会无法成功连接FTP服务器。3、使用SSL加密连接FTP

启用Serv-U服务器的SSL功能后,就可以利用此功能安全传输数据了,但FTP客户端程序必须支持SSL功能才行。如果我们直接使用IE浏览器进行登录则会出现图6显示的错误信息,一方面是以为没有修改默认的端口21为990,另外IE浏览器不支持SSL协议传输。(图6)

当然支持SSL的FTP客户端程序现在也比较多,笔者以“Flash FXP”程序为例,介绍如何成功连接到启用了SSL功能的Serv-U服务器。

运行“FlashFXP”程序后,点击“会话→快速连接”选项,弹出“快速连接”对话框,在“服务器或URL”栏中输入Serv-U服务器的IP地址,在“端口”栏中一定要输入“990”,这是因为Serv-U服务器启用SSL功能后,端口号就从“21”变为“990”。(图7)

然后输入可以正常登录FTP服务器的“用户名”和“密码”,切换到“SSL”标签页,选中“绝对SSL”选项,这一步骤是非常关键的,如果不选中“绝对SSL”,就无法成功连接到Serv-U服务器。最后点击“连接”按钮。 根据实际传输情况在绝对SSL下方的四个选项进行选择即可。(图8)

当用户第一次连接到Serv-U服务器时,Flash FXP会弹出一个“证书”对话框如图9,这时用户只要点击“接受并保存”按钮,将SSL证书下载到本地后,就能成功连接到Serv-U服务器,以后和Serv-U服务器间的数据传送就会受到SSL功能的保护,不再是以明文形式传送,这样就不用再担心FTP账号被盗,敏感信息被窃取的问题了。在Flash FXP的下方我们也会看到一个小锁的标志了,他代表当前传输是加密安全的传输。(图9)

上一篇:跟踪作文600字下一篇:价值与价值观教案