web测试基础知识

server/2024/11/15 1:26:48/

目录

web系统的基础

web概念(worldwideweb)

网络结构

发展

架构

B/S

C/S

P2P

工作原理

静态页面

动态页面

web客户端技术

浏览器的核心--渲染引擎

web服务器端技术

web服务器

应用服务器

集群环境

数据库

案例-URL

协议类型

主机名

端口

IP地址

分类

IPv4与IPv6区别

互联网的基础

基础知识

因特网(Internet)

企业内部网(Intranet)

路由器和交换机

协议的概念

OSI协议模型

TCP/IP协议

三次握手四次挥手

通信方式

HTTP协议

简介

请求

响应

抓包工具

web功能测试

链接测试

表单测试

脚本测试

数据库测试

文件上传测试

webGUI测试目

测试点

web兼容性测试

浏览器兼容性

系统兼容性

显示分辨率

插件兼容性

web安全测试

目录设置

口令验证

授权验证

日志文件

Session与Cookie安全

Session

异常操作

SQL注入

跨站脚本攻击XSS

web性能测试目录

web系统的基础

web概念(worldwideweb)

Web是一种超文本的、HTTP的、全球的、动态的、交互式的、分布式图形信息系统。

网络结构

两层结构:

多层结构

发展

Web1.0:网上冲浪(单向)

Web2.0:能够交互(双向)

Web3.0:具有人工智能,通过网络不仅能够获得信息还能获得财富和声誉,短视频形式。

Web4.0:虚拟现实VR(meta)

架构

B/S

(瘦客户端)browser/server,即浏览器/服务器架构。不需要专门的客户端只需要浏览器即可。架构的主要业务是服务端实现。

例如:百度、淘宝、网页游戏。

优点:具有分布性的特点,升级维护简单方便。

缺点:个性化降低,响应速度慢,无法满足快速操作的要求,面向大众机密性差。

C/S

(胖客户端)client/server,即客户端/服务器端架构。架构的客户端是定制的,需要安装独立的应用程序作为客户端。是为了完成某一个功能而专门研发的。

例如:lol、搜狗输入法。

优点:页面多样化,响应速度快,能够实现复杂的操作,向有限群体机密性高。

缺点:需要安装,升级维护成本高,兼容差

P2P

point-to-point,点对点,没有服务器,而是客户端与客户端直接通信。例如:飞秋

工作原理

请求(Request)和响应(Response),使用标准的HTTP协议(HyperTextTransferProtocol–超文本传输协议)来进行请求的发送和响应的接收。

静态页面

用HTML等来编排,页面内容固定不变,以.html.htm等文件形式保存的网页。

速度快,容易被搜索引擎收录;

无法从服务器中获取信息,若有变化,必须手工编辑,并新上传到服务器。

动态页面

网页中的关键内容在服务器端生成的网页。

能够访问服务器端的数据库,具有交互性,网页维护的工作量有所减少;

不利于搜索引擎的信息收集,数据库访问是一个瓶颈。

web客户端技术

用来发送HTTP请求并接收服务器响应。

浏览器的核心--渲染引擎

负责取得网页的内容(HTML、XML、图象等等)、整理信息(例如加入CSS等),以及计算网页的显示方式然后会输出至显示器或打印机。

1.Trident页面渲染引擎:IE、腾讯TT、360浏览器、搜狗浏览器。

2.Gecko页面渲染引擎:火狐

3.KHTML页面渲染引擎和WebKit框架:Safari,Konqueror,Chrome

4.Presto页面渲染引擎:Opera,任天堂DS浏览器。

web服务器端技术

web服务器

作用:apache,监听客户端请求,处理客户端请求,客户端与数据库之间的屏障。

例如:Apache,IIS,Tomcat,Lighttpd,Nginx(反向代理服务器)

应用服务器

作用:处理复杂系统的业务和数据库的访问。

