【性能测试】登录接口性能压测+选择并发用户数总结...

news2024/9/27 19:23:59

目录:导读

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


前言

1、需要登录的接口性能测试

在实际业务场景中,很多业务都需要先登录才能正常使用。
在做接口性能测试的时候,需要测试登录后才能访问的接口肯定是无法避免的。

那么,我们怎么才能完成先登录后发出请求的性能脚本呢?

思路:
1)发出登录请求
2)提取响应的认证内容
3)后面的请求引用认证内容

提出问题:
做性能测试,是模拟多个虚拟用户实现并发的,那我们的登录接口也需要重复发起吗?

可以类比一个场景:
做UI自动化的时候肯定也需要登录的,一般我们会将登录放到全局前置来操作,所以整个测试流程下来只需要登录一次。

关键点:
一个用户只需要登录一次,避免重复发起登录请求,造成不必要的资源消耗。
最简单的场景

所有虚拟用户使用同一个用户账户,每次都是先调登录接口,再调登录之后接口请求吗?

如果你的系统,业务上允许一个用户在不退出情况下,反复登录,且没有登录次数限制,这种最理想的情况,你完全可以这么做

做完了,你可能会想,我不用一个账户,100个并发用户数,我就用100个独立账户,每个用户拥有独立账户每个虚拟用户都试用一个独立账户,还是先调登录,再调登录之后接口请求,这样可以吗,要怎么做?

在你的线程组里面用上csv数据文件设置读取出用户账户信息,或者用JDBCrequest从数据库获取出用户信息。

然后再在登录接口中用取出的用户信息来登录。
这样,在性能测试时,就会循环使用你用户总量中的用户来发送请求。
这样,理论上是行的通的,但是,现实有些骨感。

因为做性能测试,使用的是高并发,可能存在竞争关系,可能出现后续接口,使用的关联参数取不到值的情况。

从而导致请求报错,而这种错误,不是性能测试服务器响应报错,而是脚本问题导致报错,影响我们对性能结果的判断。

那么,我们就会问,还有没有其他办法呢?

终极办法:

上面也说了一个关键点:一个用户只需要登录一次。
既然我们一个线程就是一个模拟用户,那我们只需要针对每个线程做到只发出一次登录请求,其他接口可以无限次发起。

具体步骤
1)在线程组下添加一个逻辑控制器【仅一次控制器】
2)在该逻辑控制器下添加登录请求
3)登录请求下添加提取器,提取登录响应内容
4)和逻辑控制器平级下添加需要并发的请求

2、性能测试选择并发用户数

