13年测试老鸟,接口并发性能测试分析总结,不要再走弯路了...


前言

1、并发测试定义

目的:
是以并发为手段进行接口测试行为,通过测试行为发现接口在并发场景下导致的功能问题。

类型:
①点层面上:同一时间做某件事;
例:早上7:30 ,所有的学生都升国旗

②线层面上:一个时间做不同的事,但同时对服务器产生压力;
例:一个时间点,有的学生跳皮筋,有的玩足球

并发与性能:并发测试不等同于性能测试,性能测试也只是并发测试的一个小类。

2、并发测试分类

功能并发测试:

解析:要先进行测试单业务功能场景的并发测试,在进行混合业务功能场景的并发测试。
目的:为验证系统功能是否符合需求规格说明书的要求;

性能并发测试:
解析:同时满足某些系统性能指标的前提下,让被测对象承担不同的工作量,以评估被测对象的最大处理能力及是否存在缺陷。
目的:为验证系统性能指标是否符合需求规格说明书的要求;

稳定性并发测试:
解析:判断测试系统的长期稳定运行的能力。
目的:为验证系统稳定性是否符合需求规格说明书的要求;

异常性并发测试:
解析:模拟系统在较差、异常资源配置下运行,以评估被测对象在资源不足的情况下的工作状态。
目的:为验证系统的异常响应机制是否满足需求规格说明书的要求。

3、设计思路整理

1)需求分析

①首先找到并发测试对象,了解需求测试的功能有哪些,可以按照业务功能整理,不必深入细节。

②其次描述测试对象的重要性,如要求严格质量的核心功能、高频使用功能、占用系统资源较多的功能等。

③最后进行测试对象拆分,比如购买商品可以拆分成:搜索商品、锁定库存、提交订单、发送支付指令、接受处理支付结果、业务流水、短信及站内信通知、VX推送结果等。

2)环境需求分析

明确重点测试对象,预先设置基础数据及大量历史数据、模拟真实环境。

3)性能指标需求分析

分析性能指标是否合理。
可以从历史数据的这几个方面考虑:TPS、页面访问量、并发请求数等,从而来判断需求指标是否合理,安排优先级。

4、测试方案设计

1)测试策略

并发测试的准备工作:
请求顺序、请求之间互相调用关系、数据流向、有没有调用外部系统等后,需要明确重点测试对象,预先设置基础数据及大量历史数据,模拟真实环境等。

测试策略执行,一般涉及以下4个阶段:
①对于功能并发测试:要先进行测试单业务功能场景的并发测试,在进行混合业务功能场景的并发测试。

②对于性能并发测试:同时满足某些系统性能指标的前提下,让被测对象承担不同的工作量,以评估被测对象的最大处理能力及是否存在缺陷。

③对于稳定性并发测试:判断测试系统的长期稳定运行的能力。该策略强度较小,一般趋向于客户现场日常状态下的压力强度。

④对于异常性并发测试:模拟系统在较差、异常资源配置下运行,如人为降低系统工作环境所需要的的资源,网络带宽、系统内存、数据帧等,以评估在资源不足情况下的工作状态。

不同的测试阶段,测试人员关注的测试目的也是不同。所以对测试人员来说,测试思想才是最重要,有了测试思想,才会有好的测试方案。

2)测试方案

以两轮测试为例:
第一轮测试,以接口文档驱动测试,测试步骤及要点如下。

①编写接口测试代码:核对每个接口传入参数控制:长度限制、格式、必填项限制、正常值范围限制等。同时,确认报错提示信息是否准确、到位;

②异常数据测试:如渠道值设置负数、属性设置不存在、网络断开、数据库锁表等情况,检查数据是否出现异常;

③逐个接口进行并发事务测试:检查账户金额,用户流水、对账流水数据。核对数据的与用例调用结果是否一致;

④复合接口并发测试:将各种充值、交易类型的接口按照一定的顺序进行并发,校验账户收支金额、流水是否与用例调用结果是否一致。

第二轮测试,以业务场景驱动测试,测试步骤及要点如下。
①统一动作并发:相同订单并发支付,并发退款;
②混合交易场景:秒杀抢购,集中退货、到货确认;
③绕过页面操作:通过抓包,抛送异常值进行交易测试。

5、指标分析

1)整理并发需求

需求内容:
中午和晚上是订餐的高峰期,所以会有很大的并发订单量。为了保证订单成功率、响应速度等因素,我们要进队高峰期的订单量进行并发性能测试。

性能指标需求:
① 打开速度<3s,订单提交成功<5s;
②订单成功率达到99.5%以上;
③在100个并发用户的高峰期,订单处理能力至少达到900TPS。

2)提取性能指标

以100个外卖订单为例,需要提取的并发指标:
①并发订单数
②成功订单数
③成功订单响应时间
④订单成功率
⑤成功订单的总响应时间
⑥成功订单的平均响应时间
⑦Tps

3)性能指标分析

①并发订单数:即自定义的并发数,把并发100次,设置为10个线程,每个循环10次;
②成功订单数:就是获取响应值为成功的请求,先定义一个success_count ,初始值为0,如果成功的话执行+1;

③订单成功率:成功订单数/总的订单数成功;
④订单总响应时间:每个成功订单的响应时间之和,所以我们定义一个sum_time,初始值为0.00,然后把每次成功的响应时间加起来成功;

⑤订单平均响应时间:成功订单总响应时间/成功订单数;
⑥TPS:成功并发数/成功订单平均响应时间;
⑦订单响应时间:在请求之前,获取一次时间,在断言成功之后,再次获取一次时间,这样二者之差,就是订单的响应时间。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在追求梦想的道路上,每个人都会遇到困难和挑战。但请记住:只有经历过风雨洗礼的人,才能看到最美的彩虹!所以,请勇往直前,迎接每一个新的挑战吧!

无论你现在处于何种境地,都请相信:只要心中有梦想,脚下就有路。所以,请坚定信念,勇敢前行,用汗水和智慧去书写属于自己的辉煌篇章!

人生就像一场马拉松,不在乎起点有多高,只在乎终点是否达到。因此,请坚持不懈地奔跑,用毅力和勇气去实现自己的梦想,让生活因你而精彩!

猜你喜欢

转载自blog.csdn.net/shuang_waiwai/article/details/134711969