例如:J2EE应用服务器,IBMWebSphere,BEAWebLogic,tomcatjava,IIS(iis首先是一个web服务器,其次微软公司也将定义为.net框架下的应用服务器)

集群环境

服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就象是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度(LoadBalance–负载均衡),也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行(FailOver–故障转移)。

数据库

文件型数据库,关系型数据库(MySQL),内存型数据库(高速高并发大数据),NoSQL

案例-URL

Uniformresourcelocator统一资源定位器。是internet的程序用于定位指定信息的方法

协议类型

http/https/ftp

主机名

域名/ip地址,IP地址和域名是等价的,域名背后就是IP地址,一个域名可以是一个IP地址,也可以是多个IP地址。

端口

web服务器开放出来的与外界通讯交流的出口。除了写主机名之外还需要指明端口号,只有指明端口号,地址才算完整。网页服务器的端口是80端口,80端口是最常见的端口也是默认的端口,可以省略,其他端口不能省略。因为一个网卡最多能分配2^16=65536个网络地址,所以TCP/IP协议中端口号是从0---65535,0--1024这一批端口是由常见的服务占用,1025朝后留给用户使用。

常见端口:

HTTP:80

HTTPS:443

FTP:21

SSH:22

POP3:110(属于TCP/IP协议,用于支持客户端远程在服务器上的电子邮件)

SMTP:25(是电子邮件的传输协议,是建立在FTP协议上的一种邮件服务)

Oracle:1521

Mysql:3306

Sqlserver:1433

IP地址

IP地址用于定位资源所在的主机,同样是使用全球唯一的IP地址来定位主机,由于IP地址比较难记,很多时候用域名来代替。IP地址是一个32位的二进制,通常IP地址分为四个八位二进制,也就是分为四段,采用点分十进制表示。

10101100.00010101.00001000.01111010=====172.21.8.122

分类

A类:给大型网络使用。A类在IP地址的四段号码中,第一段为网络号码,剩下的三段为本地计算机号码。A类地址中网络标识长度为8位主机标识长度为24位。范围:1.0.0.1----127.255.255.254

B类:给中型网络使用。B类地址中网络标识长度为16位主机标识长度为16位。范围:128.0.0.1---191.255.255.254

C类:给小型网络使用:C类地址中网络标识长度为24位主机标识长度为8位。范围:192.0.0.1---223.255.255.254

D类:组播使用:也称为多播地址。范围:224.0.0.0---239.255.255.255

E类:预留以:11110开头,保留用于将来和实验使用。

特殊IP地址:Localhost==127.0.0.1回换地址

IPv4与IPv6区别

1.IPv4支持32位后来扩展到40位,而IPv6支持128位。

2.IPv4是目前所使用的ip协议,而Ipv6是下一代互联网协议。

3.IPv6在地址数量、传输效率和质量、安全性、易用性方面更胜一筹。4.IPv4体系:全世界有13台IPv4根域名服务器,其中一个为主根服务器,在美国。其余12个均为辅根服务器,9台在美国,欧洲2个,位于英国和瑞典,亚洲1台在日本。

IPv6体系:全世界共有25台DNS根服务器,3台主根分别在:中、美国、日本。中国:1主3辅美国:1主2辅日本:1主

互联网的基础

基础知识

互联网(Internet):由多个计算机网络相互连接而成,而不论采用何种协议与技术的网络。

因特网(Internet)

也称为国际互联网或者万维网。因特网是由那些使用公共语言开发的并且相互通信的计算机连接起来的全球网络。

企业内部网(Intranet)

也称为局域网。是一种相对封闭的网络环境,内部有使用权限,外部无法进入,有着严格授权。局域网可以很好的保护企业的机密和敏感信息。

路由器和交换机

1.交换机主要起到的连接作用,而路由器除了连接作用外还可以拨号上网。

2.交换机的口比较多,而路由器的口比较少。

3.二层交换机工作在数据链路层而三层交换机工作在网络层。三层交换机具有部分路由功能。

