性能测试的核心原理

  性能测试的核心原理

  1 基于协议,前后端交互机制,性能核心。基于界面决定和前端用户交互,基于代码决定了后端。

  1 网络分布式架构。

  2 单机应用,比如安安兔,鲁大师。主要判断io读写,以及对资源的消耗。

  2 多线程,模拟多个虚拟用户量同时访问系统。

  3 模拟真实的场景。场景的设计合理直接决定了你得出的性能数据,从而影响你对系统的性能判断。

  核心指标:

  1 响应时间:

  前端发送请求,到后端返回的时间,从测试角度看,不包含前端对响应的渲染时间。

  响应时间=发送网络延时+应用程序处理的时间(包含应用程序和数据库处理时间)

  一般遵循3,5,8原则。取决于用户带宽,服务器带宽,服务器处理时间。

  2 事务处理能力(TPS):

  TPS标识单位时间内能够完成事务数量,也成为每秒事务数TPS。每个系统的TPS都有上限,并不随着用户的增加而增加。

  泛指的概念:比如打开一个页面-----登录----挑选商品-----网购支付,这每一个步骤都是可以理解成一个事务,甚至整个流程都可以理解成一个事务。每一个事务都有开始和结束,比如lr中要用lr_start_transaction("start_xiaohua")标识事务开始,lr_end_transaction("start_xiaohua", LR_AUTO)标识事务结束,所以TPS是软件测试结果的测量单位

  对于已经上线的系统,可以选取高峰时刻,在5分钟内,获取系统每笔交易的业务量和总业务量推算出TPS。

  TPS=请求数/时间

  3 每秒查询率(QPS):

  QPS标识一个特定的查询服务器在规定时间内处理流量多少。QPS类似于TPS。假如一个TPS中只有一个接口且接口内部没有向服务器再请求资源,那么此时TPS=QPS,否则不等。比如打开一个页面,就可以认为是一个TPS,但是一个页面的请求可能回像服务端再次请求多次请求,服务器对着这些请求,就可以计算计入QPS。例 每秒能进行N个事务的请求,假设一个TPS内包含4个QPS,那么就是N*4,通常QPS用来衡量单接口,TPS用来衡量多接口的混合场景,当然你把单个接口当做一个事务也可以。

  一个系统的吞吐量通常有QPS(TPS)并发数来决定,这两个值都有一个相对的极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去,如果压力持续增大,系统的吞吐量反而回下降,因为系统超负荷工作,频繁的上下文借还,内存等其他小号导致性能下降。

  原理:每天80%的访问集中在20%时间内,即根据二八原则,这20%时间叫做峰值时间

  

  4 思考时间:

  用户打开一个页面之后,回浏览该页面,此时并不向服务器发送请求,以8秒为基数,进行50%---200%的随机取值。以便更好的模拟用户请求的时间。

  5 每秒点击数(HPS):

  html中的一个img src就可以理解成一个HPS,,应该尽量较少HTTP请求,这取决于用户的数量。常见问题图片过大,连接数过多,该压缩的压缩,该合并的合并。

  和tps qps的区别,个人认为 tps>qps>hps

  6 最大连接数;

  系统的最大连接数通常受制于容器例如tomcat,apache等以及数据库的最大连接数。当tps出现瓶颈的时候,但是资源没有到达瓶颈,那么很大可能就是此类的性能问题。

  7 系统资源:

  1 cpu:

  1 %Processor Time cpu使用率。70%--80%一般视为最大值,当然cpu使用率达到100%也不代表系统会崩溃,加入cpu等待队列不超过4的化。

  2 %Processor Queue Length cpu等待队列长度。一般控制在2*内核数

  2 内存:

  1 总体可用数

  2 虚拟内存交换率 page/sec。

  虚拟内存,通常内存会将一部分数据放入到硬盘缓存中去,使用的时候再读回来,这种来回的数据交换就叫做内存的交换律,交换的单位是页page,所以也叫做内存的也交换率。

  3 缓存:

  分配给一个应用程序使用的内存。

  进行系统级优化的时候,重点利用好缓存机制。代码层面算法 sql语句等,减少内存,减少运算次数,预算次数决定cpu消耗,内存决定了资源占用。

  3 磁盘io

  应用程序存在硬盘谁给你,但是使用的时候,需要加载在内存上。

  1 硬盘使用率 %diskTime

  2 硬盘使用队列长度

  4 网络带宽(Bytes Total/sec):

  上相和下行相对而言

  1 每秒接受的数据量,低于下行带宽/8

  2 每秒发送的数据量,低于上行带宽/8

  Bytes Total/sec 用来描述发送和接受字节的速度,一次来判断网络带宽是否存在性能瓶颈。

  5 线程:

  进程是资源单位,线程是执行单位,在cpu三状态轮换图中,实际执行的是线程。

  如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

