爆肝整理,接口性能测试总结,一篇直接上高速...

目录:导读

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


前言

1、 性能测试术语

1)响应时间

响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。

响应时间按软件的特点再可以细分,如对于一个 C/S 软件的响应时间可以细分为网络传输时间、应用服务器处理时间、数据库服务器处理时间。另外客户端自身也存在着解析时间、界面绘制呈现时间等。

响应时间主要站在客户端角度来看的一个性能指标,它是用户最关心、并且容易感知到的一个性能指标。

2)吞吐率

吞吐率指单位时间内系统处理用户的请求数,从业务角度看,吞吐率可以用每秒请求数、每秒事务数、每秒页面数、每秒查询数等单位来衡量。从网络角度看,吞吐率也可以用每秒字节数来衡量。

吞吐率主要站在服务端的角度来看的一个性能指标,它可以衡量整个系统的处理能力。对于集群或者云平台来说,吞吐率指标反映的是服务器集群对外整体能够承受的压力,该指标比用户数更容易对比。

备注:吞吐量 = 吞吐率 * 单位时间

3)用户数

对于服务器集群或者云平台,几乎都是多用户系统,系统能提供给多少用户正常使用,也是一个非常重要的度量指标。我们把这些用户按照使用系统的时机不同,做如下区分。

系统用户数(System Users):指系统能够存储的用户量。
在线用户数(Online Users):指用户通过身份确认后,处于能正常使用状态的用户个数。
并发用户数(Concurrent users):指在某个时间范围内,同时正在使用系统的用户个数。
严格并发用户数(Strictly the number of concurrent users):指同一时刻都操作某个业务的用户数。

在性能测试过程中,我们要去模拟实际用户来发请求。但是为了吐服务器产生更大的压力,我们模拟的用户操作和实际的用户操作存在一定的差异(比如模拟的用户请求比实际用户的请求更频繁),而且返种模拟的用户数和实际的用户数也难以相互换算。

所以在度量服务器集群能力时,吞吐率指标比用户数指标更实用。

2、 性能测试方法及目标

1)性能测试方法

基准测试:
基准测试是基于一定规模的数据量上进行单业务或按实际用户操作同比例组合业务的测试,目的在于量化响应时间、吞吐率的指标,便于后续比对。

方法是做多组不同场景的测试,观察结果,抽取出几个关键数据做好记彔,用于以后进行性能对比和评价。

性能测试:
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。
特点:
主要目的是验证系统是否具有系统宣称的能力。
需要事先了解被测系统的典型场景,并具有确定的性能目标。
要求在已确定的环境下运行。

负载测试:
通过在被测系统上不断增加压力,直到性能指标,例如“响应时间”超过预定指标或者某种资源使用已经达到饱和状态。
特点:
主要目的是找到系统处理能力的极限。
需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义。
一般用来了解系统的性能容量,或是配合性能调优使用。

压力测试:
测试系统在一定饱和状态下,例如CPU、内存等在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。
特点:
主要目的是检查系统处于压力情况下是应用的表现。
一般通过模拟负载等方法,使得系统的资源使用达到较高水平。
一般用于测试系统的稳定性。

配置测试:
通过对被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。
特点:
主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行得调优操作。
一般在对系统性能状况有初步了解后进行。
一般用于性能调优和规划能力。

并发测试:
通过模拟用户的并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。
特点:
主要目的是发现系统中可能隐藏的并发访问时的问题。
主要关注系统可能存在的并发问题,例如系统中的内存泄露、线程锁和资源争用方面的问题。
可在在开发的各个阶段使用,需要相关的测试工具的配合和支持。

可靠性测试:
通过给系统加载一定的业务压力(例如资源在70%~90%的使用率)的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能稳定运行。
特点:
主要目的是验证系统是否支持长期稳定的运行。
需要在压力下持续一段时间的运行。
需要关注系统的运行状况。

失效恢复测试:
针对有冗余备份和负载均衡的系统设计的,可以用来检验如果系统局部发生故障,用户是否能够继续使用系统;
以及如果这种情况发生,用户将受到多大程度的影响。
特点:
主要目的是验证在局部故障情况下,系统能否继续使用。
还需要指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。
一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。

2)性能测试目标

概况来说,可分为4个方面:

能力验证 :

在系统测试或验收测试时,我们需要评估系统的能力,衡量系统的性能指标。系统的能力可以是容纳的并发用户数,也可能是系统的吞吐率;

系统的性能指标可以是响应时间,也可以选择 CPU、内存、磁盘、网络的使用情况。
特点:
要求在已确定的环境下进行。
需要根据典型场景设计测试方案和用例。
一般采用的方法是:性能测试、压力测试、可靠性测试、失效恢复测试。

能力规划:

