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

目录:导读

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


前言

4、性能测试用例设计

1)单场景

场景描述:模拟用户进行登录操作
并发量:分别模拟并发用户数为1、10、50三种情况进行测试
压测时间:每次15分钟
数据量:MySQL的user表中有70万账户
集合点:不使用集合点

重点关注指标:响应时间、事物成功率、应用服务器资源使用情况(CPU、内存、IO)、MySQL数据库资源使用情况(CPU、内存、IO)、应用日志是否有死锁等错误、数据库日志是否有死锁等错误、JVM内存使用情况和GC情况

预期指标:响应时间在2秒内、事物成功率为100%、应用服务器和数据库服务器CPU使用率≤60%、没有内存泄漏、数据库死锁、线程死锁等现象

2)混合场景

混合场景不是把所有的测试场景糅合在一起形成一个大的场景,而应该先考虑不同的混合场景组合,如数据库查询操作的混合场景、数据库写操作的混合场景、数据库查询与写操作都包含的大混合场景。

如下:
场景描述:模拟系统不用用户进行数据库读写操作的混合场景,场景包括用户登录、广告词默认查询、新建广告组、广告词默认创建、广告审核、广告生效、广告词按价格排序。

并发量:总共模拟300个用户同时操作,其中登录操作占比20%、广告词默认查询占比25%、新建广告组占比15%、广告词默认创建8%、广告审核10%、广告生效15%、广告词按价格排序7%

压测时间:每次15分钟

数据量:MySQL的cpc表有150万条数据、plan表有10万条数据、group表有50万条数据、audit表有100万条数据,MongoDB的report表有1TB数据、user表有90万条数据。

集合点:不使用集合点

重点关注指标:响应时间、事物成功率、应用服务器资源使用情况(CPU、内存、IO)、MySQL数据库资源使用情况(CPU、内存、IO)、应用日志是否有死锁等错误、数据库日志是否有死锁等错误、JVM内存使用情况和GC情况

预期指标:登录、广告词默认查询、新建广告组等操作响应时间在2秒内,广告词默认创建、广告审核、广告生效、广告词按价格排序等操作响应时间在3秒内,事物成功率为100%、应用服务器和数据库服务器CPU使用率≤60%、没有内存泄漏、数据库死锁、线程死锁等现象

3)稳定性场景

场景描述:模拟系统不用用户进行数据库读写操作的混合场景,场景包括用户登录、广告词默认查询、新建广告组、广告词默认创建、广告审核、广告生效、广告词按价格排序。

并发量:总共模拟300个用户同时操作,其中登录操作占比20%、广告词默认查询占比25%、新建广告组占比15%、广告词默认创建8%、广告审核10%、广告生效15%、广告词按价格排序7%

压测时间:持续2*24小时
数据量:MySQL的cpc表有150万条数据、plan表有10万条数据、group表有50万条数据、audit表有100万条数据,MongoDB的report表有1TB数据、user表有90万条数据。

集合点:不使用集合点
重点关注指标:JVM内存使用情况和GC情况
预期指标:无内存泄漏现象或迹象发生

5、性能测试环境准备与搭建

性能测试环境包括软件环境、硬件环境和网络环境。这三大环境不仅是指应用服务器环境,还包括数据库服务器、缓存服务器、文件服务器以及其他中间应用服务器环境。

硬件环境包括:CPU、内存、磁盘等基本因素。

软件环境包括:操作系统版本号、配置,Linux磁盘分区、JDK版本、位数、厂商,中间件版本号、位数,数据库版本号、位数,以及这些软件的安装路径也最好与线上环境一致。配置文件包括JVM配置、中间件配置、数据库配置文件等。

网络环境包括:网络协议及网络带宽。

集群环境包括:应用相关服务器的负载均衡环境、数据库的热备或主从环境、集群环境等。

申请线下仿真测试环境的时候,应遵循以下原则:

1)硬件环境尽可能地保持与生产环境一致

2)如果是集群环境,测试环境就不可能申请到那么多台服务器,那么可以考虑申请3台与线上生产环境一致的机器来作为线下的性能测试机器。

在性能测试的过程中,可以分别测试单机、双机和三机负载均衡时候的性能表现,然后根据3种情况下性能表现计算出线上生产环境(比如说100台)进行负载均衡时的性能损耗率,从而较为真实的计算出线上100台机器进行负载均衡时候的性能指标。

3)如果数据库集群环境太庞大,比如数据库是8组32台,那么线下测试不会申请32台机器进行性能测试。一般这种情况只会申请一组数据库(一主三从)作为性能测试的数据库即可。

