第9章 Web应用测试



前言

软件测试是软件工程中的重要部分,是确保软件质量的重要手段。随着软件的复杂度不断增强、软件产业的不断发展,软件测试得到越来越广泛的重视,本章主要对有关Web应用测试方面的内容进行介绍。


一、Web应用测试概述

Web应用测试基本包括以下几个方面:性能测试、功能测试、界面测试、安全测试等。

二、Web应用的性能测试

1.Web性能测试的主要术语和性能指标

  1. 主要术语
    并发用户:并发一般分为2种情况。一种是严格意义上的并发,即所有的用户在同一时刻做同一件事情或者操作,这种操作一般指做同一类型的业务。另外一种并发是广义范围的并发。

    用户并发数量:关于用户并发的数量,有2种常见的错误观点。一种错误观点是把并发用户数量理解为使用系统的全部用户的数量,理由是这些用户可能同时使用系统;另一种比较接近正确的观点是把在线用户数量理解为并发用户数量。实际上在线用户也不一定会和其他用户发生并发,但是,在线用户数量是计算并发用户数量的主要依据之一。

    请求响应时间:指的是客户端发出请求到得到响应的整个过程的时间。在某些工具中,请求响应时间通常会被成为“TLLB”,即“Time to last byte”,意思是从发起一个请求开始,到客户端接收到最后一个字节的响应时间所耗费的时间。请求响应时间过程的单位一般为“秒”或者“毫秒”。

    事务响应时间:事务可能由一系列请求组成,事务的响应时间主要是针对用户而言,属于宏观上的概念,是为了向用户说明业务响应时间而提出的。例如:跨行取款事务的响应时间就是由一系列的请求组成的。事务响应时间和后面的业务吞吐率都是直接衡量系统性能的参数。

    吞吐量:指的是在一次性能测试过程中网络上传输的数据量的总和。吞吐量/传输时间,就是吞吐率。

    TPS:每秒钟系统能够处理的交易或者事务的数量。它是衡量系统处理能力的重要指标。

    点击率:每秒钟用户向Web服务器提交的HTTP请求数。这个指标是Web应用特有的一个指标,Web应用是“请求-响应”模式,用户发出一次申请,服务器就要处理一次,所以点击是Web应用能够处理的交易的最小单位。

    资源利用率:指的是对不同的系统资源的使用程度,例如服务器的CPU利用率,磁盘利用率等。资源利用率是分析系统性能指标进而改善性能的主要依据,因此是Web性能测试工作的重点。资源利用率主要针对Web服务器,操作系统,数据库服务器,网络等,是测试和分析瓶颈的主要参考。在Web性能测试中,根据需要采集相应的参数进行分析。

    虚拟用户:模拟浏览器向Web服务器发送请求并接收响应的一个进程或线程。

    请求成功率:Web服务器正确处理的请求数量和接收到的请求数量的比。

  2. 性能通用指标
    Processor Time:指服务器CPU占用率,一般平均达到70%时,服务就接近饱和。

    Memory Available Mbyte:指可用内存数,测试时若发现内存有变化情况要注意,如果是内存泄露则比较严重。

    Physicsdisk Time:物理磁盘读写时间情况。

  3. Web服务器指标
    Avg Rps:平均每秒钟响应次数=总请求时间/秒数。

    Avg time to last byte per terstion(mstes):平均每秒业务角本的迭代次数。

    Successful Rounds:成功的请求。

    Failed Rounds:失败的请求。

    Successful Hits:成功的点击次数。

    Failed Hits:失败的点击次数。

    Hits Per Second:每秒点击次数。

    Successful Hits Per Second:每秒成功的点击次数。

    Failed Hits Per Second:每秒失败的点击次数。

    Attempted Connections:尝试链接数。

  4. 数据库服务器指标
    User 0 Connections:用户连接数,也就是数据库的连接数量。

    Number of deadlocks:数据库死锁。

    Butter Cache hit:数据库Cache的命中情况。

2.Web性能测试的目标和测试策略

性能测试具体目标又可以分为:
(1)确定Web应用系统的总体性能参数,包括所支持的最大并发用户数、事务处理成功率、请求相应的往返延迟等。
(2)确定在各个级别的负载及压力测试下服务器输出的具体性能参数。

