【性能测试】真实企业,性能测试流程总结分析(一)

news2024/9/25 21:27:12

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

性能测试什么时候开始?

一般在系统功能稳定没有大的缺陷之后开始执行。
但前期准备工作可以从系统需求分析时就开始:性能目标制定、场景获取、环境申请等。

1、制定性能测试目标

在特定的并发用户数下测试特定场景的响应时间
在一定的响应时间的要求下来测试特定场景的最大并发用户数

测试特定场景的TPS

1)线上系统

对线上系统的日志进行分析以获取到这个系统每个功能的访问情况、最大的并发用户量、平均/最大/最小响应时间。

然后通过每日的增长趋势来确定最大的并发用户数、响应时间参考日志分析的结果,即与平均响应时间相当。

2)全新项目

开发过程相关文档

项目开发计划书、需求规格说明书、设计说明书等文档都可能涉及性能测试的要求。通过收集这些材料,可以找到初步的性能需求。但这些性能测试需求往往不够准确,需要性能测试人员进行专业的引导。

类似项目
公司的其他产品或以往项目会累积出一些数据,可以作为参考。

用户使用模型
分析用户使用模型是获取性能测试需求的有效手段,考虑哪些用户使用系统的哪些典型的业务,在什么时段有多少用户进行了什么功能的操作。

例如:
某OA系统每天早上8:00会有200个用户在10分钟内登录系统;

每天查询交易的高峰是在9:0011:00和下午的14:0016:00等,然后根据这个用户使用模型并结合80/20原则计算OA系统的登录以及交易查询业务的并发量。

80/20原则
80/20原理就是系统在每个工作日有80%的业务是在20%的时间内集中完成,或者系统80%的用户会在20%的时间内集中进行应用操作。

下面我们来举两个例子说明:
某网站每日的总访问人数为10万,其中浏览单品页占30%,搜索业务占20%,登录+购买业务占50%。采用80~20原则,8小时的20%作为基准时间,计算各个业务的并发数。

搜索业务:(100000*20%*80%)/(8*3600*20%)=2.78取整为3

浏览单品页:(100000*30%*80%)/(8*3600*20%)=4.17取整为5

登录+购买:(100000*50%*80%)/(8*3600*20%)=6.94取整为7

系统每年的业务集中在8个月完成,每个月平均有20个工作日,每个工作日8小时,按照80/20原则,即每天80%的业务在1.6小时完成。

年全年处理业务约100万笔,其中15%的业务处理中每笔业务需对应用服务器提交7次请求,其中70%的业务处理中每笔业务需对应用服务器提交5次请求,剩余15%的业务处理中每笔业务需对应用服务器提交3次请求。

根据以往的统计结果,每年的业务增长量为15%,考虑到今后3年的业务发展需要,测试需按现有业务量的两倍进行请求数来计算系统应该达到的TPS。

每年的总请求数=(100万*15%*7+100万*70%*5+100万*15%*3)*2=1000万

TPS=(10000000*80%)/(8*20*8*3600*20%)=8.68,取整即TPS=9

响应时间标准:
2秒以内,用户感受良好;
2~5秒,用户觉得可以接受;
5~10秒,用户会觉得很烦躁,无法接收,会频繁刷新页面;
10秒以上,用户完全无法接收,直接离开;

2、性能测试场景获取

1)线上系统

单场景:
根据对线上系统的日志分析结果,访问量排在前面的功能、本次改动的以及可能会影响到的功能、和钱有关的功能。

为保险起见最好再和开发确认一下会影响到的功能。

混合场景:
还是根据线上系统的日志分析结果,得到系统级别的最大并发数,再根据每日的增长趋势做一个增量从而得到最终的最大并发数。

然后根据日志分析结果中的各个重要功能的占比数来进行用户分配。

稳定性场景:
确定好单场景和混合场景后,还应该考虑稳定性场景。其目的是测试系统是否有内存泄漏现象发生,同时也可以测试系统的平均无故障时间。

所以,可以用混合场景做长时间的稳定性测试。

2)全新项目

单场景:
重要、核心的功能
常用功能
业务流程复杂的功能
资源占用严重的功能(比如多表查询或向多张表中插入数据)

混合场景:
根据一定的比例把所有重要的功能都加入混合场景

稳定性场景:
可以考虑用混合场景做长时间的稳定性测试。

3、性能测试数据确定

性能测试中很重要的一点就是场景数据的设计。

比如一个数据查询场景,如果该场景对应的数据库表只有10条数据,那么查询结果肯定相对较快。

但是,如果这个查询场景对应的数据库表有1000万条数据,那么查询结果肯定会比只有10条数据的查询结果要慢一些。

如果性能测试不考虑数据量,那么性能测试的结果是不准确的,上线后由于未考虑数据量的因素而引发的性能问题几率会很大。

对于线上系统来说,各表的数据量可以根据线上系统的各表数据量以及增量来确定。而新系统需要根据开发文档以及和相关项目干系人(如:客户代表、项目经理、需求分析员、系统架构师以及产品经理一起调研和讨论来决定)

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

勇往直前,不畏挫折;努力奋斗,无惧困境。拥抱变革,追逐梦想;燃烧激情,创造辉煌。只有坚持不懈的努力,才能让我们的人生绽放出耀眼的光芒。

把握当下,放眼未来,勇敢追逐梦想,脚踏实地努力奋斗。只要坚持不懈地追求,就能在人生的舞台上书写出属于自己的精彩篇章。

每一次努力,都是向梦想更近一步;每一次坚持,都是给未来更大的机会。相信自己的力量,勇往直前,奋斗不息,终将创造出辉煌的人生。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JuiceSSH结合内网穿透实现公网远程访问本地Linux虚拟机

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …

dev express 列头筛选

