新人如何在实际工作做性能测试?怎么合理选择并发数?

news2024/12/22 22:46:21

目录:导读

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


前言

从小入手,从简单的开始,然后慢慢的做更系统更复杂的性能测试。

1、确定需求
刚接触性能测试的同学往往不知道性能测试是有需求的。
比如:
给我测一下系统的性能;
线上xx服务器挂了,能否重现一下线上问题;

如果你是性能测试同学,假设时间有限,这两个需求你只能接一个,你是接哪个?

很多同学会选第一个,因为第一个需求似乎是性能测试的需求,第二个跟性能测试似乎没有特别强烈的关系。

但是第一个需求太泛泛了,如果不细化的话操作起来会很难,第二个尽管看起来是亡羊补牢的行为,但现实工作中这类的需求很多,操作起来也是有套路的,不会特别发散。

总之,建议新人在需求分析的时候接一些具体的,可以操作的需求。需求是否可以细化分解,基本就注定了性能测试能否顺利完成

2、了解业务
比如重现线上问题的需求,拿到手之后,我们就必须熟悉线上的业务。用户是怎么操作的,系统崩溃的时段是哪个,这个时段里有多少用户在使用系统,他们都在做什么?

尽可能精确的重现用户的行为或者预测用户的行为,这是性能脚本的是否符合实际的关键。而这种精确是建立在了解业务的基础之上的。

3、搭建测试环境
尽可能搭建跟线上环境一致的性能测试专用环境。

关键字:
一致:最好跟线上环境一样,如果不可能的话,可以减配,但是要保证架构一致。比如线上集群100台,测试环境没那么多资源的情况下,可以适量减少,比如测试环境集群2台,但是一定要是集群,不然就没意义了

专用:测试环境是性能测试专享的,其他测试不要在上面搞

4、脚本执行及监控
根据负载模型去执行相应的脚本,这里就不展开了。

5、收集测试结果
对于新人来说,只需要把测试结果提交给项目组的开发人员分析就好了。
对于有一定经验的性能测试人员,希望可以通过监控和代码走查的方式找到系统瓶颈,并给出部署的建议方案。

6、持续学习
linux知识:比如服务器kpi指标,简单监控命令,并发模型等;
架构知识:最简单的方式,自己搭建性能测试环境或者线上环境,多搞几次就熟了;
更多知识:总之遇到不懂的就学,比如数据库优化,jvm优化等知识;

接下来再说一下,重要

性能测试中怎么设置并发数,怎么合理选择并发数?

并发用户:指的是现实系统中同时操作业务的用户,在性能测试工具中一般称为虚拟用户(VirutalUser)。

并发用户跟注册用户、在线用户有很大差别,并发用户一定会对服务器产生压力,在线用户数只是”挂”在系统上对服务器不产生压力,注册用户一般指的是数据库中存在的用户。

TPS:TransactionPerSecond,每秒事务数,是衡量系统性能的一个重要指标。
事务靠虚拟用户产生,假如1个虚拟用户在1秒内完成1笔事务,那么TPS就是1,要想达到1000TPS至少需要1000个用户;

如果某笔业务响应时间是1毫秒,那么1个用户在1秒内能完成1000笔事务,TPS就是1000。因此1个用户可以产生1000TPS,1000个用户也可以产生1000TPS,主要看响应时间的快慢。

对于并发用户数的选择,可以选取线上系统在高峰时刻一定周期内使用系统的人数,这些人数可以认为是在线用户数,并发用户数取其10%就可以了。

例如在1小时内使用系统的用户数为10000,那么取10%作为并发用户数基本就够了。

对于TPS的评估,可以通过线上系统在高峰时刻10分钟内完成的业务量在单位时间的处理笔数计算出TPS,即业务笔数/单位时间(10*60)。

对于新上线系统因没有历史数据可供参考,故只能通过业务发展趋势来预判各项指标。

