首页 > 其他分享 >性能测试的一些入门概念

性能测试的一些入门概念

时间:2022-10-30 15:35:35浏览次数:46  
标签:协程 入门 性能 用户 线程 测试 请求

功能测试、自动化测试,性能测试 区别

  • 功能测试 在于找bug 预期结果与实际结果进行比较
  • 自动化测试 模拟一个用户的操作来发现问题
  • 性能测试 不是模拟1个人,**模拟多个人同时**,关注点在于 多个人操作时 响应时间,接口服务器性能测试中,一定是多个人同时操作,才是性能测试

性能的概念

  • Q: 100个人同时登录接口进行登录,性能中的avgRT应该在多少,是可以被接受的?
  • A:可接受的范围 为1.5s 1.5 APDEX 用户满意度指数

Apdex全称是Application Performance Index,是由Apdex联盟开发的用于评估应用性能的工业标准。Apdex标准从用户的角度出发,将对应用响应时间的表现,转为用户对于应用性能的可量化范围为0-1的满意度评价。

事务

  • 指的是 一个请求行为,并不一定只有一个接口,所以,一个事务可能是多个接口 。是从发起,到网络传输,收到响应的过程

jmeter:默认情况下,1个接口请求一次,认为一个1个事务Transation。jmeter 也可以通过务控制器,挂载多个接口请求,合并成为1个事务

性能测试

 指: 通过工具,模拟多用户发起请求,获取**性能指标值*

用工具来模拟多个人的方式很多种 主要包含 进程 和线程

  • + 线程:   使用进程的资源,来进行测试。jmeter、lr
  • + 进程: 资源拥有者,资源消耗会比较大。LR
  • + 进程+ 线程: ngrinder
  • + 协程: python+locust

协程不是系统级线程,很多时候协程被称为“轻量级线程”、“微线程”、“纤程(fiber)”等。简单来说可以认为协程是线程里不同的函数,这些函数之间可以相互快速切换协程和用户态线程非常接近,用户态线程之间的切换不需要陷入内核,但部分操作系统中用户态线程的切换需要内核态线程的辅助,协程是编程语言(或者 lib)提供的特性(协程之间的切换方式与过程可以由编程人员确定),是用户态操作。协程适用于 IO 密集型的任务。常见提供原生协程支持的语言有:c++20、golang、python 等,其他语言以库的形式提供协程功能,比如 C++20 之前腾讯的 fiber 和 libco 等等

性能指标

  • 平均响应时间 avgRT  90%
  • TPS: 服务器每秒处理的事务数
  • 吞吐量:在一次性能测试过程中网络上传输的数据流量的总和。吞吐量/传输时间,就是吞吐率

+ 1、没有网络瓶颈:tps 数值 = 吞吐量数值

+ 2、如果网络有瓶颈: tps 数值 != 吞吐量数值

  • 吞吐率 每秒钟能通过多少kb数据
  • 吞吐率也可以用来指系统的业务吞吐能力 

业务数/小时或天” “访问量/天” “页面访问量/天” 来衡量。例如在银行卡审批系统中,可以用“千件/每小时”来衡量系统的业务处理能力。

  • 服务器资源利用率  cpu、内存、io的利用率

并发用户数

  • 严格意义的并发  同一时间发起相同请求

所有的用户在同一时刻做同一件事情或者操作,这种操作一般是指做同一类型的业务, 例如,在贷款审批业务中,一定数目的用户在同一时刻对已经完成的审批业务进行提交(操作的不是同一记录); 还有一种是特例,即所有用户进行完全一样的操作

  • 广义范围的并发 同一时间发起请求(相同、不相同)

多用户同时对系统进行操作,因此属于并发的范畴

  • 集合点:集合多个人在同一时间发起相同请求

并发用数100 发起请求,一秒钟会发起多少请求?(请求的频率)不知道,所以1秒钟总请求量,不知道是多少

负载测试

通过在被测系统上不断增加压力,直到性能指标达到极限,例如响应时间超过预定指标或者某种资源已经达到饱和状态。这种测试可以找到系统的处理极限,为系统调优提供依据

  • 逐步增加并发用户数,
  •  区间怎么判断

 有没有报错

 tps下降

 响应时间变长

假如服务器每秒可以处理50个事务,最大用户请求为300 

先找每日最大处理事务,假定服务器 处理时间为白天的8个小时

 每小时可以处理  50 t/s * 60 * 60 = 18w  个请求 ,8小时 取 6~7 的值乘以 50*6=300个 

 一天 18w * 8h = 144w 访问量 ,pv日均访问量

 

标签:协程,入门,性能,用户,线程,测试,请求
From: https://www.cnblogs.com/orangezhangzz/p/16841375.html

相关文章

  • Java 从入门到放弃11 - 《Maven》
    说点题外话,没想到突然又重拾更新,在这期间学习了java的许多知识,还补充了sql语句,数据库相关的内容,由于时间关系,中间部分的内容都没有做相应笔记和博客,因为sql的语句还有中间......
  • python 爬虫 -----selenium自动化测试工具的使用 + Microsoft edge driver 的安装
    selenium的安装python-mpip--default-timeout=100installselenium-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com Microsoftedged......
  • OpenMP 入门
    OpenMP入门简介OpenMP一个非常易用的共享内存的并行编程框架,它提供了一些非常简单易用的API,让编程人员从复杂的并发编程当中释放出来,专注于具体功能的实现。openmp主......
  • 自动化测试
    自动化python语法 selenums定位元素:八个idnametag_nameClass_name 文本<a></a>By.Link_TEXT,"新闻"By.PARTIAL_LINK_TEXT,“新” CSS选择元素id+......
  • jmeter并发测试
    1、新建线程组,设置线程数  2、添加http请求  3、http请求输入协议、端口、IP等,就可以了,然后选中线程组,点击上方的绿色三角运行 ......
  • R语言入门
    基础部分数据类型类型初始化语法略数值型(浮点型)numeric(4)1.5整数型integer(5)2复数型complex(2)1+2i逻辑型logical(4)True/False字符型......
  • 4.JWT入门案例
    JWT入门案例一、简介JSONWebtoken简称JWT,是用于对应用程序上的用户进行身份验证的标记。也就是说,使用JWTS的应用程序不再需要保存有关其用户的cookie或其他sess......
  • K8S入门篇-权限控制管理
    一、RBAC-基于角色的权限控制  范例1:聚合的权限 Aggregate创建一个clusterrolekind:ClusterRoleapiVersion:rbac.authorization.k8s.io/v1metadata:name:......
  • 驱动开发:内核测试模式过DSE签名
    微软在`x64`系统中推出了`DSE`保护机制,DSE全称`(DriverSignatureEnforcement)`,该保护机制的核心就是任何驱动程序或者是第三方驱动如果想要在正常模式......
  • Java性能分析工具
    概述工欲善其事必先利其器,在Java开源世界里面,有无以计数的工具。清单排名靠前的使用得多一些。MATEclipseMemoryAnalyzer,Eclipse内存分析器是一个可以帮助你找到内存泄漏......