性能测试一般包含3个方面:l 应用在客户端性能的测试(pc端软件:内存占用 是否卡顿 引起电脑发热 手机APP:耗电 占用内存 流量 卡顿 网站 小程序 网站:图片加载速度、js性能、数据解析速度、小程序) 应用在网络上性能的测试:公司网络出现性能问题,一般运维解决和测试 花钱(中小公司 都会使用 云服务器:阿里云、腾讯云、华为云等) 应用在服务器端性能的测试:测试工程师必须要做到的,模拟大量用户请求向服务器施加压力。 性能测试目的:l 客户有明确要求,如:系统要求同时满足100用户登陆,平均每个用户登陆时间不能超过5秒l 考察目前系统性能(容量测试),需要对系统做出分析,找出系统的压力点l 找出系统性能瓶颈,需要分析可能对系统造成瓶颈的逻辑业务,然后才能进行性能测试l 了解系统在长时间的压力下性能状况(强度测试) 提前做强度测试 环境:被测试软件的环境 (jdk 1.8以上+tomcat 9.0左右+mysql 5.7+centos7) 数据库作为独立服务器 ==>tomcat/weblogic/jboss web应用服务器 ngix+redis 了解 (php 5.3+apache2.3+mysql 5.7) 硬件环境 :服务器(购置 云服务器) 一般公司的环境类型: 开发(dev)环境:开发人员调试代码用的,经常项目跑不起来,各种问题(项目最新代码都在这里) 测试(test)环境:测试人员进行系统测试的环境,代码比较新 项目下一个发布版本 版本验证环境/预发布(pre/uat)环境:和线上环境的代码一致(用途:线上问题的跟踪:预备升级)
线上()环境/生产环境:是普通用户使用的环境,公司用来盈利的环境(代码最老的) uat环境:验收测试环境,主要面向要交付的人员进行验证测试。
pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定。
dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大 性能测试环境:l 硬件环境:被测服务器硬件配置,用于加压客户端的机子配置,CPU内存等 要求:被测服务器硬件配置要求必须和线上环境硬件类型一致,但配置可以等比例缩小 线上环境:dell服务器 R240 256G金斯顿****内存32TB西部数据盘 测试环境:dell服务器 R240 32G金斯顿****内存4TB西部数据盘 加压客户端的机器配置:普通的PC机(16G内存、1T固态硬盘) 软件环境:被测系统的架构,前端、中间件、服务器(这里指运行系统软件服务器,如tomcat)、数据库、测试环境部署信息以及性能测试工具信息。l 要求:保证软件的版本和生产环境一致,且配置的参数尽量保持一致 线上环境:tomcat 9.0.342 jdk 1.9.11 mysql 5.7.64 测试环境:tomcat 9.0.342 jdk 1.9.11 mysql 5.7.64 网络环境:找出系统性能瓶颈可以在广域网环境进行,其它性能测试可以在局域网进行,排除网络干扰 局域网环境下进行性能测试,由于网络质量非常好,出现性能问题可以排除是网络问题 为了真实的网络环境下 也需要进行一次性能测试,查看整体的性能指标是否合格 性能测试注意事项: 1、修改性能测试的bug会有比较大的概率引起功能出现错误(找到了性能的bug,开发说改代码解决了,性能回归的时候,性能没问题了,此时一定要做一轮软件基本功能测试) 2、性能测试要在功能测试稳定的情况下进行(系统测试后期开展) 3、性能测试开始的时候,会组建一个性能优化团队(测试工程师、核心开发、DBA(数据库管理员)、运维) 性能测试流程: 两个阶段做性能测试: 1、开发接口设计完毕后,通知测试部门进行 单接口压力测试(联调)20% 2、系统测试中后期,系统的功能稳定后,做的针对业务的性能测试100% 熟悉需求文档,提取出与性能有关系的需求(项目管人员直接提性能测试需求) 编写性能测试计划 设计性能测试用户场景 100个用户,5秒钟之内登录完成 制作与调试性能测试脚本 (jmeter登录/发帖) 在性能测试工具中工具设计的用户场景进行用户场景配置 执行性能测试,在测试过程中,收集性能测试指标数据 把性能测试指标数据做成一份性能测试报告 根据测试报告的结果进行系统调优 负载: 模拟业务操作对服务器造成压力的过程,比如模拟100个用户进行发帖 一个男孩子能举起30KG的物体(不是负载)而是他举起了30分钟的过程 在一定软硬件环境下,通过不断加大负载(不同虚拟用户量)来确定在满足性能指标情况下能够承受的最大用户数。简单说,可以帮我们对系统进行定容定量,找出系统性能的拐点,给予生产环境规划建议 微信发红包的负载测试: 前提条件:要和运维了解目前平均微信日发红包的数量是多少 月平均值/季度平均值 ==3000 用户数 发红包请求 性能指标 测试情况 3000 3个小时 cpu 30% mem 25% 正常 6000 3个小时 cpu50% mem 48% 正常 12000 3个小时 cpu95% mem 92% 不正常 9000 3个小时 cpu91% mem 89% 不正常 7500 3个小时 cpu75% mem 68% 不正常 8000 3个小时 cpu82% mem 78% 正常 压力测试(强度测试): 在一定软硬件环境下,通过高负载的手段来使服务器资源(强调服务器资源,硬件资源)处于极限状态,测试系统在极限状态下长时间运行是否稳定 微信发红包的压力测试: 前提做了负载测试 瞬间高压:模拟8300个用户发送一次红包 8300个红包事务 长时间的高负载:模拟7900个用户 发红包3天左右
|