并发用户:指的是现实系统中同时操作业务的用户,在性能测试工具中一般称为虚拟用户(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/1323720.html

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

相关文章

jvm相关命令操作

查看jvm使用情况 jmap -heap PID 查看线程使用情况 jstack pid 查看当前线程数 jstack 21294 |grep -E (#[0-9]) -o -c 查看系统线程数 top -H top -Hp pid #查看具体的进程中的线程信息 使用 jps 命令查看配置了JVM的服务 查看某个进程JVM的GC使用情况 jstat -gc 进程…

配置 vim 默认显示行号 行数 :set number

vi ~/.vimrc 最后添加一行 :set number保存退出,再次 vim 打开文件,默认就会显示行号了

ctfshow(web190-web200)

目录 web190 web191 web192 web193 web194 web195 web196 web197 web198 web199 web200 web190 为什么要有admin呢 这也是试出来的 这个admin必须是数据库中存在的 这样才能使用布尔注入 因为这个时候登录 有两种返回结果 一种密码错误 一种就是用户名错误 admin an…

自动化测试工具-Selenium:Selenium的核心三大组件详解

目录 1. WebDriver 1.1 WebDriver的通信方式 1.2 WebDriver的功能 1.3 W3C推荐标准 2. Grid 3. IDE Selenium 是支持 web 浏览器自动化的一系列工具和库的综合项目。官方对Selenium认可的三大组件或API分别是:WebDriver、Selenium IDE、Grid。其中&#xff0c…

vue-springboot大学生兼职招聘评价系统_b8t93

线上管理大学生兼职平台设计与实现提供了良好的发展空间,随着人们生活质量的提高,人们对服务质量的要求越来越严格。人们希望拥有更好的大学生兼职平台体验。而且,大学生兼职平台有着使用常规电话交流比不了的便捷高效简单等优势。大学生兼职…

VS+Qt 打包Python文件

书接上回,调用C调用python,下面来谈谈随exe文件打包。 先说下环境vs2019Qt5.12.11python3.8,这里需要注意如果你要适配Win7的系统,python最好是9以下,以上不兼容,也没时间找方法,找到评论说下 如…

I Doc View在线文档预览任意文件读取

漏洞简介 I Doc View在线文档预览是一款在线文档预览系统,可以实现文档的预览及文档协作编辑功能。其存在任意文件读取漏洞,可通过该漏洞读取服务器各敏感文件 资产测绘 title“在线文档预览 - I Doc View” 漏洞利用 http://your_ip/doc/upload?t…

Nginx快速入门:访问日志access.log参数详解 |访问日志记录自定义请求头(三)

0. 引言 在企业的生产环境中,我们时常需要通过nginx的访问日志来统计流量、排查调用问题等,而nginx默认的日志格式所包含的信息远无法满足我们使用,因此常常需要对日志进行自定义,所以今天我们就来看如何自定义nginx的访问日志格…

移动端自适应

1.普通html页面 一般使用px定义,不会进行适配 移动端项目:从不同的终端保持页面的一致性(自适应),使用rem相对单位,rem是相对于根节点html的font-size的值进行动态换算的值 2.普通html页面进行适配 普通页面中&…

解决方案架构师 vs 技术架构师,有何区别?

Salesforce架构师角色是生态系统中常见的职业目标。架构师因其丰富的Salesforce知识以及在平台上构建可扩展解决方案的能力而广受认可。 解决方案架构师和技术架构师是Salesforce生态系统中最常见的两个架构师角色,这些角色有一些重叠,但它们完全不同&a…

Seata使用详解

分布式事务介绍分布式事务的优缺点CAP理论介绍Base理论介绍CAP和BASE之间有什么区别Seata介绍Seata支持的事务模式介绍Seata的架构Seata应用场景Seata集群部署Seata集群部署的优缺点Seata在Java中的使用案例Seata在Java中的代码示例Seata与SpringBoot2.x的整合Seata与SpringBoo…

winfrom大恒工业相机SDK二次开发、C#联合halcon开发

一、开发环境 1.在大恒图像官网下载SDK安装包,安装SDK后,打开安装目录找到Samples文件夹,然后找到Samples\CSharp SDK\x64\DoNET\.NET4.0文件夹下找到GxIAPINET.dll,如图: 2.打开VS2019软件,建立winfrom项…

Linux系统管理、服务器设置、安全、云数据中心

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 我们来快速了解liunx命令 文章目录 前言解析命令提示符linux的文件和目录文件和目录管理文件操作 进程管理命令系统管理网络管理 书籍推荐 本文以服务器最常用的CentOS为例 解析命令提示…

JDBC简单使用

1. 首先导包,放在src -> lib下 打开项目结构,添加导入的包为库 基础语法 Statement statement conn.createStatement(); ---------------------------------------------- 1.execute(String query)方法用来执行任意的SQL语句查询,如果…

AcrelEMS-HIM高速公路综合能效系统在新晋高速公路快村营至营盘段项目的应用——安科瑞 顾烊宇

摘 要:我国新型工业化、信息化、城镇化和农业现代化加快发展,经济结构加快转型,交通运输总量将保持较快增长态势,各项事业发展要求提高国家公路网的服务能力和水平。高速公路沿线的收费站、互通枢纽、服务区、隧道等配置的供配电、…

2024Java85w字面试宝典+从入门到架构师的学习路线图+Java开发求职手册,我终于做出来了!

这几年中,我遇到了很多不同困境中的Java开发者,让我有了一个思考,在做教育这件事情上,我的目标是什么?为此,我思考了很久。 然后今年有很多的粉丝或者一些学员来找我,说今年的面试很困难&#…

【工作流Activiti】MyActivit的maven项目

1、Idea新建一个项目MyActivit的maven项目 2、安装插件 在 idea 里面&#xff0c;activiti 的插件叫 actiBPM&#xff0c;在插件库里面把它安装好&#xff0c;重启 idea 就行了。 3、 maven 项目中&#xff0c;并更改 pom.xml。pom 中依赖如下&#xff1a; <?xml version…

C#中的协变和逆变

这两个都是只能使用在接口和委托上 个人理解&#xff1a; 协变&#xff1a;出参&#xff0c;让基类使用范围变大&#xff0c;将父类/基类当作子类一样使用 --为什么这样规定呢&#xff1f; 我的理解&#xff1a;真正实现的是子类&#xff0c;子类拥有所有的方法&#xff0c;却…

pytorch网络的增删改

本文介绍对加载的网络的层进行增删改, 以alexnet网络为例进行介绍。 1. 加载网络 import torchvision.models as models alexnet models.alexnet(weightsmodels.AlexNet_Weights.DEFAULT) print(alexnet)2. 删除网络 在做迁移学习的时候&#xff0c;我们通常是在分类网络的…

安全狗waf

安全狗waf安装 1、先将phpstudy 以管理员身份运行&#xff0c;将运行模式修改为 “系统服务”&#xff0c;点击“应用”。 2、下载安全狗&#xff0c;安全狗-领先云安全服务与解决方案提供商|云原生安全|服务器安全|网站安全|态势感知 3、安装安全狗&#xff0c;以管理员身份运…