因为大型数据库的集群基本都是采用拆库分表策略,所以会导致数据库集群庞大。申请一组数据库机器就可以开展性能测试,只需要保证性能测试所用的用户数据都落在申请的这组数据库即可。

4)如果实在无法保证硬件环境与线上一致,那么只能按照低配置环境进行测试,如果低配置环境测出的结果能满足线上要求,那么线上高配置环境肯定也能满足既定的性能要求。

如果无法满足,则不建议做建模估算,因为如果CPU颗粒数、高速缓存、物理内存大小、磁盘转速不同,性能建模得出的性能结果也不够准确。

如果在低配置的机器测试达不到要求,则要在测试报告中写明测试环境,并说明不能保证因为测试环境的提升而达到要求。

Mock Server准备:
在互联网行业叫Mock Server,在银行等金融行业叫做性能测试挡板。有时候系统的业务联调需要调用到其他系统的接口,但是其他系统的开发并未完成。

对于这种情况,常见的解决方案是搭建一个临时的server,模拟那些服务,提供数据进行联调和测试。

Mock Server的使用通常会带来以下好处:
隔绝由其他模块或系统出错引起的本模块的测试错误。
隔绝其他模块的开发状态,只要定义好接口,不用管开发有没有完成。
一些速度较慢的操作,可以用Mock Object代替,快速返回。

6、做脚本

这里就不做详细描述。

7、跑场景

根据测试用例来跑测试场景。

8、做监控

在性能测试的过程中,先用命令来监控,发现有问题再连上工具进行监控。

9、分析调优

每一个调优后,配置信息及测试结果都需要详细的记录下来。

10、回归测试

回归测试后,全部的目标达成后编写性能测试报告并发送给项目组成员。

11、出图写报告

1)测试目标
哪些场景、并发用户数、响应时间、TPS

2)测试结论
通过/不通过

3)本次测试的优化
某某场景:开始测试的时候TPS为5,优化后TPS达到30,发现了什么问题,怎么解决的。

4)优化改动项
代码
JVM
数据库
中间件
Linux服务器

5)具体测试情况
系统架构
测试环境
测试方法
测试结果

6)后续优化建议

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在每一次坚持与努力中,我们都能超越自我,迸发出内心的巨大潜力。不放弃,不畏惧,勇往直前,只有这样,才能成就属于自己的辉煌人生。

不论前方有多少荆棘与坎坷,只要我们坚定梦想,砥砺前行,就能够跨越重重难关,创造出属于自己的辉煌人生。相信自己,勇往直前,无所不能。

奋斗是我们追逐梦想的征程,不畏艰辛,勇往直前。每一次努力都铸就坚强的内心,每一次挑战都磨砺出无限可能,只要坚持不懈,成功将属于我们。

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

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

相关文章

odbc连接mysql数据库

安装odbc相关组件 apt install unixodbc unixodbc-dev libmyodbc 修改odbc配置 执行odbcinst -j查询odbc所读取的配置默认路径,根据查询结果修改,odbc.ini和odbcinst.ini两个文件 odbcinst.ini配置如下 [MySQL] Description MySQL Driver /usr/l…

手把手带你死磕ORBSLAM3源代码(十)System.cc System类代码分析

目录 一.前言 二.代码分析 2.1 引用头文件 2.2 静态成员变量 2.3 System函数 一.前言 这部分代码介绍引用头文件以及System类的函数定义文件。 二.代码分析 2.1 引用头文件 #include "System.h" #include "Converter.h" #include <thread> #…

Azure Machine Learning - Azure OpenAI GPT 3.5 Turbo 微调教程

本教程将引导你在Azure平台完成对 gpt-35-turbo-0613 模型的微调。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&…

Javacv-利用Netty实现推流直播复用(flv)

前言 上一篇文章《JavaCV之rtmp推流&#xff08;FLV和M3U8&#xff09;》介绍了javacv的基本使用&#xff0c;今天来讲讲如何实现推流复用。 以监控摄像头的直播为例&#xff0c;通常分为三步&#xff1a; 从设备获取音视频流利用javacv进行解码&#xff08;例如flv或m3u8&am…

随笔记录.1

1.find高级用法 find . -name *.te | xargs grep -i "zygote_tmpfs" find . -name *.te | xargs grep -i "_app_tmpfs" 2.audit2allow -p policy < avc_log.txt 3.fastboot oem set_selinux na 4.adb disable-verity 5.adb shell am broadcast -a …

初级游戏客户端社招面试问题总结

目录 c c# lua Unity NGUI AssetBundles资源管理 Unity性能优化 图形学 网络 场景题 计组&操作系统 其他知识 算法题 c 虚函数的原理 智能指针的原理 如何解决循环引用 智能指针的源码 c&#xff0c;使用char实现自定义的一个string 可以通过new去申请一…

