新手小白看过来,带你全面讲解Web性能测试知识点
Posted 睿峰News
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手小白看过来,带你全面讲解Web性能测试知识点相关的知识,希望对你有一定的参考价值。
什么是性能测试?web性能应该注意些什么?
性能测试,简而言之就是模仿用户对一个系统进行大批量的操作,得出系统各项性能指标和性能瓶颈,并从中发现存在的问题,通过多方协助调优的过程。而web端的性能测试应该注意的指标有:用户操作的响应时间、系统的吞吐量(TPS)、系统的硬件资源情况(CPU、硬盘、磁盘)、网络资源占用情况等。
今天,我们主要为测试新手们提供一些Web性能测试的内容,希望通过回顾知识点+经验总结的方式,能让大家在做Web系统测试时上手更快。
那么,针对不同业务、不同的板块,我们应该做哪些方面的测试呢?
单业务,通常指Web系统的核心业务和用户使用频繁的业务。这是Web系统性能测试的重点,针对单业务需要进行:
并发测试:常规情况下,不同并发用户数的平均响应时间,检查程序或数据库的连接及交互是否存在问题。
压力测试:用来获取最大并发数,找系统中的性能瓶颈在哪里。
负载测试:用来获取TPS指标,检查服务器的处理能力。
在页面系统中,组合业务更符合用户的实际使用情况,也是我们重点需要维护的地方。因此,我们将它作为性能测试的核心。针对组合业务,我们需要做:
并发测试:主要用来检查程序对多业务交互时,可能产生的性能问题,和数据库锁的处理方式。
负载测试:用来获取最佳负载数,检查系统在不同负载情况下的处理能力及其资源利用率情况。
压力测试:用来获取服务器的最大负载数,检查服务器的稳定性。
大数据量型,主要是针对一些数据储存、传输、统计、查询等业务,可能存在运行时引入的大数据量,或历史数据引起的大数据量(比如,大数据量的查询测试,需要在数据库表中存有上百万甚至上千万的数据等)等问题,所进行的性能测试。
在这种情况下,我们主要通过获取查询的响应时间,数据表结构的设计,表间的关联,索引等的设置是否合理。
这里主要说一下,关于Web端中第三方接口的性能测试。常见的第三方接口,比如,登录时无须注册,可以通过QQ、微信、微博等账号直接登录;还有就是,在Web系统中,还可能涉及到支付和实名认证等问题。针对这些因素的存在,因此,在做测试时,我们主要需进行:
接口并发测试:主要检测第三方接口支持的在不同并发用户数下的响应情况。
接口负载测试:主要检测第三方接口支持的最大负载数。
Web前端更多地指客户端浏览器,这里以用户访问某网站为例,简单分析一下浏览器都做了哪些事情:
用户输入网址 –> 浏览器解析域名 -> 客户端(向服务端)请求页面 -> 解析页面并发送页面中的资源请求 -> 渲染资源 -> 输出页面 -> 监听用户操作 -> 重新渲染。
我们可以通过合理设置浏览器缓存机制,从而对传输资源进行压缩,以便节省网络带宽资源;同时,尽量减少Cookies的传输。
这是由于HTTP协议是无状态的应用层协议,减少请求的数目可以有效提高访问性能。因为每次请求,都需要建立通信进行数据传输,并且每次都需要进行DNS解析。
而减少HTTP请求的手段,主要就是在一次访问请求中,打包合并需要访问的内容即可。另外,合理的设置浏览器缓存,也可以减少HTTP请求。当然,如果传输过程中资源文件太多,最好采取压缩的方式传递数据。
通常情况下,Cookie可以用来判断用户是否访问过网站,是否为合法用户,以及记录用户访问过的一些数据信息,以便在下一次访问时直接获取等。对于浏览器中的Cookie来说,一般一个浏览器最多可存300个Cookie,且每个不能超过4KB,每个Web站点能设置的Cookie总数不能超过20个。
Session可以理解为会话。当用户访问Web系统时,服务器将在服务端为该用户生成一个Session,并将相关数据记录在内存中;同时服务端生成一个Session ID,并通过响应发送到浏览器,浏览器将Session保存到Cookie中。
Cookie与Session的区别
安全性:Session比Cookie安全,Session是存储在服务器端的,Cookie是存储在客户端的。
存取值的类型不同:Cookie只支持存字符串数据,想要设置其他类型的数据,需要将其转换成字符串,Session可以存任意数据类型。
有效期不同:Cookie可设置为长时间保持,比如我们经常使用的默认登录功能,Session一般失效时间较短,客户端关闭(默认情况下)或者Session超时都会失效。
存储大小不同:单个Cookie保存的数据不能超过4K,Session可存储数据远高于Cookie,但是当访问量过多,会占用过多的服务器资源。
所以在测试Web前端时,需要关注Session和Cookie的使用。特别在优化Web前端性能测试时,需要关注Session和Cookie对性能的影响。
1.因为存储在客户端,容易被客户端篡改,使用前需要验证合法性。
2.不要存储敏感数据,比如用户密码,账户余额。
3.使用httpOnly在一定程度上提高安全性。
4.尽量减少cookie的体积,能存储的数据量不能超过4kb。
5.设置正确的domain和path,减少数据传输。
6.「cookie无法跨域」。
7.一个浏览器针对一个网站最多存20个Cookie,浏览器一般只允许存放300个Cookie。
8.「移动端对cookie的支持不是很好,而session需要基于cookie实现,所以移动端常用的是token」。
1.将session存储在服务器里面,当用户同时在线量比较多时,这些session会占据较多的内存,需要在服务端定期的去清理过期的session
2.当网站采用「集群部署」的时候,会遇到多台web服务器之间如何做session共享的问题。因为session是由单个服务器创建的,但是处理用户请求的服务器不一定是那个创建session的服务器,那么该服务器就无法拿到之前已经放入到session中的登录凭证之类的信息了。
3.当多个应用要共享session时,除了以上问题,还会遇到跨域问题,因为不同的应用可能部署的主机不一样,需要在各个应用做好cookie跨域的处理。
4.「sessionId是存储在cookie中的,假如浏览器禁止cookie或不支持cookie怎么办?」 一般会把sessionId跟在url参数后面即重写url,所以session不一定非得需要靠cookie实现
5.「移动端对cookie的支持不是很好,而session需要基于cookie实现,所以移动端常用的是token」
旨在分享,部分图文来自网络,如有侵权请联系我们删除事宜。
现睿峰科技教育推出所有课程7天免费试听的活动,感兴趣的小伙伴不妨来了解一下,扫描下方二维码,即可免费参加。不要犹豫,万一很对你的胃口呢!
免费领取
睿峰课程试听申请表
以上是关于新手小白看过来,带你全面讲解Web性能测试知识点的主要内容,如果未能解决你的问题,请参考以下文章
资深大牛带你了解源码!来看看移动端小程序技术的前世今生!小白也能看明白
web前端技术讲解之call和apply的使用(很适合新手小白学习)