评估某系统能否支持未来一段时间内的用户增长或是应该如何调整系统配置,使得系统能够满足增长的用户数的需要。
特点:
属于一种探索性的测试
可被用来了解系统的性能以及获得扩展性能的方法,例如系统扩容规划。系统容量可以是用户容量,也可能是数据容量,或者是系统的吞吐量(系统的处理能力)。对于集群服务我们更多的是用吞吐率作为容量。

方法是:
①先对各子系统、组件进行性能测试,找出它们之间的最优配比;
②然后再通过各环节的水平扩展,计算出整体的扩容机器配比。
一般采用的方法是:负载测试、压力测试、配置测试。

性能调优 :

为了更好的发挥系统的潜能,定位系统的瓶颈,有针对性的进行系统优化。

方法是在进行系统调优时,我们需要做好基准测试,用以对比性能数据的变化,并反复调整系统软硬件的设置,以使系统发挥最优性能。当然在进行系统优化时,我们会选取关键的指标进行优化,返时可能要牺牲其他的性能指标。

如目标是优化响应时间,我们可能选取的策略是以空间换时间,以牺牲内存或扩大缓存为代价,还需要我们在各个性能指标中找到平衡点。

一般对系统的调整包括以下3个方面:
硬件环境的调整;
系统设置的调整;
应用级别的调整;

一般采用的方法是:基准测试、负载测试、压力测试、配置测试和失效恢复测试。

发现缺陷 :

和其他测试一样,性能测试也可以发现缺陷。特别是严格并发访问时是否存在资源争夺导致的响应时间过慢,或大量用户访问时是否导致程序崩溃。

方法是设置集合点,实现严格并发用户访问;或者设置超大规模用户突发访问等这样的性能测试用例进行测试。
一般采用的方法是:并发测试。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

面对困难与挑战,保持坚韧的心态,勇往直前;拥有追求与梦想,努力奋斗不息;只要不停努力,必将创造出辉煌的人生,成就自己的伟大。

生命如航船,梦想是罗盘,只有不断前行,才能抵达成功的彼岸;心怀信念,砥砺前行,只要坚持不懈,就能创造属于自己的辉煌!

每一次的努力都是一种积累,每一个坚持都是一种信仰。只要不停耕耘,定能收获辉煌人生的果实,成就自己的梦想与追求!

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

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

相关文章

初级前端算法

题目1 题目描述&#xff1a; 找出数组中的最大值 输入&#xff1a; [3, 9, 2, 5, 1] 输出&#xff1a; 9 JavaScript解答&#xff1a; function findMaxValue(arr) {let max arr[0];for (let i 1; i < arr.length; i) {if (arr[i] > max) {max arr[i];}}return m…

新概念英语第二册(18)

【New words and expressions】生词和短语&#xff08;3&#xff09; pub n. 小酒店 landlord n. 店主 bill n. 帐单 【Text】 After I had had lunch at a village pub, I looked for my…

【量化】商品期货换月的处理思路(old)

商品期货存在换月的情况&#xff0c;即期货合约是有到期日的&#xff0c;如果不想实物交割就得将持仓转换到之后的合约上&#xff0c;而不同月份的价格是不一样的&#xff0c;也就是不连续的&#xff0c;在回测中需要处理换月带来的跳空&#xff1a; 比如上图中的PG是逐月换月…

const的基础用法

#include<iostream> using namespace std;void main() {const int a 0;int const b 1;//一样const int * c;//const修饰的是指针所指向的内存空间(即值)&#xff0c;不能被修改int* const d NULL;//const修饰的指针变量不能被修改const int* const eNULL;//const修饰的…

uni-app 从入门到精通 3天快速掌握 文字版 学习专栏

大家好&#xff0c;我是java1234小锋老师。 近日锋哥又卷了一波课程&#xff0c;uni-app 从入门到精通 3天快速掌握教程&#xff0c;文字版视频版。三天掌握。 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从…

亚信安慧AntDB数据库——通信运营商核心系统的全面演进

AntDB数据库源自通信运营商核心系统&#xff0c;经过15年的平稳运行和不断演进&#xff0c;成功跟随通信技术的升级步伐&#xff0c;逐步迈向5G时代&#xff0c;并且在这期间完成了8次大版本的迭代&#xff0c;为行业树立了技术领先的典范。其独特之处在于具备超融合架构&#…

如何在win7同样支持Webview2 在 WPF 中使用本地 Webview2 ,如何不依赖系统 Runtime

项目运行环境&#xff1a; .Net Framework 4.5.2 Windows 7 x64 Service Pack 1 WebView2 Microsoft.WebView2.FixedVersionRuntime.120.0.2210.91.x64 考虑到很多老项目&#xff0c;本项目使用的是.Net Framework 4.5.2&#xff0c;.Net 更高版本的其实也是可以支持的。 …

vmware安装龙蜥操作系统

