对于一个即将上线的网站,如何测试

news2024/10/6 12:20:12

web应用:也叫做网站,相对于客户端应用来说,web应用无需单独安装,在浏览器上即可使用其功能。

web应用的主要开发流程如下:

在网站开发的整个流程中,测试验收是上线发布前的最后一个环节,测试是否到位、功能验收是否完整,直接影响到整个网站的质量,因此,测试验收是网站开发中非常重要的一环。

回到主题:如何做一个完整的测试?

要做到完整的测试,就要按照统一的测试流程进行,这样可以很大程度避免遗漏。

对于一个web项目的测试,一般的测试流程是:功能测试→兼容性测试→性能测试→服务器压力测试

下面我们将按照这个顺序来展开,测试方法和工具也包含在其中。


一、功能测试

1、冒烟测试

为了避免人力的浪费,在正式进入测试前要先做冒烟测试。

冒烟测试是选择若干功能或主要流程,通过简单的测试,来验证应用的可用性。

举个栗子:

某个网站,冒烟测试中发现登录登不上,后续的流程被阻塞,这样的情况就是冒烟测试不通过,需要打回重新提测。

在冒烟测试阶段,一般来说无需关注逻辑和数据的正确性,只要应用能够正常点击和跳转,在可用性没有问题后,就可以进入功能测试了。

功能测试是web应用测试的重要环节,可以分为前端和后端。

2、前端测试

在前端测试中,主要关注以下几个方面:

1、ui:验证页面的颜色、字号、文案等是否与预期一致

2、链接:测试链接的有效性和跳转的正确性

3、表单:测试用户的注册、编辑提交等是否正常

4、流程:模拟用户使用场景进行测试,测试用户可能进行的所有操作,比如新增、修改、删除、查询等

注:因为是新项目,功能还未定型,所以还用不到前端自动化测试,手动测试是相对来说投入产出比最好的测试方法。

3、后端测试

后端测试主要关注:

  1. 针对接口文档规范展开测试,包含必填、枚举值校验、临界值校验、长度校验、以及容错校验
  2. 业务逻辑测试:接口中各个参数之间的关系,比如:数学关系:依赖关系、常识
  3. 异常流测试,包括重复申请、是否有密等逻辑。
  4. 数据存储,接口请求后,检查存储接口数据的各个表数据是否与预期一致。

工具使用:常用的接口测试工具推荐postman,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果(文末有学习视频)


▐ 二、兼容性测试

在功能测试完成后,就可以进入兼容性测试了。

由于web应用是在浏览器上使用,所以浏览器的种类、版本及设备的分辨率可能会影响到应用的正常显示和交互体验

现实中,用户使用的设备、浏览器类型、系统版本等实在太多,要把所有可能的组合都测试一遍兼容性基本是不可能的。

通常,在兼容性测试的时候,只需覆盖主流的设备及浏览器类型即可。

工具使用:

由于浏览器种类、版本较多,安装卸载会耗费较多时间,因此推荐使用云测平台,可以选择不同类型和版本的浏览器进行测试。

商业化的云测平台有很多,一般由公司统一采购,可以根据实际需要选择。


▐ 三、性能测试

这里说的性能是指web(前端)的性能。

web 的性能一定程度上影响了用户留存率,Google DoubleClick 研究表明:如果一个移动端页面加载时长超过 3 秒,用户就会放弃而离开。BBC 发现网页加载时长每增加 1 秒,用户就会流失 10%。

如果网站打开很慢,点击一个链接好几分钟才会响应,这样的使用体验必然会劝退用户。因此对于前端的性能测试是不可或缺的。

google 开发者提出了一种 RAIL 模型来衡量应用性能,即 response(响应)、animation(动画)、idle(空闲)与load(加载)。

RAIL 模型的广泛使用关键指标如下:

工具使用:PageSpeed

PageSpeed 是 google 一个开源的自动化工具,安装 PageSpeed 扩展程序运行即可

报告结果如图:

该工具功能丰富,报告也非常详细,并给出了优化建议,根据测试报告做对应的优化即可。