如何实现准时的setTimeout

背景 setTimeout 是不准的。因为 setTimeout 是一个宏任务&#xff0c;它的指定时间指的是&#xff1a;进入主线程的时间。 setTimeout(callback, 进入主线程的时间)所以什么时候可以执行 callback&#xff0c;需要看 主线程前面还有多少任务待执行。 由此&#xff0c;才有了…

MySQL8安装教程

MySQL安装教程 安装环境 Windows 10 软件下载 1、官网下载 官网可以下载最新版本的MySQL 8.0 下载地址&#xff1a; https://dev.mysql.com/downloads/windows/installer/8.0.html 开始安装 1、下载完成后&#xff0c;我们就开始安装&#xff0c;双击安装包&#xff0c…

李宏毅机器学习2023|图像生成模型

文章目录 图像生成Autoregressive&#xff08;各个击破&#xff09;Non-Autoregressive&#xff08;一次到位&#xff09;一次到位法额外的输入——从一个高维的Normal Distribution作simple得到一个向量常用的图片生成模型VAEFlow-based Generative ModelDiffusion ModelGAN D…

计量校准方案分享No.11——定碳定硫分析仪校准方案

[测量单元:红外碳硫分析仪,是否使用220V交流电源:是,碳测量范围:0.005%-4.3%,硫测量范 围:0.0005%-0.33%] 一 依据文件 CNAS CL01-G002-2021 《测量结果的计量溯源性要求》现行有效 RB/T 034-2020 《测量设备校准周期的确定和调整方法指南》现行有效 CNAS TRL-004-2017 《 …

跨境电商独立站的6大模式,任你选择!

在几年前搭建跨境电商独立站和第三方平台基本上是同步发展起来的&#xff0c;但在后期的发展过程中&#xff0c;独立站经过不同时期的革新&#xff0c;形成了自己的模式。 当你准备好创建独立站的时候&#xff0c;首先你需要了解的就是独立站运营的模式类型&#xff0c;并找到最…

【Qt-Edit】

Qt编程指南 ■ QTextEdit■ QLineEdit■ QLineEdit 设置正则表达式 ■ QPlainTextEdit■ QKeySequenceEdit■ QList<QLineEdit *> edits■■ ■ QTextEdit /* 实例和对象&#xff0c;设置位置和显示大小 */ textEdit new QTextEdit(this); textEdit->setGeometry(0…

每日一题(LeetCode)----栈和队列-- 简化路径

每日一题(LeetCode)----栈和队列-- 简化路径 1.题目&#xff08;71. 简化路径&#xff09; 给你一个字符串 path &#xff0c;表示指向某一文件或目录的 Unix 风格 绝对路径 &#xff08;以 / 开头&#xff09;&#xff0c;请你将其转化为更加简洁的规范路径。 在 Unix 风格的…

ISO27001认证主要的审核方向

ISO27001审核主要针对组织的信息安全管理体系&#xff08;ISMS&#xff09;进行全面的审查&#xff0c;以确保其符合ISO/IEC 27001标准的要求。审核过程通常包括以下几个方面&#xff1a; 1. 组织环境&#xff1a;审核组织的信息安全管理体系是否能够在组织内部环境以及与外部供…

熟悉DHCP面临的安全威胁与防护机制

一个网络如果要正常地运行&#xff0c;则网络中的主机&#xff08;Host&#xff09;必需要知道某些重要的网络参数&#xff0c;如IP地址、网络掩码、网关地址、DNS服务器地址、网络打印机地址等等。显然&#xff0c;在每台主机上都采用手工方式来配置这些参数是非常困难的、或是…

Springboot学习

Springboot扩展点之InitializingBean-CSDN博客

C/S医院检验LIS系统源码

一、检验科LIS系统概述&#xff1a; LIS系统即实验室信息管理系统。LIS系统能实现临床检验信息化&#xff0c;检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后&#xff0c;自动生成打印报告&#xff0c;通过网络存储在数据库中&#xff…

《微信小程序开发从入门到实战》学习六十三

6.4 交互API 使用交互API可以在小程序中显示各种弹窗或动画&#xff0c;达到交互反馈的目的。 6.4.1 提示框API 使用wx.showToast接口可显示消息提示框。接口接受Object参。属性如下&#xff1a; title&#xff08;必填&#xff09; 提示的内容 icon …

postgres数据库安装

选择所需数据库版本进行下载 下载地址&#xff1a;PostgreSQL: File Browser 我是以/data当作主目录&#xff0c;所以在/data下创建俩文件夹&#xff0c;默认目录应该是usr mkdir software mkdir module 进入目录&#xff0c;上传下载的gz安装包 cd software rz 解压缩,版本…