Web端测试方法

article/2025/10/9 13:27:29

web端通用测试点请移步

1. Web 测试的总体策略

在这里插入图片描述

2. Web 测试的范围

√ 功能
√ 性能
√ 界面
√ 兼容性
√ 安全性
√ DB
√ 文档

2.1 功能测试

☆ 功能测试主要从链接、表单、Cookies、设计语言、数据库、文件上传等方面进行。

2.1.1 链接

☆ 链接也称超链接,是指从一个网页指向另一个目标的连接关系,所指向的目标可能 是一个网页、相同网页上的不同位置、图片、电子邮件地址、文件、应用程序 等。
链接最容易出现以下几种错误:
☆ 错误链接,如 URL 地址拼写错误、URL 后缀多余或缺少斜杠、URL 地址中出现 的字母大小写不完全匹配、用户输入的域名拼写错误。
☆ 空链接, 单击该链接时不会指向任何内容。
☆ 死链接,原来正常,后来失效的链接。
☆ 孤立页面,指没有链接指向该页面,只有知道正确的 URL 地址才能访问。

2.1.2 表单

☆表单是系统与用户交互最主要的界面,测试过程主要关注程序是否能正确地处 理客户提交的信息,并将信息正确地反馈到客户端。
测试过程中应该注意以下几方面的测试:
☆ 文本输入框对长度是否有限制。
☆文本输入框对字符类型是否有限制。
☆ 文本输入框模式匹配是否正确,如该文本框只能输入日期格式的数据,那 么只能匹配不同的日期格式,而不能匹配其他格式的数据。
☆ 各按钮实现的功能是否正确。

2.1.3 Cookie

☆Cookies 能够让网站服务器把少量数据存储到客户端的硬盘或内存,或是从客 户端的硬盘读取数据的技术。
Cookie 有哪些用途:
☆ 自动登录,登录时,选择记住用户名,下次登录会自动带出用户名来。
☆ 广告精准投放,当我们用浏览器搜索过一些关键字,如:web 测试书,某 手机,打开浏览器时,会推送相关浏览过的商品。
☆ 如何查看 Cookie:
打开 IE,在工具栏点工具→Internet 选项→常规→(Internet 临时文件)浏 览历史记录→设置,这样可以查看到 Cookies 所存位置,还可以对其进行 设置。
在这里插入图片描述
在这里插入图片描述
Cookies 的测试包含以下几个方面:
☆ Cookies 的安全性,Cookie 中最好不要存储一些敏感的信息,需要时应该对 Cookie 中的 一些字段进行加密处理。Cookies 的过期时间是否正确;
☆Cookies 的变量名与值是否正确;
☆ Cookies 是否必要,是否缺少:一是生成的 Cookie 文件是否与创建的一致, 不能多也不能少,二是对于不必要的 Cookie 可以删除。
☆ Cookies 的作用域是否正确合理;
☆ 多个 Cookies 的作用域之间关系的测试。

2.1.4 设计语言测试

☆ Web 设计语言版本的差异可以引起客户端或服务器端严重的问题,如使用哪
种版本的 HTML等。
☆ 不同的脚本语言,如 Java、JavaScript、ActiveX、VBScript 或 Perl 等,也要进行验证。
关于设计语言的测试,应该注意以下几个方面:
☆ 不同的浏览器内核引擎不同,会导致与不同的开发语言的兼容情况不同, 当前主流浏览器的内核有 Trident、Tasman、Pesto、Gecko、KHTML、 WebCore 和 WebKit。
☆ 不同的设计语言与平台有不同的兼容性。
☆ 不同脚本语言执行的时间也不同。
☆ 嵌入其他语言的能力。脚本语言对一些操作无法实现,如读取客户端的信 息,此时需要同时借助其他语言来实现。要考虑当前脚本语言对其他语言 的支持程度。
☆ 系统数据库可能升级,测试时需要考虑脚本语言支持数据库的完善程度。

2.1.5 文件上传