性能测试需要一套标准化流程及测试策略,在进行压测时一般会按照梯度施压的方式增加用户数,以此观察系统在不同压力下的各种反应,如果在没有充分评估的前提下一次加压大量用户会导致系统失败率高响应时间长,最终得到的测试结果没有太大意义。

一般情况下,大型系统(业务量大、机器多)做性能测试5000个并发用户就够了,中小型系统做性能测试1000个并发用户就足够了。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要心中有梦想,就别停下脚步。面对困难,一定要坚持下去。相信自己,不断努力,成功就在不远处。每一步都不能放松,只有付出才有回报。时间宝贵,抓住今天,创造美好的明天。

每一天都是一个崭新的开始,无论你曾经经历过什么,都不要放弃希望和努力。坚持自己的梦想和目标,相信自己能够创造出美好的未来。只有付出,才会有收获,加油!

生命并不长久,我们每个人都应该珍惜时间,不停地努力奋斗。你的努力和坚持将会化为成功的果实,无论多么艰辛,也要勇敢前行。只要心存希望,相信自己,就能超越极限,创造属于自己的辉煌。

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

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

相关文章

C++ 11(3) | 新的类功能、可变参数模板、lambda表达式

前文中我们讲述了C11中新增的右值引用,在本文中我们将继续讲解C11中的新的类功能、可变参数模板、lambda表达式。 新的类功能 默认成员函数 之前我们学习过在C中有六个默认成员函数构造函数、析构函数、拷贝构造函数、拷贝赋值重载、取地址重载、const 取地址重载…

【59天|503.下一个更大元素II ● 42. 接雨水】

