• 0
  • 0
分享
  • 压力测试流程——软件测试圈
  • TIMI 2022-08-03 16:49:59 字数 1803 阅读 2392 收藏 0

一、压测流程

可参照上篇压测对抗流程

二、压测需求

需要明确需要压测的环境

需要压测的接口,其中包含接口的入参

需要明确接口的预计qps

需要明确线上机器配置

三、压测准备

3.1、服务端开发准备:

1.根据需要测试的接口,决定需要部署哪些相关依赖服务

2.测试接口对应的服务、接口

3.相关配置

4.相关数据库

5.需要的机器整理,其中包含机器的配置,需要几台机器

3.2、前端开发准备:

1.测试的接口和服务应用

2.域名

3.需要准备的机器

4.根据需要测试的接口,决定要部署哪些相关依赖

3.3、测试准备:

1.准备压测的测试方案和测试计划

2.通过接口确认压测的场景,其中包含每一个接口需要测试的场景,预计接口需要的压测线程。通过测试场景确认测试方案。

3.根据测试计划准备测试脚本

4.根据每一个接口的情况准备对应的测试场景。

5.根据测试场景准备需要的测试数据。其中会包含登录账号相关,接口返回有数据相关等。建议可以将线上的数据库直接copy一份到压测环境中

6.测试申请施压机器的权限

7.施压机上准备压测需要跑的工具

四、压测方案和计划

4.1、编写压测方案和计划

1.压测方案和计划的模板查看

2.在测试方案中将信息进行整合和处理,其中包含需要测试的接口,每一个流程对应的时间节点。

3.测试方案和测试计划确定后需要跟对应的人员(包含服务端开发、前端开发、测试人员、前端运维、服务端运维等)进行评审,确认最终的流程的时间节点。

4.根据测试计划中的时间输出对应的结果。其中包含服务券和前端代码部署、机器申请和部署、测试的测试脚本输出

4.2、测试编写测试脚本

1.确认测试接口是否依赖于登录,是否需要登录信息

2.确认需要测试的接口属于atop接口还是http接口。

3.确认需要编写哪些脚本

4.调试测试脚本

5.自动化脚本或者jmeter脚本编写,可查看jmeter使用

4.3、测试验证测试脚本

1.在日常环境对测试脚本进行验证,确定脚本能够正常跑

2.对测试接口需要的准备数据进行整理

3.对测试接口需要的断言进行准备

4.4、施压机上对压测环境的验证

1.将测试脚本中对应的域名和数据等换成压测环境的数据

2.在压测环境中对环境和脚本进行验证

3.与开发调试压测环境中的问题,并调试脚本问题

4.5、在压测环境中进行模拟压测

1.使用一个接口进行模拟压测,确认需要收集的图标信息、结果是否满足预期

2.确认施压机和压测机器是否正常,是否需要更换

3.确认需要采集数据的采集

4.确认断言方式是否ok

五、压测开始

5.1、正式压测:

1.开始正式压测,将各路人马(开发、运维、DBA等人进行封闭压测)

2.针对压测的接口进行决定接口压测的顺序

3.压测中需要逐渐增加线程数量

4.在压测过程中观察实时的qps和报错相关,并通知开发进行查询对应的接口响应时间。

5.根据接口的链路分别通知对应的人员进行查看压测过程中其接收时间、响应时间等。

5.2、当次压测结果分析:

1.当次接口压测结束后,对结果进行分析,确认压测后的qps、报错率、10%、50%、90%用户的响应时间

2.开发寻找对应浪费的时间,当场进行优化后,可以针对此接口在进行压测,以便找到性能瓶颈问题。

3.压测结果最终是需要找到最大的qps和开始出现报错的并发数

4.当前线程数对应的线程数,如没有达到对应的qps要求,可根据qps进行决定增加多少线程数。若线程数增加后,qps没有提高,大致已经找到qps的极限。

5.3、稳定性测试:

1.找到比较稳定的qps对应的线程数,进行稳定性测试

2.稳定性测试与压测的区别在于持续的时间。

3.可通过稳定性测试进行观察持续性调用接口时系统的表现。

4.后续可根据稳定性测试和压测的qps进行计算出对应的每日能够承受的日活量。

六、压测后测试报告整理

1.测试报告整理

a.对此次压测进行整理测试报告