不考虑端口,路由器可以代替交换机,三层交换机可以部分代替路由器

协议的概念

协议其实就是一种规范,是通信对象共同遵守的规则,在网络通信中,只有遵循一定的规则,才能相互交换信息,因此协议的一致性及标准性在Web系统应用过程中尤为重要,常见的网络协议有TCP/IP、HTTP、SSL、TLS、WTLS等。

OSI协议模型

OSI是由国际化组织ISO提出的一个试图使各种计算计在全世界互联为网络的标准框架,OSI是一个参考模型。OSI是Open System Interconnect的缩写,意为开放式系统互连。OSI模型把网络通信活动分7层级。

1.物理层

作用:将数据转为电子信息。

数据的格式:比特(bit)

常见的设备:中继器、集线器。RJ45

2.数据链路层

作用:为网络层提供服务,在不可靠的物理介质提供可靠的传输。

数据格式:帧。(frame)

常见物理设备:网桥、二层交换机。

3.网络层

作用:数据路由。

数据格式:包(package)

常见的物理设备:路由器、三层交换机。

4.传输层

作用:提供端到端的可靠连接。

数据格式:段(segment)

常见协议:TCP/UDP

5.会话层

作用:提供主机与主机之间的会话进程。即建立、管理、终止进程间的会话。

6.表示层

作用:协商数据的交换格式。即编码、压缩、解压、加密。

7.应用层

作用:通过应用程序完成用户的应用需求。即:传输文件、收发邮件等。

常见协议:HTTP,HTTPS,FTP

TCP/IP协议

传输控制协议/互联网协议transmissionControlProtocol/InternetProtocol,OSI是由国际化组织ISO提出的一个试图使各种计算计在全世界互联为网络的标准框架,OSI是一个参考模型。TCP/IP协议是当前网络协议的一个具体的实现,TCP/IP协议规范了网络上所有的通信设备,尤其是一个主机到另一个主机的数据往来格式及传送方式。分为四层:

三次握手四次挥手

建立TCP连接时需要三次握手,而断开TCP连接时需要四次挥手,因为TCP是全双工的,所以需要三次握手才能连上,需要四次挥手才能断开。

通信方式

1.单工:只能一方发另一方收。例如:广播。

2.半双工:双方都可以发送和接收,但是在同一时刻只能一方发另一方收。例如:对讲机。

3.全双工:双方都可以同时发送和接收。电话、网络数据。

HTTP协议

OSI是由国际化组织ISO提出的一个试图使各种计算计在全世界互联为网络的标准框架,OSI是一个参考模型。

TCP/IP协议是当前网络协议的一个具体的实现,TCP/IP协议规范了网络上所有的通信设备,尤其是一个主机到另一个主机的数据往来格式及传送方式。

HTTP协议规定了浏览器和服务器相互通信的规则,通过internet传送www文档的数据传送协议。HTTP协议是服务器传输文本文件到本地浏览器的协议,HTTP是一个基于TCP/IP的协议,属于应用层面向对象协议。

简介

Web系统的基础就是超文本传输协议(HyperText Transfer Protocol,HTTP)。HTTP是一个应用层协议,也就是TCP传输层的上一层协议。HTTP是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答。HTTP使用可靠的TCP连接,默认端口是80。

请求

get请求:主要是数据的获取

post请求:主要是数据的提交

响应

HTTP的响应状态码分为五类:(1xx/2xx/3xx/4xx/5xx)

1xx---3xx:表示正常。

2xx:表示成功。

4xx:客户端出问题。

5xx:服务器端出问题

常见响应状态码:

100:服务器收到了部分请求,但是服务器并没有拒绝该请求,客户端应该继续发送其余请求。

101:服务器转换协议,服务器将遵循客户的请求转换到另一个协议。

200:表示成功,一切ok。202:供处理的请求已经被接受,但是处理尚未完成。

300:多重选择。客户请求的文档在多个位置都可以找到。301:所请求的页面已经永久的转换到新的URL。