503.下一个更大元素II class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {stack<int> st;int n nums.size();vector<int> res (n, -1);for(int i0; i<2*n;i){while(!st.empty()&&nums[i%n]>nums[st.t…

第13章_事务基础知识

第13章_事务基础知识 1.数据库事务概述 事务是数据库区别于文件系统的重要特性之一&#xff0c;当我们有了事务就会让数据库始终保持一致性&#xff0c;同时我们还能通过事务的机制恢复到某个时间点&#xff0c;这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。 1…

Moonbeam路由流动性

Moonbeam路由流动性&#xff08;Moonbeam Routed Liquidity, MRL&#xff09;使加密资产流动性能够从其他生态系统&#xff08;如以太坊、Solana、Polygon或Avalanche&#xff09;进入波卡生态系统。借助MRL&#xff0c;用户可以通过简洁的用户体验向/从波卡转移他们的流动性。…

横竖屏切换导致页面频繁重启?详细解读screenLayout

目录 前言configChangesscreenLayout平板问题总结 前言 前几天多名用户反馈同一个问题&#xff0c;在小新平板上无法上网课&#xff0c;点击上课按钮后就退回到首页了。了解了一下发现小新平板现在销量特别好&#xff0c;于是赶紧申请了一台测试机打算看看到底是什么问题。 最…

牛客网语法篇刷题(C语言) — 分支控制

作者主页&#xff1a;paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《C语言-语法篇》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白…

附录6-todolist案例

效果是这样的 可以添加新任务&#xff0c;改变任务状态&#xff0c;与筛选任务列表 使用vant创建的项目 使用到了bootstrap&#xff0c;首先 npm install bootstrap进行安装&#xff0c;安装后导入css与js 上中下是三个组件&#xff0c;依次是 todo_input&#xff0c;todo_li…

Python控制LitePoint IQxel-MW 无线网络测试仪

前言 由于项目需要进行WIFI和BT&#xff08;蓝牙&#xff09;的射频测试&#xff0c;所以需要开发一款支持WIFI/BT射频测试的工具。开发射频测试工具的话那肯定离不开仪表的控制。我们项目用的就Litepoint的IQxel-MW无线网络测试仪。这篇文章主要就是介绍一下如何控制仪表以及…

初探core组件:opencv - core组件进阶

core组件进阶 1.访问图像中的像素1.1 图像在内存之中的存储方式1.2 颜色空间缩减1.3 LUT函数&#xff1a;Look up table1.4 计时函数 2. ROI区域图像叠加&图像混合2.1 感兴趣区域&#xff1a;ROI2.2 ROI案例2.2 线性混合操作2.3 计算数组加权和&#xff1a;addWeighted()函…

python-segno:二维码制作

目录 二维码版本 微二维码、数据掩码、数据流、模式 微二维码 数据掩码 数据流 二维码模式 二维码背景 二维码参数 helpers方法 其他库制作及二维码读取&#xff1a;python生成和读取二维码_觅远的博客-CSDN博客 安装&#xff1a;pip install segno import segnoqr …

Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131244269 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

经典30个嵌入式面试问题

经典30个嵌入式面试问题 嵌入式系统的面试经典问题有很多&#xff0c;以下是其中的30个常见问题&#xff1a; 1. 什么是嵌入式系统&#xff1f; 2. 嵌入式系统和普通计算机系统有什么区别&#xff1f; 3. 嵌入式系统的主要应用领域有哪些&#xff1f; 4. 嵌入式系统的设计…

接口测试工具之postman

概念 接口测试是什么&#xff1f; 百度百科给出的解释是&#xff1a; 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间…

构造函数初始化列表的问题

构造函数初始化列表的问题 无法按照表达式中的算符来修改值原因基本原则由此引申的问题使用初始化列表对类成员初始化在构造函数中赋值对类成员初始化 针对构造函数传参,使用引用的情况使用初始化列表对类成员初始化在构造函数中赋值对类成员初始化 将属性也使用引用总结 无法按…

STM32开发——看门狗

目录 1.独立看门狗 1.1需求 1.2CubeMX设置 1.3函数代码 2.窗口看门狗 2.1需求 ​2.2WWDG配置&#xff1a; 2.3函数代码 3.独立看门狗和窗口看门狗的异同点 1.独立看门狗 监测单片机程序运行状态的模块或者芯片&#xff0c;俗称“看门狗”(watchdog) 。 独立看门狗本质 本…

6、DuiLib控件消息响应处理

文章目录 1、DuiLib控件消息响应处理2、基本的消息响应处理 Notify3、仿 MFC 形式消息响应 DUI_DECLARE_MESSAGE_MAP4、事件委托 MakeDelegate5、消息捕获&#xff08;拦截&#xff09;原生消息 HandleMessage 1、DuiLib控件消息响应处理 <?xml version"1.0" en…

软件测试基础教程学习3

文章目录 软件质量与测试3.1 软件质量问题的原因3.2 对软件质量特性的理解3.3 基于软件质量特性的测试3.4 软件能力成熟度模型&#xff08;CMM&#xff09; 软件质量与测试 3.1 软件质量问题的原因 软件质量问题的原因有以下几种&#xff1a; 软件本身的特点和目前普遍采用的…

AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(五):芯片型号

前言 随着汽车四化的推进,可以说汽车仪表也变成越来越智能化的一个ECU部件了。市面上的车型很多,油车发展了很多年,都有仪表,电车也发展起来了,车型也非常丰富,也都有仪表。仪表现在是作为多屏中一个屏存在的,现在车上最多的就是屏了,最大的要算中控屏了,有的还有空调…

【基础】MQTT -- MQTT 协议详解

【基础】MQTT -- MQTT协议详解 与 Broker 建立连接CONNECT 数据包CONNACK 数据包 断开连接DISCONNECT 数据包 订阅与发布PUBLISH 数据包SUBSCRIBE 数据包SUBACK 数据包UNSUBSCRIBE 数据包UNSUBACK 数据包 本文内容针对 MQTT 3.1.1 版本&#xff0c;从连接、发布与订阅等方面对协…

OpenCV做个熊猫表情

有的时候很想把一些有意思的图中的人脸做成熊猫表情&#xff0c;但是由于不太会ps&#xff0c;只能无奈放弃&#xff0c;so sad... 正好最近想了解下opencv的使用&#xff0c;那就先试试做个简单的熊猫表情生成器把~~ 思路就是&#xff0c;工具给两个参数&#xff0c;一个是人…