☆ 只能上传允许的附件类型;
☆ 不能上传脚本或可执行文件;
☆ 不能单纯以后缀名来判断文件类型;
☆ 浏览好文件后,可以正常处理删除目标文件时出现的异常情况;
☆ 上传超大文件时可以正常处理,比如给出提示信息等;
☆ 上传的文件应该提供接口查看;
☆ 上传的文件不应该直接保存于数据库中,而是将文件保存在服务器端硬盘,而 在数据库中保存该文件的基本信息;
☆ 文件上传到服务器端后应该被重命名,防止文件名冲突。

2.2 性能测试

2.2.1 链接速度测试

☆ 链接的响应时间不能太长,一般不超过 5 秒。

2.2.2 负载测试(Load Testing)

☆ 测试系统能够承受的最大负载(如最大用户量、最大业务量、最大数据量等)以及 性能表现。

2.2.3 压力测试(Stress Testing)

☆ 测试系统在一定压力下的性能表现,通常业务的错误率不能超过 5%。

2.3 界面测试

☆ GUI(Graphical User Interface)即图形用户界面。

2.3.1 格式验证

☆ 验证 Web 页面中一些空间默认的标准定义,如默认值、项目按顺序排列等。

2.3.2 导航条测试

☆ 各页面导航条是否能正确地显示;
☆ 各页面下导航条显示的内容是否正确;
☆ 不同状态下(如登录与未登录,导航条显示的内容是否正确;
☆ 导航条的每项内容链接是否正确。

2.3.3 拼写和语法测试

验证页面内容、菜单和链接、图片、表格内容的拼写和语法。

2.3.4 页面排版测试

☆ 页面标题验证;
☆ 页面元素(文字、窗体、菜单、链接、公司商标等)排版验证;
☆ 页面图形验证;
☆ 页面版本信息验证;
☆ 不同分辨率下的页面显示情况验证;
☆ 页面长度验证。

2.3.5 Tab 键测试

☆ Tab 顺序正确跳转。

3.4 安全性测试

2.4.1 基本安全测试

☆ 各种登录模式的安全性验证、对口令各种要求的测试。
☆ 用户权限(如功能限制、数据访问限制等)的验证。
☆ Cookie 和 Session 的有效期验证等特殊机制的验证。
☆ 敏感数据加密、数据存储安全性的验证。
☆ 验证系统的日志文件是否得到保护。
☆ 测试软件不会因在异常条件下错误操作而导致不安全状态。
☆ 其他各种安全漏洞的检查,如 WSDigger 扫描。跨站点攻击 XSS,get 方式在 URL 后输入如 name=,若弹出警告或者查看源文件中存在输 入的字符串则存在漏洞。
☆ SQL 注入,sql=‘select yhm,mm from users where username=’ + yhmTextField.getTex(t ) +’ and password=’ +mmTextField.getTex(t ) ,如用户名中输入 admin’ --后,不输入密码也可以登录。

2.4.2 认证测试

☆ 登录页面是否存在验证码,不存在说明存在漏洞。
☆ 验证码和用户名、密码是否一次性、同时提交给服务器验证,如果分开提交, 则存在漏洞。
☆ 在服务器端,只有在验证码检验通过后才进行用户名和密码的检验,否则存在 漏洞。
☆ 验证码是否为图片形式且在一张图片中,不为图片形式或不在一张图片中,说 明存在漏洞。
☆ 请求 10 次观察验证码是否随机生成,如果存在一定的规律(例如 5 次后出现 同一验证码)说明存在漏洞。
☆ 观察验证码图片中背景是否存在无规律的点或线条,如果背景为纯色(例如只 有白色)说明存在漏洞。
☆ 验证码在认证一次后是否立即失效。
☆ 服务器不能对认证错误提示准确的信息,如用户名错误、密码错误等。
☆ 提供合理的锁定策略。
☆ 预防认证被绕过,如 sql 注入。

2.4.3 会话管理测试

☆ 用户登录后,身份信息不再由客户端提交,而是以服务器端会话信息中保存的 身份信息为准。
☆ URL 中不能携带 Session ID 信息。
☆ 登录后的页面有明确的"退出"或"注销"按钮,注销时会话信息要清除。

2.4.4 权限管理测试

☆ 横向越权:攻击者尝试访问与他拥有相同权限的用户的资源。
☆ 纵向越权:一个低级别攻击者尝试访问高级别用户的资源。

2.4.5 文件和目录测试

☆ 不存在不需要对外开放的敏感接口或者接口进行了完善的权限控制;
☆ 禁止获取敏感的目录或文件信息;
☆ 所有对目录的访问均不能打印出文件列表;
☆ 禁止访问和下载文档的备份;
☆ 不能越权获取到不该获取的文件。
☆ 如 DirBuster 扫描。

2.5 数据库测试

☆ 数据库测试是为了发现错误和缺陷而运行数据库的过程。
☆ 数据库测试方法也分为白盒测试和黑盒测试。
☆ 数据库黑盒测试 (数据库表结构是否合理;数据结构(如数据类型、长度)是否正确定义,并且需要注意数据结构与 输入界面中数据的类型和长度是否一致,如果不一致,数据库则会报错;表与表之间的关系是否正确,主外键是否合理;索引的创建是否合理;存储过程功能是否完整,能否正确接受输入、输出正确结果;能否正确插入(增加)、更新、删除数据;数据库操作权限定义是否正确;能否正确处理并发操作;表级、列级完整性约束条件是否满足;数据库的处理能力、可靠性、可维护性、性能是否满足要求。)

web端通用测试点请移步


http://chatgpt.dhexx.cn/article/9uBVAQ7H.shtml

相关文章

Redis集群 关闭和重启

1、创建好的redis集群,一下是正常运行的3主3从服务器 2、正常关闭集群服务器 [rootca01 redis-cluster]# cat stopall.sh cd 7001 ./redis-cli -p 7001 shutdown cd .. cd 7002 ./redis-cli -p 7002 shutdown cd .. cd 7003 ./redis-cli -p 7003 shutdown cd .. c…

叫你别随便重启Redis!!!怎么样,数据全丢了吧~~~

目录 事情是这样的... Redis持久化数据的两种模式 一、RDB模式 二、AOF模式 三、RDB和AOF之间的关系 四、问题回顾分析 那么该如何开启AOF增量备份模式呢? 解决方法: 1、登录到redis 2、在线修改AOF开关 3、查看数据 事情是这样的... 今天,跑…

redis集群 服务器重启测试

redis集群 服务器重启测试 1、集群规划:2台服务器 每台服务器运行3个redis实例2、重启2台服务器后redis实例没有自动重启最后一对主从节点比较 重启实例后和之前的主从分配 3、再次重启2台服务器4、主从同步测试 1、集群规划:2台服务器 每台服务器运行3个…

启动redis

目录 could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接 解决办法 启动效果 今天下载了若依框架,本来想运行一下看看效果,结果出现下列问题 org.springframework.beans.factory.UnsatisfiedDependencyExcept…

Redis集群的关闭、启动、重启等相关指令

目录 关闭 启动 重启 (保留原有集群的)重启 (删除原有集群的)重启 集群相关指令 查看集群相关指令 查看集群状态信息 查看集群节点信息 关闭: 方式一:进入redis后,使用SHUTDOWN指令或SHUTDOWN SAVE指令或SHUTDOWN NOSAVE指令。 方式二(不…

docker-redis一直重启

现象 查看该容器的日志 docker logs f3be1896ecd8结论 当前mongo-redis/log下面没有redis.log 文件导致读取失败 解决方案 在mongo-redis/log目录下新建redis.log文件 遗留问题 测试发现在使用docker-compose up -d后会生成redis.log 删除当前redis.log,重启容…

Redis重启

1、启动redis 服务 redis-server所在目录 redis.conf文件路径 找到redis-cli所在目录,输入: ./redis-cli 查看服务是否启动成功 2、关闭redis 服务: ./redis-server shutdown

linux下重启redis的方法

导语: 已经将redis加入到etc下,此时服务器启动redis也启动,但是却连不上redis,所有有了以下的过程。 (学习视频分享:redis视频教程) 查看redis 状态:systemctl status redis ● redis.service - redis-…

前端H5面试题Js:JavaScript字符串的常用方法有哪些?

一、前言: 可将字符串常用的操作方法归纳为增、删、改、查,需要知道字符串的特点是一旦创建了,就不可变。 二、增 增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作,除了常用以及${}进行…

H5模拟面试题

HTML & HTML5 Position属性的值有哪些?怎样使用? absolute 生成绝对定位的元素,相对于static定位以外的第一个父元素进行定位。元素的位置通过”left”,”top”,”right”以及”bottom”属性进行规定。fixed 生成绝对定位的元素&…

前端H5面试题CSS:如何解决 margin“塌陷”?

一、外边距塌陷共有两种情况 ①第一种情况: 两个同级元素,垂直排列,上面的盒子给 margin-bottom 下面的盒子给 margin-top,那么他们两个的间距会重叠,以大的那个计算。 解决这种情况的方法为:两个外边距…

Java面试题十二:Java内存模型,h5移动端开发面试题

Java开发人员并不需要像C/C++开发人员,需要时刻注意内存的分配和释放,而是全权交给虚拟机(JVM)去管理,自然关于内存管理或是内存的模型、结构对Java开发来说就是一个“黑箱”。 两眼一抹黑似乎也不影响写Java的代码。但我也说过,了解一些内部的机制或者是自己认为不重要…

前端H5面试题(总结)

一、v-if 与 v-show的选择 1、v-if 和 v-show具有类似的功能,不过 v-if 才是真正的条件渲染,它会根据表达式是当地销毁或者重建元素及绑定的事件或子组件。 若表达式初始值为false,则一开始元素/组件并不会渲染,只有当条件第一次…

前端H5面试题(vue为主)

一.src和href的区别 &#xff1f; src表示引用资源&#xff0c;表示替换当前元素&#xff0c;用在img&#xff0c;script&#xff0c;iframe上&#xff0c;src是页面内容不可缺少的一部分。常用场景&#xff1a; <img src"img/girl.jpg"></img> <if…

h5面试题20道

本文转载自:http://www.cnblogs.com/HanJie0824/p/5841640.html 1.新的 HTML5 文档类型和字符集是&#xff1f; HTML5 文档类型很简单&#xff1a; <!doctype html> HTML5 使用 UTF-8 编码示例&#xff1a; <meta charset"UTF-8"> 2.HTML5 中如何嵌…

h5面试题总结

导航的解析流程 1.导航被触发。 2.在失活的组件里调用beforeRouteLeave守卫 3.调用全局的 beforeEach 守卫 4.在重用的组件里调用 beforeRouteUpdate 守卫 (2.2) 5.在路由配置里调用 beforeEnter 6.解析异步路由组件 7.在被激活的组件里调用 beforeRouteEnter 8.调用全…

H5前端面试题汇总

1.关于利用数组去重的方法,除了用最简单的set去重以外, 还有reduce,先来看一下reduce的基本使用吧 那么问题来了, 如何用reduce来给类数组对象去重呢? 2.promise是用来做什么的? promise是用来解决异步编程问题(简单说是就是解决回调地狱的), promise有三种状态: paddin…

C语言中关于fscanf()方法与fgets()方法的简单知识点总结

fscanf() int fscanf(FILE* stream, const char* format, [argument...]);fscanf()方法与scanf()方法类似。不同的是多了第一个参数&#xff0c;文件指针参数&#xff0c;后两个参数用法类似。其中要注意的是第三个参数处填写变量时&#xff0c;不要遗漏取地址符&。 要点…

C语言快速进阶C++(基本篇+STL篇)

目录 前言 用C做题的好处 using namespace std cin&#xff0c;cout头文件 变量声明 bool变量 const定义常量 string类 结构体 引用& vector set map(键值对) stack(栈) queue(队列) unordered_map和unordered_set(无序键值对和无序集合) 此思维导图来源于…

C语言fgets()函数的用法总结

从c11之后取消了gets()函数&#xff0c;用fgets()代替&#xff0c;用法有所不同&#xff0c;这里详细介绍下fgets()该如何使用。 char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 第一个参数为数据存放的数组&#xff0c;第二个参数为最大长度&#x…