搭建本地仓库源

一、如何搭建仓库源 之前讲了定制ISO的方法:使用chroot定制系统,但有时候我们想自定义的安装包不在上游的仓库源中,在我们本地应该怎么办呢?如果我们将deb包拷贝到iso目录再安装有点过于麻烦了,而且还可能需要手动处理…

GPT-4的免费使用方法分享

目录 方法1:使用Ora.sh的LLM应用 方法2:使用https://steamship.com 方法3:使用https://nat.dev 方法4:http://tdchat.vip 方法5:使用Poe网站或App 方法6:使用 Opencat App 方法7:使用https://Huggin…

基于git的开发规范总结

文章目录 各分支命名规范gitee基本开发流程及定义gitflow工作流gitflow工作流常用分支主要工作流程命名规则gitflow工作流程图 Git分支开发管理策略主分支Master开发分支DevelopGit创建Develop分支的命令:将Develop分支发布到Master分支的命令: 临时性分…

潍坊这一城市商业综合体有奖征名

云创金谷项目商业购物中心名称及IP形象征集开始啦!!你有什么好想法?快来参与吧!! 云创金谷,是奎文区重点打造的城市更新代表力作,位于文化路以东、新华路以西,北宫街以北、卧龙东街以…

前端开发代码规范工具

规范化是前端工程化的一个重要部分。现在,有许多工具能够辅助我们实行代码的规范化,比如你一定知道的 ESLint 和 Prettier。 今天,来聊聊这些工具的工作原理和基本使用,了解它们是如何发挥作用的,以及如何更好地利用这些工具去规…

Nginx介绍