b.测试报告中需要记录压测对应的时间节点、此次压测对应的qps、此次压测中的错误率

c.此次压测10%、50%、90%用户的响应时间

d.压测过程中出现的毛刺时间节点

e.压测过程中曲线不正常对应的原因。

f.此报告需要开发、测试同步进行整理

g.测试记录压测数据和图标

h.开发记录对应系统的cpu使用率、负载、数据库负载等信息。

i.测试报告模板


作者:weixin_45879397

原文链接:https://blog.csdn.net/weixin_45879397/article/details/123011905

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 摘要:通过自动化技术简化测试工作的一个工具是Selenium。阅读更多内容,了解web自动化测试的好处,以及为什么Selenium可以成为帮助不同规模和行业的组织进行web自动化测试过程的解决方案的最终选择。你如何确保你的网站提供一致的结果,并帮助你的客户参与到这个数字时代?即使你已经在创建一个包含详细功能的网站上投入了大量资金,高级的网站测试是唯一让你有信心和保证你的网站在功能和性能方面如预期的那样运行的方法。更具体地说,web应用程序测试是一种允许你识别网站主要问题的实践。通常,这些问题与UI(任何影响用户体验的东西)、安全漏洞(敏感数据暴露、不安全组件等)以及兼容性或性能瓶颈(兼容性问题...
            1 0 1187
            分享
          • 12月19日消息,美国当地时间周日,推特宣布将禁止用户在其平台上免费推广其他社交媒体,违规者将被要求删除推文,严重者将被封禁账户。今年10月末,在埃隆·马斯克(Elon Musk)斥资440亿美元收购了推特后,许多用户在推特上分享他们的其他社交媒体账户。推特在周日的声明中表示:“我们认识到,我们的许多用户在其他社交媒体平台上都很活跃。然而,我们将不再允许某些社交媒体平台在推特上免费推广。”该公司继续称:“我们将删除仅仅为了推广其他社交平台而创建的账户,以及包含下列平台的链接或用户名的内容,Facebook、Instagram、Mastodon、Truth Social、Tribel、Nostr...
            0 0 1068
            分享
          • 一.背景在做接口测试的时候,有些接口向后台请求数据的时候,是需要用户在登录情况下才有数据返回。 以电商平台为例,用户的个人中心,用户的订单列表,用户的支付信息等等,所有用户维度的数据都是需要登录态。 本文主要是探索接口测试过程中需要登录鉴权的情况。二.接口测试举个例子,现在有个获取订单列表的接口,需要用户登录下才能获取到数据。 针对这种接口的测试步骤基本可以分为:抓包->postman构造请求->完成测试。1.抓包使用任意的抓包工具,或者简单粗暴直接浏览器F12打开调试工具抓包。示例一:使用Charles抓包找到Contents下面的Headers,可以看到请求的格式(GET),接...
            0 0 4248
            分享
          • 读者提问:『阿常你好,使用 Jmeter 做性能测试,如何模拟多个不同的用户同时登录,总共有几种方法 ?』阿常回答:阿常所知的方法有如下两种:1、CSV Data Set Config本地创建文件,保存为 csv 格式,里面保存用户名和密码。CSV Data Set Config 选择本地创建好的文件,设置变量名。(后续在需要传参的请求中,引用变量 ${username},${password})2、创建JDBC请求获取登录账密Jmeter 创建JDBC请求获取登录账密,结果存储到变量中,依次传给登录接口。具体可以查看阿常之前写过的文章,jmeter创建JDBC请求,返回多...
            0 0 2833
            分享
          • 跨浏览器测试是一种测试,需要大量的精力和时间。通过不同的浏览器,操作系统,设备,屏幕分辨率测试Web应用程序,以评估针对各种受众的Web内容呈现的过程是一项活动。特别是如果手动处理。使用Selenium进行的自动跨浏览器测试可以帮助您节省例行测试活动的时间,并帮助您缩短回归测试的时间。但是,人们很少喜欢变化。如果手动测试在您的组织中很流行,那么当您要求他们实施测试自动化时,管理层显然会提出问题。测试自动化虽然非常有益,但通常可能会证明是昂贵的,但值得吗?在说服高层管理人员的同时,您可能会发现这是一个难题。在开发Web应用程序时,将需要您提供使用Selenium进行测试自动化的有效ROI,并通过...
            0 2 2353
            分享
      • 51testing软件测试圈微信