400:服务器未能理解请求。(客户端的请求出现语法错误等导致服务器无法理解)401:被请求的页面需要用户名和密码。(权限不够)

404:NOT Found服务器无法找到请求的页面。

500:请求未完成,服务器遇到不可预知的情况。

501:请求未完成,服务器不支持请求的功能。

503:请求未完成,服务器过载或者宕机。

抓包工具

Wireshark:是一个通用的抓包工具,是一个网络分装包分析软件,主要用于监听TCP/IP协议。

Httpwatch:是一个强大的网页数据分析工具,集成在浏览器中。

Fiddle:与Httpwatch类似,是现在比较流行的抓包工具。

总结:wireshark比其他两个抓包工具都强大,也能抓取HTTP请求。HTTPwatch和Fiddle都能抓取HTTP请求,但是Fiddle支持的浏览器多。

web功能测试

1.软件是否实现了SRS中明确定义的需求。(Error)

2.软件是否遗漏了SRS中明确定义的需求。(Miss)

3.软件是否实现了SRS中未定义的需求。(Extra)

4.软件是否满足了SRS中没有定义但是应该实现的需求。(隐性需求)

5.软件是否对异常情况进行了处理。

链接测试

1.链接是否正常显示。

2.目标网站能否正常打开。

3.链接入口测试。文字:是否简洁,准确。图片:形象、相关。

4.查找孤立页面。所谓的孤立页面就是指没有链接指向该页面。

表单测试

1.表单控件完整、布局合理

2.表单控件数据显示内容正确,且功能正常

3.表单数据的提交完整

4.表单控件校验

5.表单控件联动

6.正确功能符合业务需求

脚本测试

动态的验证、特殊的展示效果,在测试过程中需进行此类效果或功能的测试,以检验相关脚本的正确性,同时需考虑它们是否有兼容性问题。

数据库测试

测试人员利用数据库测试自己的软件在数据库方面是否有问题

1.数据库中的数据与软件界面的数据是否一致。

2.提取及存储数据的效率。(性能)

文件上传测试

(1)上传成功是否有相关的提醒,是否提供了相应的接口查看。

(2)文件上传到服务器的保存时间是否正确。

(3)上传超大或者超多文件时是否有提醒有限制。

(4)是否允许指定类型的文件上传,不能上传脚本和可执行文件。

(5)能否上传被占用的文件。

(6)上传过程中改变源文件的内容、路径或者删除源文件。

(7)对于暂停、断网、断电、关闭上传页面等异常情况是否有提醒,可续传。

(8)文件上传到服务器是否会被重命名防止文件冲突。

(9)上传是否支持、拖入、手动输入地址等方式,以及这些方式的组合。

(10)上传文件是否与其他操作有冲突。

(11)同一账号不同设备同时上传。

(12)服务器空间不足是否有正确提醒。

(13)上传过程中是否记录日志(log)。

(14)上传过程中能否取消

webGUI测试目

测试点

1.布局

2.颜色

3.风格

4.协调黄金分割点0.618

5.规范(蓝底白字)

6.能否驾驭

web兼容性测试

浏览器兼容性

目前主流的浏览器分为IE、FireFox、Chrome、Safari等几大阵营,国内的浏览器基本是基于IE核心的,主要有360浏览器、傲游浏览器、腾讯TT浏览器等。浏览器的兼容性测试主要兼容不同浏览器的内核:渲染引擎。浏览器间的差异主要体现在对JavaScript、ActiveX和HTML解码方法处理不同,因此需要在Web系统测试时注意,尤其是通过某个控件跳转浏览器时更需关注。

系统兼容性

系统的兼容性主要体现在操作系统方面,目前主流的操作系统有WindowsXP、Windows Vista、Windows7、Windows8,windows10,windows11还不包括每个系列的细分版本。除了微软阵营的OS外,还有Mac系统、Linux或Unix系统。在测试过程中需关注被测对象在不同系统上的表现,尤其是与系统有数据交互时。