▐ 四、压力测试

这里说的压力测试是指服务器压力测试。

为什么要做压力测试?

举几个栗子:

某微博热搜因为太火爆而造成服务器瘫痪

双11某电商平台因订单量太大而奔溃

春运购票第一天某购票平台宕机

这些都是因为短时间内大量用户访问,对服务器的压力太大导致服务奔溃。

因此,对于一个新的网站,我们有必要通过压力测试来评估是否能够承载预期的访问压力。

在压测过程中,一般关注下面几个指标:qps(处理的请求量)、rt(响应时间)、error(报错率)、cup(cpu使用率)、mem(内存占用情况)、load(负载)、traffic(网络速率)。

通过观察qps、rt、error等关键指标,找到服务器的性能瓶颈,如果低于预期,则需要调优。

通过压力测试,提前发现服务器瓶颈,及时优化,避免网站一上线就奔溃。

工具:压测常用的工具有loadrunner和jmeter

Jmeter 是一款使用Java开发的,开源免费的测试工具, 主要用来做性能测试,JMeter 可以用于对服务器、网络或对象模拟巨大的负载,有丰富的图形界面+脚本配置,方便易用。

LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。

最后总结一下,对于即将上线的web应用,完整的测试环节包含:功能测试、兼容性测试、性能测试、压力测试。做完这些环节的测试,就可以放心上线了。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux环境下安装Jenkins

首先安装Jenkins之前,linux中必须安装好了JDK和Maven,如果还没有安装过,下面准备好安装教程 Linux环境安装JDK: https://www.cnblogs.com/xuliangxing/p/7066913.html Linux环境安装Maven: https://blog.csdn.net/qq_35868412/article/detail…

【数据库04】中级开发需要掌握哪些SQL进阶玩法