设置这三个属性。 AllowAutoFiter::获取或设置是否可以使用自动筛选行筛选列的值AllowFiter:获取或设置网格视图中的筛选按钮(布局视图中的字段选按钮)是否显示在列标题中ImmediteUpdateAutoFiter: 获取或设置是否在最终用户修改自动筛选行单…

【网络奇遇记】揭秘计算机网络的性能指标:速率|带宽|吞吐量|时延

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 速率1.1 数据量1.2 速率 二. 带宽三. 吞吐量四. 时延4.1 发送时延4.2 传播时延…

【adb】电脑通过ADB向手机传输文件

具体步骤如下: Step1 下载ADB工具 下载最新版本的 ADB工具 !!! 注意:一定要是最新版本的ADB,否则很可能导致无法识别到手机。 将下载的ADB解压以后的文件如下图所示: Step2 添加环境变量 将 ADB的路径 D:\platformtools &…

YOLO算法改进7【中阶改进篇】:主干网络C3替换为轻量化网络MobileNetV3

解决问题:YOLOv5主干特征提取网络采用C3结构,带来较大的参数量,检测速度较慢,应用受限,在某些真实的应用场景如移动或者嵌入式设备,如此大而复杂的模型时难以被应用的。首先是模型过于庞大,面临…

git在vscode 的使用过程中 创建新分支 修改新分支代码 发现 master分支的代码也被修改了

1.问题 在我进行 代码迭代的时候 因为我主要用的是 vscode 我想创建一个分支 开发其他的功能 我发现一个问题 就是我创建了一个新的分支 修改代码 发现 master 也被修改了 就如同 这两个分支 都一样 指向了master 2.过程 经过我的测试和百度 我发现 怎么都不行 看了看 过程都没…

录制完视频如何去除重复部分?

在录制视频的过程中,有时会出现一些重复的部分,这给视频的制作人员带来了不小的困扰。如果不及时去除重复部分,不仅会影响观众的观看体验,还会浪费观众的时间和从业者的精力。那录制完的视频如何去除重复部分呢?无须担…

为什么我的网络这么卡卡卡卡卡?(网络调试篇)

前言 最近小白迷上了打游戏。 有没有一起上王者的小伙伴? 有没有一起吃鸡的小伙伴? 欧耶, 咱们组队 送人头去吧 为了不让对方太菜, 送人头是与对方最高的敬意。 闲话说到这,本文就结束了。 感谢观看~…

软件工程经济学习题 答案(不保证对错,找不到答案)

一、资金等值计算 1.某IT企业今年向银行贷款20万元以购置一台设备。若银行贷款利率为10%,规定10年内等额偿还,试求每年的偿还金额。 2.某软件企业向银行贷款200万元,按年利率为8%进行复利计息,试求该企业第5年末连本带利一次偿还银…

基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 包围盒构建 4.2 点云压缩 4.3 曲面重建 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...........................................…

iconify图标集离线使用方案简介

1.需求描述 前端项目,技术栈使用Vue3Element Plus,参考了ruoyi-vue-pro项目与vue-element-plus-admin项目,封装了一个Icon组件,图标使用的是iconify,项目部署在内网环境,不能连接互联网,需要部署一套iconi…

nosql-redis整合测试

nosql-redis整合测试 1、创建项目并导入redis2、配置redis3、写测试类4、在redis中创建key5、访问80826、在集成测试中测试方法 1、创建项目并导入redis 2、配置redis 3、写测试类 4、在redis中创建key 5、访问8082 6、在集成测试中测试方法 package com.example.boot3.redis;…

DDR加终端匹配电阻和不加信号质量的区别

DDR采用菊花链拓扑结构时,由于信号传输线较长通常需要在DDR末端加上终端匹配电阻,端接的方式有很多,但是都是为了解决信号的反射问题,通常为了消除信号的反射可以在信号的源端或者终端进行解决,在源端处消除反射是采用…

Schmitt Trigger本质就是一个带迟滞的比较器

Chapter 18 Special Purpose CMOS Circuits 甚高 24 人赞同了该文章 Chapter 18 Special Purpose CMOS Circuits 这一章讲几个实用电路, Schmitt trigger 输入信号noisy, 输出产生干净的pulse. 然后介绍multivibrator, 拥有astable和monostable两态. input buffer design 对…

drf视图组件

Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验、保存、转换数据)控制数据库查询的执行 1.1 视图继承关系 视图的方法与属性: 1.2 视图 REST framework 提供了众多的通用视图基类与扩展类,以…

全国250米DEM数据

全国250米DEM数据 DEM是数字高程模型的英文简称(Digital Elevation Model),是研究分析地形、流域、地物识别的重要原始资料。由于DEM 数据能够反映一定分辨率的局部地形特征,因此通过DEM 可提取大量的地表形态信息,可用于绘制等高线、坡度图、…

git集成github(二)-- 遇见的问题与解决方法

1、share project on github时,弹出Cannot load information for github.com/zouxiaoya:Connection reset问题。 解决方法:pycharm-->setting-->version control-->github中,删除掉当前用户,点击reset重置即可。 2、 pus…

UE和Android互相调用

ue和android互调 这两种方式都是在UE打包的Android工程之上进行的。 一、首先是UE打包Android,勾选下面这项 如果有多个场景需要添加场景 工程文件在这个路径下 然后可以通过Android Studio打开,选择gradle打开 先运行一下,看看是否可以发布…

C语言——最古老的树

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 缺乏明确的目标,一生将庸庸…

Kubectl 部署有状态应用(上)

前面介绍了Deployment以及如何部署无状态应用。 Kubectl 部署无状态应用Deployment Controller详解(上)Deployment Controller详解(下) 本文将继续介绍如何在k8s上部署有状态应用。 有状态和无状态服务的区别 无状态&#xff…