显示分辨率

不同显示分辨率可能会导致Web页面变形,严重时会导致功能无法使用,因此需要测试在不同分辨率下的系统表现,常见的分辨率为1280×1024、1024×768、800×600等。即使系统不能在某些分辨率下工作,也需给出明确的信息提示。

插件兼容性

有些Web系统应用了一些控件,如文本编辑器、文件上传下载控件等,这些控件也需考虑在不同的浏览器、操作系统分辨率下的应用表现

web安全测试

目录设置

对于常见的管理员后台入口页面名称在设置目录时同样需要注意,不应将入口名称或路径做普通文件设置,应加以保护,如变换入口目录路径或重命名关键文件

口令验证

目前大多数的Web系统都设置了登录功能,只有验证通过后,才能访问相关的数据信息。在测试此类功能时,必须测试有效和无效的用户名及口令,同时需考虑大小写、错误次数限制、代码注入等。

授权验证

典型的业务系统基本上由用户、用户组(角色)、权限及基本功能构成,权限管理在整个业务系统中起着至关重要的作用,即使通过了口令验证,不同用户、不用角色仍可能具有不同的权限,因此在测试过程中需重点测试授权问题,如未登录是否可以浏览信息、未授权是否可以使用功能、权限重叠时能否正确分配等。

日志文件

日志的功能是追踪,任何可能危害系统安全的操作都应被记录,测试时需确认是否以安全的方式记录了应该记录的信息

Session与Cookie安全

保存会话有两种技术:Cookie和Session。

会话:用户打开浏览器点击链接访问服务器,整个过程称为一次会话。

服务器暂存在用户计算机上的一笔资料,好让服务器识别计算机。

Cookie也写成Cookies,产生于HTTP协议在互联网的发展。在浏览器初期为了方便用户使用技术上推出了很多手段,其中就有Cookie。Cookie是由美国网景公司雇员LM为了提高用户访问网站的速度而发明的,至今沿用。

特点:

1.格式:通常是键值对,如name=value,名字为cookie:用户名@ip地址

2.Cookie保存在客户端并且加密。

3.用于保存用户的登录信息和操作。

测试:

Cookie是否起到作用。

Cookie是否加密。(安全性)

Cookie是否按照规定的时间保存。(安全性)

Session

与Cookie本质上是一样的,可以认为Session是Cookie的一种特殊形式。Session保存在服务器端。当一个访问者来到一个网站时,这个时候一个Session就开始了,当访问者离开时这个Session就结束了。

当一个访问者来到网站,服务器就会识别该用户并给用户一个ID(SID),当访问者离开时就会删除这个ID,访问者在整个访问过程中一直会携带这个SID,在后续的访问中不需要再进行验证,只需要携带这个SID即可。

测试:

过期时间:登录网站后不做任何操作,等待过期时间到了,然后再操作网站,如果此时出现Session已经过期则说明过期时间有效。如果还没有到过期时间,就提醒过期,或者已经到了过期时间还不提醒过期则说明过期时间有问题。

异常操作

测试工程师不能奢望用户按照系统设计的意愿去使用,因此在测试任何功能、业务过程中需模拟任何的异常操作,验证系统能否经得起考验,如输入过长的数据、输入特殊符号、上传带恶意代码的文件、非法下载禁止下载的文件等

SQL注入

SQL注入是Web系统安全攻击的常见手段,攻击者通过构建特殊的输入或非法的SQL命令插入表单或页面请求的字符串中后提交,从而达到利用服务器执行恶意SQL语句的目的。SQL注入攻击成功后,可直接屏蔽服务器验证,获取访问权限,甚至获取服务器的最高权限,执行篡改记录等恶意行为。容易被实施SQL注入的主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

SQL注入根据注入技术原理的不同,一般分为数据库平台注入和程序代码注入。数据库平台SQL注入由Web系统使用的数据库平台配置不安全或平台本身存在漏洞引发;程序代码注入则主要是由于开发人员在设计时,未能考虑细致及编码时错误实现,从而导致攻击者轻易利用此缺陷,执行非法数据查询。

