Web测试一:Web基础

发表于:2017-9-25 14:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:凌俣Linty    来源:51Testing软件测试网采编

  Web测试基础
  I.如何开展Web测试
  Web测试的对象
  ●Web的页面元素
  ●Web的业务逻辑
  ●Web的数据行为
  Web测试的要求
  ●功能完全实现
  ●性能符合标准
  ●兼容问题解决
  Web测试环境搭建
  ●测试环境的概念
  在测试执行过程中,测试环境的建立和维护是主要工作之一。测试环境不仅包括被测试的软件系统环境,还包括执行测试用例的自动化环境或测试服务器的客户端环境。
  一般公司具有以下三种环境:开发环境,测试环境,生产环境。
  测试环境:专门给测试人员使用,确保测试可以隔离和独立进行的一套干净的被测程序运行的环境。
  1.软件:计算机操作系统 Web服务器软件、应用服务器软件 数据库管理系统 支持的编程语言库
  2.硬件:计算机 服务器 终端设备 等
  3.数据:初始化数据、测试用例数据和用来保存各种测试工作中生成的文档和数据的文件服务器、驱动器等
  4.测试工具:浏览器工具、自动化测试工具、自定义的测试工具
  Web测试版本部署
  将测试版本构建好,并且部署到指定的测试环境中。
  II. 理解Web系统
  系统架构
  1、B/S vs C/S
  B/S: Browser/Server 用浏览器查看的应用程序。
  C/S: Client/Server 需要额外安装客户端的非单机版的应用程序。
  1)B/S和C/S各有千秋,他们都是当前非常重要的计算架构
  2)在适用Internet、维护工作量等方面,B/S比C/S要强得多
  3)B/S 架构需要进行浏览器的兼容性测试,需要考虑系统在不同的浏览器里面是否满足需求。
  4)C/S 架构需要进行系统的安装、升级与卸载等测试,需要考虑不同的支持的平台等问题。
  5)C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。
  6)B/S 建立在广域网之上的, 不必是专门的网络硬件环境,比C/S更强的适应范围,需要关注服务器的负载与性能测试
  2、典型三层架构
  三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:
  界面层(User Interface layer),又叫做表示层(Presentation Layer)
  业务逻辑层(Business Logic Layer)
  数据访问层(Data access layer)
  区分层次的目的即为了“高内聚低耦合”的思想。
  在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
  3、接口介绍
  接口一直指的是在应用程序架构中,用来提供标准数据输入和输出的方法和功能程序。主要包括Webservice,WebApi,普通API,SoapAPI,RESTFul API等。
  ●接口中实现的方法和要求参数一目了然
  ●不用担心大小写问题(有严格的要求)
  ●不用担心中文编码问题
  ●传递参数可以为对象(哈希表、数组等)
  接口实例:
  天气预报接口:
  接口URL: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
  网络服务描述语言: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
  该接口有5个方法:
  - getSupportCity()
  - getSupportDataSet()
  - getSupportProvince()
  - getWeatherbyCityName()
  - getWeatherbyCityNamePro()
  通过输入参数,可以调用这些接口,并得到请求的数据。
  查询本天气预报Web Services支持的国内外城市或地区信息:
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName=广东
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName=北京
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName=上海
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName=湖北
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName=河南
  查询获得本天气预报Web Services支持的洲、国内外省份和城市信息
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportDataSet
  查询获得本天气预报Web Services支持的洲、国内外省份和城市信息
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince
  查询获得根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=深圳
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=59493
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=北京
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=54511
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=上海
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=58367
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=香港
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=45005
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=Chicago
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=72530
  Web原理
  Web万维网,既是一种网络使用环境又是一些相关技术的总称
  技术视角:从技术的角度来看,Web技术包含网站网页的布局设计、代码编写、数据库建立、网络平台选择等相关技术
  用户视角:从网络使用环境的角度来看,Web就是我们平常使用浏览器上网时所浏览的网页
  1、URL
  Uniform Resoure Locator,统一资源定位符。指的是网页的地址等。
  URL的格式
  schema :// host [ : port] path [query # fragment ]
  | 格式内容 | 描述 |
  | -------- | ---------------------------------------- |
  | schema | 模式,协议 |
  | host | 主机名,域名,IP地址 |
  | port | 端口,若端口不是默认,则需要显示写出来。http 80/https 443/ftp 21/20 |
  | path | 资源路径,相对路径 |
  | query | 查询字符串 |
  | fragment | 片段。片段不会发送给服务器 |
  URL示例
  http://item.jd.com/1866658.html#comment
  http://localhost:808/ranzhi/www/sys/index.php
  https://www.baidu.com
  2、HTTP
  HTTP协议(HyperText Transfer Protocol,超文本转移协议)
  是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
  HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
  HTTP协议本身是一个无状态的协议。客户端只需要简单的向服务器端发出请求,客户端和服务器端都没有必要记录彼此过去的行为,每一次请求之间都是独立的。
  3、会话机制
  HTTP协议基于TCP协议.
  1.建立TCP连接
  2.发送请求
  3.回送响应
  4.断开TCP连接
  以在IE浏览器的地址栏中输入https://www.baidu.com/,然后回车。
  1. 浏览器从URL中解析出<host>, 若<host>为域名,则需要进行DNS解析
  2. 浏览器从URL中解析出<port>, 省略的则为对应协议的默认端口。
  3. 根据<schema>建立TCP连接
  4. Web浏览器发送HTTP请求,在请求中会包含<path>,<query>。
  5. Web服务器接收并处理请求,将请求的结构返回给web浏览器(回送HTTP响应)
  6. 断开TCP连接并解析显示页面
  1.TCP vs UDP
  UDP: 用户数据报协议,User Datagram Protocol,无连接的服务
  不需要事先建立连接,直接发送数据
  每个报文都带有完整的目的地址
  不保证报文传输的可靠性
  TCP: 传输控制协议,Transmission Control Protocol,面向连接的服务
  先建立连接再传输数据,之后再断开连接
  数据传输过程中,数据包不需要携带目的地址
  保证数据传输的可靠性
  TCP三次握手 开始
  TCP四次握手 结束
  小结TCP与UDP的区别:
  TCP是面向连接的服务,先建立连接再传输数据,之后再断开连接;
  TCP数据传输过程中,数据包不需要携带目的地址;
  TCP流模式传输数据,保证数据传输的序列正确性和可靠性。
  UDP是无连接的服务,不需要事先建立连接,直接发送数据;
  UPD每个数据报文都带有完成的目标地址
  UPD是数据包模式传输数据,不保证报文传输的可靠性,可能丢包。
  相关技术
  1、Web客户端
  浏览器功能:发送HTTP请求,接收web服务器的响应并解析成Web页面
  浏览器组成:
  浏览器引擎
  A web browser engine (sometimes called layout engine or rendering engine) is a software component that takes marked up content (such as HTML, XML, image files, etc.) and formatting information (such as CSS, XSL, etc.) and displays the formatted content on the screen
  浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页的标记内容(例如HTML、XML、JavaScript、图片等)和格式化的信息(例如CSS、XSL等)的语法的解释并渲染显示网页。
  通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染显示效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。
  ●Trident
  Trident(IE内核):该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11,也被普遍称作”IE内核”。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现。
  由于IE本身的“垄断性”而使得Trident内核的长期一家独大,微软很长时间都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量 Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非IE浏览器的浏览效果问题。
  IE从版本11开始,初步支持WebGL技术。IE8的JavaScript引擎是Jscript,IE9开始用Chakra,这两个版本区别很大,Chakra无论是速度和标准化方面都很出色。
  ●Gecko
  Gecko(Firefox内核):Netscape6开始采用的内核,后来的Mozilla FireFox(火狐浏览器) 也采用了该内核,Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,Gecko内核的浏览器也很多,这也是Gecko内核虽然年轻但市场占有率能够迅速提高的重要原因。
  事实上,Gecko引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这导致了微软内部一些开发人员的不满;他们与当时已经停止更新了的 Netscape的一些员工一起创办了Mozilla,以当时的Mosaic内核为基础重新编写内核,于是开发出了Gecko。不过事实上,Gecko 内核的浏览器仍然还是Firefox (火狐) 用户最多,所以有时也会被称为Firefox内核。此外Gecko也是一个跨平台内核,可以在Windows、 BSD、Linux和Mac OS X中使用。
  补充:JavaScript引擎是SpiderMonkey。
  ●Webkit
  Webkit(Safari内核,Chrome内核原型,开源):它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由软件,同时开放源代码。在安全方面不受IE、Firefox的制约,所以Safari浏览器在国内还是很安全的。
  限于Mac OS X的使用不广泛和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已经超过了Opera的Presto了——当然这一方面得益于苹果转到x86架构之后的人气暴涨,另外也是因为Safari 3终于推出了Windows版的缘故吧。Mac下还有OmniWeb、Shiira等人气很高的浏览器。
  ●Chromium
  Chromium(Chrome内核): 之前基于Webkit开发,现在基于Blink开发。
  Blink是一个由Google和Opera Software开发的浏览器排版引擎,Google计划将这个渲染引擎作为Chromium计划的一部分,并且在2013年4月的时候公布了这一消息。这一渲染引擎是开源引擎WebKit中WebCore组件的一个分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用。
  ●Presto
  Presto(Opera前内核) (已废弃): Opera12.17及更早版本曾经采用的内核,现已停止开发并废弃,该内核在2003年的Opera7中首次被使用,该款引擎的特点就是渲染速度的优化达到了极致,然而代价是牺牲了网页的兼容性。
  实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测试,Presto内核执行同等Javascrīpt所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过两者相差没有多大),本文的其中一个修改者认为上述测试信息过于老旧且不完整,因为他曾做过的小测试显示Presto部分快部分慢,各内核总体相当。那次测试的时候因为Apple机的硬件条件和普通PC机不同所以没有测试WebCore内核。只可惜Presto是商业引擎,使用Presto的除开Opera以外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展。
  1、Web服务器
  ●Apache
  Apache:在Web服务器中,Apache是纯粹的Web服务器,经常与Tomcat配对使用。它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(JSP/Servlet)。
  Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。 Apache是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。
  Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此, 在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用以及它的可移植性等方面。
  ●Tomcat
  Tomcat:早期的Tomcat是一个嵌入Apache内的JSP/Servlet解释引擎Apache+Tomcat就相当于IIS+ASP。后来的Tomcat已不再嵌入Apache内,Tomcat进程独立于Apache进程运行。 而且,Tomcat已经是一个独立的Servlet和JSP容器,业务逻辑层代码和界面交互层代码可以分离了。因此,有人把Tomcat叫做轻量级应用服务器。
  ●IIS
  Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS 的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。
  IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器, 分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供 ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
  微软早期的IIS,就是一个纯粹的Web服务器。后来,它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了,这时,它就可以兼作应用服务器。当然,它与J2EE应用服务器根本无法相比,但是,从功能上说,从原理上说,它勉强可以称之为应用服务器。确切地说,它是兼有一点应用服务器功能的Web服务器。
  综上:Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的Web服务器。Weblogic、WebSphere因为能提供强大的J2EE功能,毫无疑问是绝对的应用服务器。对于处于中间位置的Tomcat,它可以配合纯Web服务器Apache一起使用,也可以作为应用服务器的辅助与应用服务器一起部署。
  应用服务器
  ●IBM WebSphere
  WebSphere Application Server 是一种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理Internet 和 Intranet Web应用程序。这一整套产品进行了扩展,以适应Web应用程序服务器的需要,范围从简单到高级直到企业级。
  WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。
  ●Oracle WebLogic
  Oracle WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库, 还是提交服务、跨 Internet 协作,起始点都是 Oracle WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。
  Oracle WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。Oracle WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。Oracle WebLogic Server 的遵从 J2EE 、面向服务的架构,以及丰富的工具集支持,便于实现业务逻辑、数据和表达的分离,提供开发和部署各种业务驱动应用所必需的底层核心功能。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • sun杨帆
    2017-9-28 16:41:04

    怎么收藏呢

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号