性能测试策略一般从需求设计阶段开始讨论如何定制,它决定着性能测试工作要投入多少资源,什么时间开始实施等后续工作的安排;其制定的主要依据是软件自身的特点和用户对性能的关注程度,其中软件自身的特点起决定性的作用。

3.Web应用系统性能测试人员应具有的能力

Web应用系统性能测试人员应具有的能力如下:
(1)掌握常见自动化测试工具的使用。
(2)具备一定的编程能力。
(3)掌握常见的数据库知识。
(4)掌握常见的操作系统知识。
(5)掌握一些Web应用服务器例如IIS,Tomcat等的使用。
(6)具有综合分析问题的能力,例如通过综合分析测试结果来确定系统瓶颈。

4.Web应用系统性能测试的种类

性能测试中包含以下测试类型。

  1. 压力测试
    进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。

  2. 负载测试
    负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。

  3. 强度测试
    强度测试也是一种性能测试,核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。

  4. 数据库容量测试
    数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。

  5. 预期指标的性能测试
    系统在需求分析和设计阶段都会提出一些性能指标,完成这些指标的相关的测试是性能测试的首要工作之一。

  6. 独立业务性能测试
    独立业务实际是指一些核心业务模块对应的业务,这些模块通常具有功能比较复杂,使用比较频繁,属于核心业务等特点。

  7. 组合业务性能测试
    通常不会所有的用户只使用一个或者几个核心业务模块,一个应用系统的每个功能模块都可能被使用到,所以Web性能测试既要模拟多用户的相同操作,又要模拟多用户的不同操作。

  8. 疲劳强度性能测试
    疲劳强度测试是指在系统稳定运行的情况下,以一定的负载压力来长时间运行系统的测试,其主要目的是确定系统长时间处理较大业务量时的性能,通过疲劳强度测试基本可以判定系统运行一段时间后是否稳定。

  9. 网络性能测试
    旨在准确展示带宽、延迟、负载和端口的变化是如何影响用户的响应时间的。主要是测试应用系统的用户数目与网络带宽的关系。调整性能最好的办法就是软硬件相结合。

  10. 大数据量测试
    针对对数据库有特殊要求的系统进行的测试,主要分为三种类型。
    (1)实时大数据量:模拟用户工作时的实时大数据量,主要目的是测试用户较多或者某些业务产生较大数据量时,系统能否稳定地运行。
    (2)极限状态下的测试:主要是测试系统使用一段时间即系统累积一定量的数据时,能否正常地运行业务。
    (3)前面两种的结合:测试系统已经累积较大数据量时,一些实时产生较大数据量的模块能否稳定地工作。

  11. 服务器性能测试
    性能测试的主要目的是在软件功能良好的前提下,发现系统瓶颈并解决,而软件和服务器是产生瓶颈的两大来源,因此在进行用户并发性能测试,疲劳强度与大数据量性能测试时,完成对服务器性能的监控,并对服务器性能进行评估。服务器性能测试用例设计就是确定要采集的性能计数器,并将其与前面的测试关联起来。

  12. 一些特殊的测试
    主要是指配置测试,内存泄露测试的一些特殊的Web性能测试。

5.Web应用系统性能测试规划与设计

  1. 性能测试需求分析
    通过和项目联系人进行沟通以及一些项目文档来确定性能测试范围、性能测试策略等,与一般测试的需求分析没有太大区别。

  2. 性能测试整体规划
    性能测试规划的重点是时间、质量、成本等项目管理要素,主要是面向成本的规划,包括对测试环境测试工具人力资源等进行规划。

6.Web应用系统全面性能测试模型