文章目录 Nginx介绍与apahche区别联系反向代理负载均衡动静分离 Docker安装nginx拉取镜像配置nginx测试nginxNginx配置详解 Nginx介绍 Nginx (“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上Nginx的并…

Linux权限划分的原则

考察的不仅是一个具体的指令,还考察对技术层面的认知。 如果对 Linux 权限有较深的认知和理解,那么完全可以通过查资料去完成具体指令的执行。更重要的是,认知清晰的程序员可以把 Linux 权限管理的知识迁移到其他的系统设计中。 权限抽象 一…

LeetCode之回溯算法

文章目录 思想&框架1.组合/子集和排列问题2.组合应用问题 组合/子集问题1. lc77 组合2. lc216 组合总和III3. lc39 组合总和4. lc40 组合总和II5. lc78 子集6. lc90 子集II 排列1. 全排列I2. 全排列II 组合问题的应用1.lc17 电话号码的字母组合2.lc131 分割回文串3. lc19 复…

《编程思维与实践》1070.复数幂

《编程思维与实践》1070.复数幂 题目 思路 思路比较简单,就是细节比较繁琐: ( a b i ) ( c d i ) ( a c − b d ) ( a d b c ) i (abi)(cdi)(ac-bd)(adbc)i (abi)(cdi)(ac−bd)(adbc)i , 利用该公式分实部和虚部进行计算结果即可. 由于涉及加减和正负号,所以在大整数结构…

致力于中小企业JavaEE企业级快速开发平台、后台框架平台

一、开源项目简介 J2eeFAST 是一个 Java EE 企业级快速开发平台, 致力于打造中小企业最好用的开源免费的后台框架平台 。系统基于(Spring Boot、Spring MVC、Apache Shiro、MyBatis-Plus、Freemarker、Bootstrap、AdminLTE)经典技术开发&…

亲测好用|甲方、专家和领导,用三维模型汇报方案如何投其所好?

身为设计方的你,有没有这样的经历: ➤ 一个非常优秀的方案未能被甲方采纳,反而甲方选择了一个不如自己的方案,造成了很大的遗憾; ➤ 在讲述自己的设计方案的时候,经常越说越散,甚至到了最后自…

应用在虚机和容器场景下如何优雅上下线

在生产场景中部署的服务提供者常因业务升级或其他场景需要下线和上线的部署操作,本文总结了应用在上下线过程中会遇到的典型问题,并思考在虚机和容器场景该如何处理这些问题,规避该过程中可能出现的服务消费者的请求失败,实现应用…

springboot文件上传

1.新建文件上传页面 在static目录中新建upload-test.html&#xff0c;上传页面代码如下所示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>springboot文件上传测试</title> <…

mysql数据库的库操作 --2

目录 库操作 2.1&#xff1a;数据库的查看与创建与使用 2.2&#xff1a;字符集和效验规则 2.3&#xff1a;修改和删除数据库 2.4&#xff1a;数据库的备份和恢复 2.5&#xff1a;查看连接情况 库操作 2.1&#xff1a;数据库的查看与创建与使用 2.1.1&#xff1a;数据库…

Redis 持久化

文章目录 1. Redis 持久化2. RDB2.1 自动触发2.2 手动触发2.3 RDB 优点2.4 RDB 缺点2.5 RDB 文件修复2.6 总结 3. AOF3.1 AOF持久化工作流程3.2 AOF 缓冲区三种写回策略3.3 AOF 优点3.4 AOF 缺点3.5 AOF 重写机制3.6 AOF 重写原理3.7 总结 4. 混合持久化5. 纯缓存模式 1. Redis…

系统移植——linux内核移植——分析内核编译过程

uImage镜像文件 1.进入linux内核源码目录 ubuntuubuntu:~$ cd FSMP1A/linux-stm32mp-5.10.61-stm32mp-r2-r0/linux-5.10.61/ 打开Makefile文件 vi Makefile 搜索include 因为 $(SRCARCH)->arm 所以上述指令为 arch/arm/Makefile 2.进入linux内核源码目录下,arch/arm目录下…

计网笔记 数据链路层 (1-2) 封装成帧、差错控制、流量控制与可靠传输、停止等待协议、后退N帧协议(GBN)、选择重传协议(SR)

文章目录 前言在这里插入图片描述 零、数据链路层基本概念一、功能0、数据链路层功能概述1、封装成帧和透明传输1.1封装成帧1.2 透明传输1.3组帧方法 2、数据链路层的差错控制2.0差错从何而来2.1位错&#xff08;比特错&#xff0c;1变成0&#xff0c;0变成1&#xff09;2.2帧错…

复习一周,面了京东和百度,不小心都拿了Offer...

我个人情况是5年软件测试经验&#xff0c;在家复习了一周&#xff0c;面了京东和百度&#xff0c;都顺利拿下offer&#xff0c;下面是我的面试经历分享&#xff0c;希望能带来一些不一样的启发和帮助。 两家公司最常问的就是下面这些问题&#xff1a; 请介绍一下你之前做过哪些…

String类

目录 一.认识 String 类 二.常用方法 1.字符串构造&#xff08;定义&#xff09; 2.字符串指为空和null 3.String对象的比较 &#xff08;1&#xff09;equals和的区别 &#xff08;2&#xff09;compareTo比较 4.字符串查找 5.字符串转化 &#xff08;1&#xff09;…

前几天面了个32岁的测试员,年薪50w问题基本都能回答上,应该刷了不少八股文···

互联网行业竞争是一年比一年严峻&#xff0c;作为测试工程师的我们唯有不停地学习&#xff0c;不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水&#xff0c;进入心仪的企业&#xff08;阿里、字节、美团、腾讯等大厂.....&#xff09; 所以&#xff0c;大家就迎来了…