vmware安装龙蜥操作系统 1、下载龙蜥操作系统 8.8 镜像文件2、安装龙蜥操作系统 8.83、配置龙蜥操作系统 8.83.1、配置静态IP地址 和 dns3.2、查看磁盘分区3.3、查看系统版本 1、下载龙蜥操作系统 8.8 镜像文件 这里选择 2023年2月发布的 8.8 版本 官方下载链接 https://mirro…

起名+算命+塔罗+星座+八字测算大全小程序源码系统 带完整的安装包以及搭建教程

随着科技的发展和人们生活水平的提高&#xff0c;越来越多的人开始关注个人命运和运势&#xff0c;希望通过各种方式了解自己的未来。在这样的背景下&#xff0c;一款集合了起名、算命塔、罗星座、八字测算等多种功能的小程序应运而生。这款小程序源码系统旨在为用户提供全方位…

mybatis-flex笔记

MyBatis-Flex 的增删改功能 - MyBatis-Flex 官方网站https://mybatis-flex.com/zh/base/add-delete-update.html 代码https://gitee.com/hntianshu/mybatis-flex-test 一 新增数据 不忽略 null 值。 就是允许有null 忽略null 就是不允许有null BaseMapper 的接口提供了 inser…

jmeter的安装与目录介绍

1、启动 apache-jmeter-5.0\bin 2、永久修改中文配置 zh-CN就行了

图像分割-漫水填充法 floodFill (C#)

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本文的VB版本请访问&#xff1a;图像分割-漫水填充法 floodFill-CSDN博客 FloodFill方法是一种图像处理算法&#xff0c;它的目的是…

2023年度最热 AI 应用 TOP 50,除了 ChatGPT 还有这么多宝藏

原文章链接&#xff1a;年度最热 AI 应用 TOP 50&#xff0c;除了 ChatGPT 还有这么多宝藏 - IT之家 更多消息&#xff1a;AI人工智能行业动态&#xff0c;aigc应用领域资讯 在 AI 工具激烈竞争的一年中&#xff0c;尽管ChatGPT在访问量上遥遥领先&#xff0c;但单次使用时长未…

Java LinkedList解密

一、LinkedList最底层的原理 LinkedList其实底层是链表&#xff1a; 当初始化的时候&#xff0c;会将链表这个节点的值、prev指针和next指针初始化。 二、LinkedList初始化 无参构造并没有做什么。有参构造会先调用无参构造&#xff0c;然后调用addAll方法将链表的节点都初始化…

【数值分析】数值积分,复合中点,复合梯形,复合Simpson,matlab实现

数值积分与数值微分 2023年11月29日 #analysis 文章目录 数值积分与数值微分1. 求积公式与代数精度2. 几个常用积分公式及其复合积分公式2.1 中点公式2.2 梯形公式2.3 抛物型公式/Simpson公式2.4 复合中点公式2.5 复合梯形公式2.6 复合Simpson公式 1. 求积公式与代数精度 求积…

什么是高防 IP?哪些行业适合用高防 IP?

在数字化浪潮席卷全球的今天&#xff0c;网络安全问题日益凸显。有听说过“高防 IP”这个名词吗&#xff1f;它究竟是什么东西&#xff0c;又能在哪些领域大显身手呢&#xff1f; 一、什么是高防 IP&#xff1f; 高防 IP&#xff0c;顾名思义&#xff0c;就是具备高级防护能力…

1_并发编程_线程的基本概念和线程终止及线程问题排查

1.线程的运行状态 在Java中&#xff0c;线程的状态一共是6种状态&#xff0c;分别是 NEW&#xff1a;初始状态&#xff0c;线程被构建&#xff0c;但是还没有调用start方法 RUNNABLED&#xff1a;运行状态&#xff0c;JAVA线程把操作系统中的就绪和运行两种状态统一称为“运行…

【C程序设计】C判断

判断结构要求程序员指定一个或多个要评估或测试的条件&#xff0c;以及条件为真时要执行的语句&#xff08;必需的&#xff09;和条件为假时要执行的语句&#xff08;可选的&#xff09;。 C 语言把任何非零和非空的值假定为 true&#xff0c;把零或 null 假定为 false。 下面…

.mallox勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

引言&#xff1a; 随着技术的不断发展&#xff0c;网络空间也不可避免地面临着各种威胁&#xff0c;其中之一就是勒索病毒&#xff0c;而.mallox是近期引起关注的一种恶意软件。本文将介绍.mallox勒索病毒&#xff0c;以及如何有效地恢复被其加密的数据文件&#xff0c;并提供…

ros2激光雷达<gazebo>仿真资料

Lidar sensor激光雷达传感器 We dont want our robot to touch the wall at all because this may cause some damage, so instead of the contact sensor we can use the Lidar. Lidar is an acronym for "light detection and ranging". This sensor can help us …