Web测试技术
- Web基础知识
- 软件网络结构
- Web开发(B/S结构)
- Web系统原理
- Fiddler抓包工具
- Web测试技术
- Web功能测试
- Web前端性能测试
- Web兼容性测试
- Web安全性测试
- Web可靠性测试
- Web易用性测试
Web基础知识
软件网络结构
C/S结构(客户端、服务器)、B/S结构(web浏览器、web服务器、数据库服务器)
Web开发(B/S结构)
分为前端开发(web服务器开发)和后端开发(业务逻辑和数据库服务器开发)
- 前端开发:HTML、CSS和JavaScript
- 后端开发:Java、.net、node.js、python
常见的Web服务器:Tomcat\Apache\Nginx\Weblogic\Websphere
在不同操作系统下整套的Web运行集成环境:LAMP(Linux+Apache+MySQL+PHP)、WAMP、XAMPP(Apache+MySQL+PHP+PERL,可以在多个操作系统下安装使用)
Web系统原理
1.浏览器中输入URL的格式:
协议://主机IP[:端口]/资源路径
2.网络协议模型
OSI协议模型(7层):物理层、数据链路层、网络层(将网络地址翻译成对应的物理地址)、传输层、会话层、表示层、应用层
TCP/IP协议模型(4层):网络接口层、网络层、传输层、应用层
3.Web网络协议
- TCP/IP协议:提供端到端、基于连接的、可靠的通信服务。TCP每次建立连接前3次握手,断开连接时4次挥手。
- HTTP协议(超文本传输协议):在TCP传输层的上一层,只定义传输的内容,不定义如何传输。
特点:1.无连接(每次连接只处理一个请求,处理完请求即断开连接)2.无状态(对于事务处理没有记忆能力,后续处理需要前面的信息,则必须重传)
HTTP请求:请求行、请求头、请求体
Fiddler抓包工具
Web测试技术
Web功能测试
- 单个功能。例如,登录功能
- 页面连接
- 功能组合。前面的功能会影响到后面的功能使用。例如,先登录,再进入相应的页面进行测试
- 脚本功能。Web系统中大量的互动功能使用JavaScript或VBScript脚本实现的。需检查是否会出现当前页面的脚本发生错误。
- 文件上传/下载。能否正常上传下载,包括文件格式、上传内容、能否正确打开、传输过程中出现中断是否有提示
- 缓存功能:
1.Cookie:主要用来保存用户的个人信息,方便用户访问系统时,系统可以调用以前存储的信息。例如,第二次进入系统就可以免登录。测试时注意第二次进入系统时能否免登录,删除cookie时登录是否需要填写账号密码等信息。
2.session:session信息一般记录在服务器的内存中,与cookie不同。测试时需关注session的失效时间。
3.cache:用户发起请求,查找顺序依次为本地、cache、服务器。在web系统性能测试时,需关注cache对测试结果的影响。
Web前端性能测试
前端测试需要关注:加载时间、页面容量、资源数量、本地缓存、请求数量
后端测试较复杂,可分为:性能指标测试、压力测试、负载测试、容量测试,一般使用专业性能测试工具,如Jmeter和LoadRunner
- 加载时间:遵循3/5/8原则
- 页面容量:需检查每次加载的数据大小、文件大小规格是否复合需求和设计要求
- 资源数量:在服务器响应传输时,如果资源太多,会降低加载速度,要减少无效资源的传输
- 本地缓存:某些网站资源被缓存到浏览器端,方便用户二次访问网站查看,加快加载速度
- 请求数量:尽量减少HTTP请求(这样可以减少DNS请求耗费的时间、减少服务器压力、减少HTTP请求头)
前端性能优化方式:
- 减少HTTP请求次数
- 避免空的src和href
- 使用gzip压缩内容
- 把CSS放到顶部
- 把JS放在底部
- 减少cookie的大小
Web兼容性测试
一般只考虑浏览器端的兼容性:
- 不同浏览器的兼容性,Chrome、FireFox、Edge、Safari
- 操作系统的兼容性(app测试的重点)
- 不同显示分辨率下的测试
Web安全性测试
常见的有:目录设置、口令验证、用户权限、SQL注入、跨站脚本发攻击XSS
- 目录设置:通过图片的属性可以查看上一级目录的路径,进而直接获取目录下所有图片资源。
- 口令验证:主要关注密码强度、密码的密文显示、是否加密传输、验证码
- 用户权限。例如每个权限组的用户权限是否与设计一致,未登录用户是否可以浏览信息
- session和cookie安全。防止伪造session和恶意读取cookie,测试时需要关注session的失效机制及失效时间、cookie记录与读取的权限。
- SQL注入。在地址栏或web的输入框中,输入非法的SQL语句,从而达到避开服务器验证,获取访问权限的目的。实际测试中,可以使用SQLmap等安全测试工具对网站进行安全测试。
- 跨站脚本发攻击XSS。当用户访问注入了恶意代码的Web系统时,用户的cookie或session等敏感信息可能被截获。
Web可靠性测试
又叫稳定性测试,通常在性能测试中实施,一般需要给系统施加一定负载(70%-90%),时间达8小时以上,计算平均故障间隔时间 MTBF=总工作时间/总失效次数
Web易用性测试
主要测试web的ui界面