前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:相当硬核,黑皮书《数据库系统概念》读书笔记,讲解: 1.数据库系统的基本概念(数据…

Unicode云对象对接代码Demo

实现点击按钮,获取云对象返回内容,例下图 新建云对象-co1 index.obj.js代码 // 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj // jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129 mo…

深入理解计算机系统:内存越界引用和缓冲区溢出

注:最后有面试挑战,看看自己掌握了吗 文章目录原因造成后果缓冲区溢出执行攻击代码exploit code蠕虫和病毒的区别原因 C对数组引用不进行任何边界检查,而且局部变量和状态信息(寄存器值,返回地址)都放在栈…

2.1 Python 解释器

1. 什么是 Python 解释器 Python 解释器是解释 Python 脚本执行的程序. 开发者在编写 Python 代码保存后, 就会得到一个以.py为扩展名的文本文件, 若要运行此文件, 就需要Python解释器去执行.2. Python 解释器的种类 Python 有好几种版本的解释器:CPython: 官方版本的解释器,…

猿创征文|技术成长之各进制之间的转换

目录 一.非十进制转十进制 方法: 示例 解释 二进制转十进制 八进制转十进制 十六进制转十进制 二.十进制转非十进制 整数部分 方法 示例 十进制整数转二进制 十进制整数转八进制 十进制整数转十六进制 小数部分 方法 十进制小数转二进制 十进制小数转…

反应性叠氮化物N3-PEG-NH2,Azide-PEG-Amine,叠氮-聚二乙醇-胺

一:产品描述 1、名称 英文:N3-PEG-NH2,Azide-PEG-Amine 中文:叠氮-聚二乙醇-胺 2、CAS编号:N/A 3、所属分类:Amine PEG Azide PEG 4、分子量:可定制,叠氮-聚二乙醇-胺10k、叠氮…

Allegro DFM Ravel Rule检查工具介绍

Allegro DFM Ravel Rule检查工具介绍 Allegro任何一个版本都支持DFM Ravel Rule检查,即便是166的版本 打开后的界面如下所示 可以检查项目 测试点,阻焊,走线,丝印,过孔,milling,装配,outline相关的DFM检查 可以让违反规则的设计处以DRC的形式报出来 避免加工问题 首…

Spring+SpringMVC+Mybatis SSM框架详解

一、JDBC编程 1、JDBC 简介 JDBC其实就是 Java 官方提供的一套规范(接口),用于帮助开发人员快速实现不同关系型数据库的连接。 程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上…

VScode 官网下载太慢解决方法

用惯了HBuilder 和 WebStorm,发现身边很多人也在用 VSCode,就像尝试下。 但是,官网下载太慢了。https://code.visualstudio.com/ 我可是 500M 的宽带啊~!!! 有小道消息说,VSCode 对中国大陆用…

【Linux】软件包管理器 --- yum

目录🌈前言Linux 软件包管理器 yum🚁1、什么是软件包🚂2、yum指令🚃3、关于 rzsz🌈前言 本篇文章进行开发工具的学习!!! Linux 软件包管理器 yum 🚁1、什么是软件包 源…

heapdump 攻击面利用

点击上方蓝字关注我们 一、heapdump案例 1.1 项目中的分析 这个是项目中遇到的一个例子,发现了heapdump泄露,但没有找到可用session,当时就想着内存中应该是有账号密码的,于是就开始找了起来。 用OQL进行搜索,先找…

异地远程群晖NAS教程【cpolar内网穿透】

公网/外网访问群晖NAS,虽然品牌NAS都会有自带DDNS服务,但是公网IPV4很难申请,所以很多用户都会转战内网穿透。网上也有很多教程,比如frp…,但是需要有公网服务器支持来进行搭建,有一定的要求。 cpolar内网穿…

Graphviz安装教程

Graphviz安装教程 官网下载graphviz的安装包 ,网址: https://graphviz.org/download/ 进入下面页面。此处我选择这个版本进行下载, 后面就是安装和配置环境变量问题 安装的时候记住安装路径(最好放到anaconda文件夹下,即**\An…

通讯录的实现(静态版本和动态版本和文件版本)

为什们要实现通讯录? 主要是为了让我们将结构体的知识,了解的更加深刻,将结构体应用一下,我们先将静态的通讯录实现,在进行改良,用动态内存的知识再将通讯录改造一边,将动态内容的知识也运用一…

C++ Reference: Standard C++ Library reference: C Library: cstring: strncat

C官网参考链接&#xff1a;https://cplusplus.com/reference/cstring/strncat/ 函数 <cstring> strncat char * strncat ( char * destination, const char * source, size_t num ); 从字符串中追加字符 将source的第一个num个字符追加到destination&#xff0c;并追加…

重型机床热误差补偿温度敏感测点的识别与优化选择

重型机床热误差补偿温度敏感测点的识别与优化选择 动机与主要贡献 ● 热误差预测的性能主要取决于预测模型的准确性和鲁棒性以及输入的温度变量 ● 在大型数控机床热误差补偿方案中&#xff0c;由于温度敏感点的结构和发热机理复杂&#xff0c;目前仍缺乏有效的温度敏感点识别…

java---贪心---区间分组(每日一道算法2022.10.28)

题目&#xff1a; 给定 N 个闭区间 [ai,bi]&#xff0c;请你将这些区间分成若干组&#xff0c;使得每组内部的区间两两之间&#xff08;包括端点&#xff09;没有交集&#xff0c;并使得组数尽可能小 输出最小组数 第一行包含整数 N&#xff0c;表示区间数 接下来 N 行&#x…

Redis篇(2)——main函数

众所周知&#xff0c;redis是C语言写的。那么main函数来一波 int main(int argc, char **argv) {struct timeval tv;int j;//运行测试方法 #ifdef REDIS_TESTif (argc 3 && !strcasecmp(argv[1], "test")) {if (!strcasecmp(argv[2], "ziplist")…

SpringBoot

SpringBoot项目搭建方式1项目搭建方式2SpringBoot文件配置application.propertiesapplication.ymlSpringBoot整合MybatisSpringBoot整合logbackSpringBoot整合pageHelperSpringBoot整合DruidSpringBoot整合FreeMarkerFreeMarker常用指令(遍历List集合)FreeMarker遍历Map集合Spr…