性能测试思维和功能测试思维完全不一样。
功能测试/自动化测试需要确定Bug
怎么确定是Bug?
一个用户
对产品进行使用,能否正常性能测试:1+1不等于2
模拟多个人同时操作产品,关注点不再是功能是否正常
如果单人操作没有问题,多人操作出现异常,是出现了性能瓶颈而不是功能问题
1个人循环做10次,不是性能测试
10个人同时做一件事,是性能测试
事务、物品的某些特性的评价值
通过工具,找出
或获得
系统在不同工况下的性能指标值
隐藏的前提:功能测试已经通过,才做性能测试
性能测试,得到的都是性能指标值,不是功能的bug数量
前端性能测试,影响因素非常多,而且不通用,所以测试工具很多,没有统一标准
谷歌开发的一个免费的网页分析工具,在地址栏中输入被分析的网站 url 地址,点击分析,
PageSpeed Insights
Lighthouse 是谷歌开源的一款 Web 前端性能测试工具,用于改进网络应用的质量,适用于网页版和移动端。能生成一个包括页面性能、PWA(Progressive Web apps,渐进式 Web 应用)、可访问性(无障碍)、最佳实践、SEO 的报告清单提供参考,看看可以采取哪些措施来改进您的应用。
npm install -g lighthouse
SiteSpeed 是一款开源的,可以用于监控和检查网站性能的工具。可以通过 docker 镜像或 npm 方式来使用。这个工具,并不是单一的,而是一组工具集合,可以根据自己需要,选择适合自己的工具。
Speedcurve 是一个前端性能综合监控网站,可以在网站输入被测网站的 url 地址,进行测试
webpagetest和上面的 speedcurve 相似,也是在一个网站中,输入被测试的网站 ip 地址,就可以对被测网站页面进行分析。但是,这个网站在国内,被友好的和谐了,会出现无法正常进行测试的情况。
有不同协议的http协议族
协议:提供者和使用者之间的一个数据约束
通过工具、找出或者验证,系统在不同工况下的性能指标
性能测试,不能靠手工
常用的工具:
在完全没有性能指标可以做参考时,通过性能测试得到性能指标值
在接口升级之后,对接口再次进行性能测试,对比基准测试结果
逐步增加:逐步增加同时请求的数量,来观察系统能承受的最大负载区间
在逐步增加后 会得到一个拐点
的区间
问:一个系统完全没有做过性能测试,如何找出最大并发用户数
答:进行负载测试,逐步增加并发数
在一定并发用户数请求下,持续运行一段时间,看系统服务及各资源利用情况,是否存在稳定性问题
当服务器出现不稳定情况宕机,我们就要进行压力测试了
在给定一定的业务压力下,持续运行一段时间,查看系统是否稳定
关键词:是否稳定
,一定业务压力
在一定的软、硬件条件下,在数据库不同数量级数据量的情况时,对系统中读/写比进行测试,从而获得不同数据量级下的性能指标值。
问:为什么数据库要有这样一个数据量的数据准备?
答:数据库在10w、100w数据时,索引会对性能造成非常大的影响。百万级数据库,如果有索引,而且生效,sql的时间毫秒到秒之间,但是没有索引,或者索引无效,需要在几秒以上
性能测试环境的数据量要与生产一致。一定要注意数据脱敏/
性能测试,有前提,并不是什么时候,什么接口都可以做性能测试。
狭义:同一时间多个人做同一件事情
广义:同一时间多个人发起请求,事情可能不一样
现在的性能测试都是广义并发
客户机向服务器发送请求,然后服务器做出反应的过程
jmeter中有两种事务