跨站脚本攻击XSS

跨站脚本攻击XSS又称为CSS(crosssitescript),通常是指利用网站漏洞从用户那里恶意盗取信息。当用户访问注入了恶意HTML代码的Web系统时,可能会触发对应的获取用户敏感信息操作,如获取用户Cookie或Session等。

DOS攻击

Dos(DenialofService)攻击,是一种常见,成本较低的网络攻击方式。这种网络攻击方式经常给一些大型网站造成巨大的损失。

web性能测试目录

主要是测试一个网络应用系统在多用户和长时间访问时的处理能力。

性能测试的目的:验证系统是否满足用户的性能需求。性能测试一般按照两种方式进行:1.负载测试、2.压力测试。

负载测试关注的是不同负载水平的系统的性能指标。为了得到压力数确定下的性能指数。例如我们可以找到系统的最大用户数和最佳用户数。压力测试则是关注在超高负载(超过系统最大用户数)的情况下,系统是否还能稳定处理,如果不能稳定处理,那么系统还能坚持多久。其重点是关注系统是如何失效的,以便于制定系统正式上线后的风险控制措。


http://www.ppmy.cn/server/12122.html

相关文章

OceanBase OLAP collation utf8mb4_bin 优先

在大数据系统中,如无特别需要,建议 collation 指定为 utf8mb4_bin。 utf8mb4_bin是一种二进制的排序规则,比较字符串时直接比较字符串的二进制值,不需要进行复杂的字符比较和排序运算,这样可以有效减少CPU的使用&…

【网络编程】TCP流套接字编程(TCP实现回显服务器)

一.TCP流套字节相关API. Socket(既能给客户端使用,也能给服务器使用) 构造方法 基本方法: ServerSocket(只能给服务器使用) 构造方法: 基本方法: 二.TCP实现回显服务器. 客户端代码示例: package Demo2;import java.io.IOException; import java.io.InputStream; import j…

MongoDB数据恢复—拷贝MongoDB数据库文件后无法启动服务的数据恢复案例

服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分…

List<Entity>与Map<String, Entity>互转

List 转为 Map<String, Entity> 要将 List<Entity> 转换为 Map<String, Entity>&#xff0c;你需要指定一个属性作为 Map 的键&#xff0c;然后将 List 中的每个实体对象的该属性值作为键&#xff0c;实体对象本身作为值放入 Map 中。以下是一个示例代码&am…

蓝桥杯:日期问题(我的绝望题)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;每日一练 &#x1f337;追光的人&#xff0c;终会万丈光芒 目录 前言&#xff1a; &#x1f337;1.问题描述&#xff1a; 1.问题描述&#xff1a; 2.输入格式&#xff1a; 3.输出格式&#…

Kafka学习笔记(二、linux和docker安装及使用demo)

1.安装启动 1.1.下载解压 官网下载地址将下载的tar包上传到服务器一个目录&#xff0c;然后解压$ tar -xzf kafka_2.13-3.7.0.tgz $ cd kafka_2.13-3.7.01.2. 启动环境 需安装Jdk8&#xff0c;Kafka可以使用ZooKeeper或KRaft启动。 ZooKeeper启动 运行如下命令&#xff0c;…

【每日刷题】Day22

【每日刷题】Day22 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 1669. 合并两个链表 - 力扣&#xff08;LeetCode&#xff09; 2. 11. 盛最多水的容器 - 力扣&#…

Java读取html 中标签的值

步骤一&#xff1a;发送请求 在开发中&#xff0c;我们要直接访问一个链接地址可以用&#xff1a; 阿帕奇的&#xff1a;HttpClient.execute() hutool的&#xff1a;httpUtil.sendGet() okhttp的&#xff1a;okhttputil.get() 等等&#xff0c;有很多发送http请求的方法&a…