在“web全面性能测试模型”中,把Web性能测试分为八个类别,然后结合测试工具把性能测试用例分为五类。下面先介绍八个性能测试类别的主要内容。
(1)预期指标的性能测试:系统在需求分析和设计阶段都会提出一些性能指标,完成和这些指标相关的测试是性能测试的首要工作之一。本模型把针对预先确定的一些性能指标进行的测试称为预期指标的性能测试。
(2)独立业务性能测试:指一些核心业务模块对应的业务,这些模块通常具有功能比较复杂、使用比较频繁、属于核心业务等特点。这类业务模块始终都是性能测试的重点。核心业务模块在需求阶段就可以确定,通常从单元测试阶段就开始进行测试,并在后继的集成测试、系统测试、验收测试中进一步进行测试,以保证性能的稳定性。
(3)组合业务性能测试:一个应用系统的每个功能都可能被使用到。所以Web性能测试既要模拟多用户对同一功能的操作,又要模拟多用户同时对一个或多个模块的不同功能进行操作,对多个业务进行组合性能测试。组合业务性能测试是最接近用户实际使用情况的测试,也是性能测试的核心内容。通常按照用户的实际使用人数比例来模拟各个模板的组全并发情况。
(4)疲劳强度性能测试:指在系统稳定运行的情况下,以一定的负载压力来长时间运行系统的测试,其主要目的是确定系统长时间处理较大业务量时的性能。通过该测试基本可以判断系统运行一段时间后是否稳定。
(5)大数据量性能测试:可以理解为特定条件下的核心业务或者组合业务测试。一般在投产环境下进行测试,通常和疲劳强度测试放在一起,在整个性能测试的后期进行。
(6)网络性能测试:该测试是为了准确展示带宽、延迟、负载和端口的变化是如何影响用户的响应时间的。在实际的软件项目中,主要是测试应用系统的用户数目与网络带宽的关系。
(7)服务器性能测试:分为初级和高级两种形式。(1)初级服务器性能测试,用于监控业务系统工作或进行其他测试时的一些计数器信息,通过对这些计数器对服务器进行综合性能分析,找出系统瓶颈,为调优或者提高性能提供依据。(2)高级服务器性能测试,由专门的系统管理员来对服务器进行测试和调优。
(8)特殊测试:主要指配置测试、内在泄漏测试等特殊的Web性能测试。

7.Web应用系统性能测试流程

(1)测试需求分析
(2)测试计划制定与评审
(3)测试用例设计与开发
(4)测试执行与监控
(5)分析测试结果
(6)编写性能测试报告
(7)测试经验总结

三、Web应用的功能测试

功能测试主要用来测试Web应用软件是否履行了预期的功能,包括链接测试表单测试设计语言测试数据库测试Cookies测试相关性功能检查等。

四、Web应用的界面测试

  1. Web界面测试的目标
    Web界面测试的目标如下:
    (1)Web界面的实现与设计需求、设计图保持一致,或者符合可接受标准。
    (2)使用恰当的控件,各个控件及其属性符合标准。
    (3)通过浏览测试对象可正确反映业务的功能和需求。
    (4)如果有不同浏览器兼容性的需求,则需要满足在不同内核浏览器中实现效果相同的目标。

  2. Web界面测试内容
    针对Web应用的界面测试,可以从以下方面进行用户界面测试:整体界面测试控件测试多媒体测试内容测试容器测试浏览器兼容性测试等,下面予以详细介绍。

  3. Web页面测试的基本准则
    Web页面测试的基本准则是符合页面/界面设计的标准和规范,满足易用性正确性规范性合理性实用性一致性等要求。

五、Web应用的客户端兼容性测试

  1. 平台测试

  2. 浏览器测试

六、Web应用的安全性测试

1.Web应用的安全性概述

一般来说,一个Web应用包括Web服务器运行的操作系统Web服务器Web应用逻辑数据库Web浏览器等几个部分,其中任何一个部分出现安全漏洞,都会导致整个系统的安全性问题。

2.Web应用安全性测试

Web应用系统的安全性从使用角度主要可以分为应用级的安全与传输级的安全,因此,安全性测试可以从这两方面入手。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了软件测试的基本概念,希望能够对正在阅读的你有所帮助。如果你也对软件测试感兴趣的话,就跟着我一起学下去吧。

如果您觉得我写的还不错,请多给我点赞鼓励一下,您的支持也是我不断前进的最大动力。同时也欢迎您将本篇文章分享给您的朋友,一起学习。最后,也欢迎大家在私信和评论里与我探讨学习过程中遇到的问题,大家共同进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值