性能测试概念

发布时间 2023-03-22 21:16:34作者: 玖久

软件项目中性能测试的概念:

性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统响应时间、TPS(TransactionPerSecond)、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程。

 

特定方式:模拟多用户   

1、不能用人工模拟  2、程序模拟 ---jmeter loadrunner locust 等

 

一定策略施加压力:办公OA系统:8:50--9:00需要测试是否满足1000人打卡

 

 

性能测试一般包含3个方面:

1、应用在客户端性能的测试:网站前端(js解析数据性能、前端图片资源加载性能等)、手机app本身的性能(占用cou、卡顿、发热、流量等)、c/s程序的client端(客户端,占用cpu等)

前端工程师解决

 

2、应用在网络上性能的测试:网络设备或网络宽带不够 --花钱解决、运维完成网络优化

 

3、应用在服务器端性能的测试:模拟大批量请求服务器产生压力(测试工程师做的)

 

 

 

性能测试目的:

1、客户有明确要求,如:系统要求同时满足100用户登陆,平均每个用户登陆时间不能超过5秒

 

2、考察目前系统性能(容量测试),需要对系统做出分析,找出系统的压力点

测试出目前我们项目的容量,可以最多容纳多少个用户

 

3、找出系统性能瓶颈,需要分析可能对系统造成瓶颈的逻辑业务,然后才能进行性能测试

找出系统性能薄弱的环节进行加强,比如支付慢、搜索慢等

 

4、了解系统在长时间的压力下性能状况(强度测试)

测试7天、半个月下的项目性能情况

 

 

性能测试环境:

1、硬件环境:被测服务器硬件配置,用于加压客户端的机子配置,CPU内存等

要求:尽量保证和生产环境(线上环境)配置一致,如果经费优先达不到、 也要品牌、架构一致、配置等比例缩小

正式环境 戴尔(DELL)2U 机架式R750XS存储服务器主机 金士顿内存256G 三星SSD 64T

性能环境 戴尔(DELL)2U 机架式R750XS存储服务器主机 金士顿内存256G 三星SSD 64T

 

 

生产环境(PRD/PROD):客户使用的真实环境  等于就是你用的淘宝、腾讯网

(客户使用)

 

需求验证环境(UIT):和生产环境的代码部署一致,主要作用:1、预升级测试

2、线上问题的重现和跟踪  (运维、产品、测试)

 

测试环境(SIT):测试人进制各项 测试的环境,比如业务功能测试、性能测试、 接口测试、自动化测试    (测试、偶尔开发使用)

 

开发环境(DEV):开发人员进行代码整合调试的环境

(开发人员使用、测试人员偶尔使用)

 

l软件环境:被测系统的架构,前端、中间件、服务器(这里指运行系统软件服务器,如tomcat)、数据库、测试环境部署信息以及性能测试工具信息。

要求:保证和生产环境使用的软件版本、以及配置一致

生产环境:tomcat7.2.8  mysql5.7.6  jdk1.8.9 配置文件参数配置

性能环境:tomcat7.2.8  mysql5.7.6  jdk1.8.9 配置文件参数配置

 

 

l网络环境:找出系统性能瓶颈可以在广域网环境进行,其它性能测试可以在局域网进行,排除网络干扰

在局域网下进行性能测试,如果出现软件的性能问题,绝对和网络没关系。排除软件性能问题之后,还是需要在广域网进行一次性测试,因为这是真实的网络环境

 

备注:性能测试的环境要独立于功能测试环境,一般在没有其它干扰被测系统的情况下,进行性能测试。

 

负载:

模拟业务操作对服务器造成压力的过程,比如模拟100个用户进行发帖。

搬起100斤的物品,这不是负载,1个人搬起100斤的物品在一直走路2小时,这才是负载

 

 

 

负载测试(LoadTesting):(容量测试)

在一定软硬件环境下,通过不断加大负载(不同虚拟用户量)来确定在满足性能指标情况下能够承受的最大用户数。简单说,可以帮我们对系统进行定容定量,找出系统性能的拐点,给予生产环境规划建议。这里的性能指标包括TPS(每秒事务数)、RT(事务平均响应时间)、CPUUsing(CPU利用率)、MemUsing(内存使用情况)等软硬件指标。从操作层面来说,负载测试也是一种性能测试手段,比如下面的配置测试就需要变换不同的负载来进行测试。

 

微信发红包负载测试: 前提 要求性能指标 cpu80% 内存75% 事务成功率98%

第一步:跟运维去确认目前 统计的 微信发红包每天的用户数有多少,假设3000

用户数  持续红包时间    cpu    内存   事务成功率

3000       2小时       55%     43%     100%

6000       2小时       62%     55%     100%

12000      2小时       75%     75%     99%

24000      2小时    90%     92%     70%

18000      2小时    80%     82%     88%

15000      2小时    75%     72%     98%   拐点

 

 

 

压力、强度测试(EnduranceTesting):在一定软硬件环境下,通过高负载的手段来使服务器资源(强调服务器资源,硬件资源)处于极限状态,测试系统在极限状态下长时间运行是否稳定,确定是否稳定的指标包括TPS、RT、CPUUsing、MemUsing等。

 

微信发红包压力测试:前提  负载 15000

公司里面先做负载测试在做压力测试

瞬间的高压:

用户数   发红包时间    cpu   内存   事务成功率

15500   1次    ?   ?   ?

 

长时间的高负载:

用户数   发红包时间               cpu       内存     事务成功率

14900    3天--2周(至少三天)