新手第一次做性能测试?性能测试流程详全,从需求到报告一篇打通

news/2025/1/15 15:26:41/

目录:导读

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


前言

1、确认需求

确定性能需求和性能测试方案、需要确定性能测试范围(覆盖哪些场景)、性能测试策略、并发用户数和加压方式。

时间、人员、任务的分配安排,一般在总体测试计划中会预留性能测试的时间。性能测试方案是开展性能测试前的核心内容,决定着性能测试如何开展的指标标准。

其主要包括性能需求调研、性能测试范围、性能测试策略、并发用户数和加压方式、性能测试计划、用例等。其中性能测试方案中最重要的部分是计算并发用户数。

在性能测试有个核心内容也是在谈性能测试时绕不过去的问题,就是并发用户数的计算。目前做性能测试采用的比较多的并发用户数的评估策略是80-20法则。
通过与项目团队(含客户、产品)评估出系统高峰期和高峰时段,得到该高峰时段的用户数量。

假设本电商系统高峰时段为双十一上午10点为高峰期(做秒杀/团购活动)的用户数量是10W用户量,高峰时段为15分钟。

那么我们可以通过20-80法则来计算并发用户数,即80%的用户会在20%的时间内完成交易,计算结果为:(10W80%)/(15分钟60秒20%)=80000人/180秒=444.44人。

因为公司产品不只是为了满足当前的性能需求,还要能够满足未来3年的性能需求,而公司业务是增长的(不增长会被打死的),预计增长为20%(领导说了算,他开心就好),那么3年之后的并发用户数为:444.44人 * 1.2 * 1.2 * 1.2 = 768人 ,则得到每秒并发用户数768人。

由上可知,我们在线程组中设计的线程数为768,Ramp-up值为1,持续时间为10分钟(通用标准)。

2、脚本录制

录制性能测试脚本,增强脚本使性能测试脚本尽可能真实接近性能测试的实际情况(参数化、关联、定时器、集合点、断言)。

3、参数化

csv数据文件设置;
用户变量和用户参数;
函数助手;

4、关联

前面响应数据的提取:在JMeter通过在前面请求中添加后置处理器创建正则表达式提取器,正则表达式提取器中包含引用名称即参数的名称,可以任意填写。

正则表达式要根据响应来填写,响应在查看结果树中可以获取,在查看结果树中对响应使用RegExpTester模式查看,获取到要关联的数据及左右边界,将要关联的数据使用(.*?)来替代。模板一般为111,匹配数字一般为1后面。

请求数据的关联:把需要关联的请求数据使用${}正则表达式的引用名称即参数替代即可。

5、断言

响应断言的操作主要包括四种:
包含:预期结果应该包在实际结果当中
匹配:使用正则表达式进行匹配
Equals:完全相等(很少用)
Substring:与包含差不多,但不能使用正则表达式匹配

6、运行

运行性能场景,收集性能测试结果(聚合报告、每秒活跃线程数、每秒事务响应时间、每秒平均事务数、每秒点记录、吞吐率),分析性能瓶颈(通过图表分析)。

出具性能测试报告。
过程描述、图表加文字说明、缺陷分析。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要你心怀梦想,勇往直前,就一定能够取得成功。即使前路坎坷,也不要轻易放弃,要坚定信念,迎难而上。记住,奋斗不只是一种状态,更是一种态度。让我们一起为了梦想而努力吧!

只有不停地努力,才能让梦想变为现实。每一步都要踏实前行,不断超越自己,勇往直前,拥抱挑战。坚持不懈的奋斗将创造属于你的辉煌人生。

只有你自己能够决定你的未来,所以用你的热情和毅力去追逐你想要实现的梦想吧!不要害怕失败,因为每一次失败都是成功的一个步骤。记住,只要你愿意努力,就没有什么是无法实现的!


http://www.ppmy.cn/news/405942.html

相关文章

pink老师 js p85思考题

var str ;for (var i1; i <10; i) { //外层循环负责打印五行for (var j 1; j < i; j) { //里层循环打印的个数不一样 j1str str ★;}//如果一行打印完毕5个星星就要另起一行 加\nstr str \n;}console.log(str); 内循环中 j < 10改为j < i var str ;var nu…

P85指针和数组 #C语言的学习

一.c语言规定允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较&#xff0c;但是不允许往数组的第一个元素之前进行比较 二.数组名是数组第一个元素的地址 三.[ ]是一个操作符&#xff0c;支持交换律arr[2]2[arr] 四.二级指针 int main(){ int a…

谷粒商城P85问题记录—发布商品时规格参数不显示-2022/4/8

谷粒商城P85问题记录—发布商品时规格参数不显示 这一p有2个问题&#xff0c;折腾了很久 问题1 &#xff1a;数据库表中不存在 valueType这个键 但是接口文档里是需要提供这个键&#xff08;而且是不能为null&#xff09; 所以需要&#xff1a; 1、在数据库表pms_attr添加va…

P85程序出错的处理机制

3.定义条件和处理程序 3.1错误演示 #2.1错误演示&#xff1a;#错误代码&#xff1a; 1364 #Field email doesnt have a default value INSERT INTO employees(last_name) VALUES(Tom);DESC employees;#错误演示&#xff1a;DELIMITER //CREATE PROCEDURE UpdateDataNoConditi…

自用--选择问题(P85)

寻找T的第k小元素 寻找第n/2小元素--》中值问题 ks rs就是第k小元素 k<s rs在左边序列中 k>s rs在右边序列中 #include<iostream> using namespace std;int Partition(int r[],int low,int high){//对数据进行划分 //无序数组 左边 右边 左小右大int ilow,jhigh…

C语言进阶--指针(C语言灵魂)

目录 1.字符指针 2.指针数组 3.数组指针 4.数组参数与指针参数 4.1.一维数组传参 4.2.二维数组传参 4.3.一级指针传参 4.4.二级指针传参 5.函数指针 6.函数指针数组 7.指向函数指针数组的指针 8.回调函数 qsort函数 9.指针和数组笔试题 10.指针笔试题 前期要点回…