好奇于数据库压力测试方案,这两天一直在思考如何对数据库做压力测试。
在数据应用系统上线前,测试数据库能接收多少并发量,能够给自己信心,对上线不影响用户体验有充分的把握。清楚哪一块是薄弱的地方,知道怎么去弥补。

偶尔在 google 里面搜出来一个产品的测试方案基本用法,得以窥见成熟的商业方案。
英文链接如下:
https://support.smartbear.com/loadcomplete/docs/tutorials/getting-started/intro/basic-concepts.html

以下是对其做的翻译和理解,整理出来做个记录,算是一种思路。

对应用系统的压力测试方案:

1 recording a scenario.
录入场景:
场景就是用户在某一个应用的操作,比如注册一个新用户,或者网购下单。
当对注册新用户这一操作做了录像,那么就可以模拟多个新注册用户的操作了。
当对一个用户下单这一操作,做了录像,那么10万人同时下单的自动化测试,只要生成10万个线程,模拟下单过程就可以测试下单这一过程的压力。

重点是,如何针对应用的操作,做好数据的录入,有些数据是自增的,有些是随机的,有些可以更改,有些删除了就不能再次执行删除,这些都是数据应用的场景,包含的逻辑怎么可以被识别,并正确的录入下来,方便以后线性扩展开来?如果是微服务架构的应用,会设计到各种 http, https, websocket 的交互,给录入标准化增加了难度。

如果是自研的系统还能利用白盒测试,自主扩展;如果是第三方系统,那么就有难度了。所以暂且不论第三方系统,就以自研系统为标的,做压力测试。

2 Modifying the recorded traffic(optional)
修改录入场景的流量(可选)。有些原本录入的请求是不需要在测试环境中再次模拟发送的,可以去掉;有些请求可以做线性扩展的,来测试抗压能力。上述场景都可以在这一步编辑。

3 Verifying the recorded scenario
校验录入场景的有效性。
在第一步中,提出了很多针对数据应用逻辑识别的难点,在这一步我们就可以详细的解答这些难点了。
比如数据的自增难题,我们可以模拟自增数字,日期,名称等,来与数据应用交互,判断场景的有效性;比如新用户注册并发问题,在一个虚拟用户操作逻辑成立的基础上,模拟成千上万个虚拟用户注册的操作,来测试并发能力。

在这一步中,我们要考虑的是如何给录入的场景做模型存储。既然录入场景已经生效了,就可以抽象成模型,用来做扩展基础。

4 Creating load tests that will simulate recorded traffic.
模拟录入的场景,以此为基础,测试用户多个连贯的操作。
这一步就是真正实现测试程序了。在已经校验过的录入场景上,模拟多个连贯场景来完成应用操作,

5 Assigning recorded scenarios to desired virtual users.
分配多个虚拟用户来模拟录入场景的并发测试。
上面4步中,我们举了两个场景:新用户注册和网购下单。单个用户模拟通过,是完成自动化测试程序的第一步,多用户的模拟,需要灵活的配置,和多线程调度的编程。在此基础上,逐步增加虚拟用户,以观察数据应用的响应时间,数据库的CPU,Memory,IO的增长趋势。

一台计算机的并发毕竟是有限的,借助云客户端,可以模拟更多用户的访问量。

6 Running load tests

7 Analyzing load test results
分析多用户访问量的测试结果。
将第 5 步的监控指标都撰写成报告,观察指标的趋势。

数据应用系统的压力测试方案相关推荐

  1. WEB网站压力测试方案 压力测试如何换算并发用户数

    http://wenku.baidu.com/view/bedf1a93daef5ef7ba0d3c29.html 压力测试通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别 ...

  2. 基于Kubernetes的分布式压力测试方案

    压力测试是用来检测系统承载能力的有效手段.在系统规模较小的时候,在一台空闲的服务器上使用[ab],[wrk],[siege]等工具发起一定量的并发请求即可得到一个初步的测试结果.但在系统复杂度逐步提高 ...

  3. 压力测试到底测什么?压力测试方案是什么?

    云计算时代,企业对于应用性能要求倍显严格.如何保障企业应用高效运行,压力测试环节必不可少,那么压力测试到底测什么?如何制定适合自己都压力测试方案呢? 首先,进行总体测试规划,规划集成测试的目的.测试时 ...

  4. 关于秒杀系统的压力测试

    使用jmeter工具来进行秒杀系统的压力测试 首先是对暴露秒杀地址所能在线用户的测试,测试结果如下图所示: 当我设置180个线程1秒内开启并且进入秒杀界面的时候,发现Throughput的值是比样本的 ...

  5. 数据输出延迟时长测试方案

    一.测试方案: 1.测试设备与接收设备同时对天搜星定位,时间系统一致(100ns左右可忽略不计): 2.测试设备发生需要测试的协议(含时间信息): 3.接收设备解析协议数据获取发送时间,与当前接收设备 ...

  6. linux搭建压力测试,安装GTKStressTesting:对Linux系统进行压力测试变得更加容易

    GTKStressTesting(GST)的目标是将您需要了解的有关CPU.RAM和主板的所有信息整合到一个屏幕中,包括使用情况监视器.温度传感器等.您可以使用该应用程序运行一些压力测试,如果您想了解 ...

  7. freeswitch带媒体压力测试方案

    概述 原本的计划是使用sipp完成带媒体压力测试,但是实际测试过程中发现sipp的媒体处理功能有问题(也有可能是我使用的姿势不对). sipp在带媒体的情况下(600路并发开始),出现大量的不响应和响 ...

  8. 使用ab做web系统的压力测试

    如何使用 比如,要压测的地址:http://localhost:8080/web/test/ajax/testDB.do 使用ab模拟并发的压力: ab -n1000 -c100 http://loc ...

  9. 免费的系统压力测试方法/工具有哪些?企业如何做好软件压力测试

    对于很多企业测试人员来说,在做软件压力测试工作时,压力测试方法/工具不在乎多与少,而在于是否能够满足自己的产品检测需求,能够派上用处的压力测试工具就是好工具.那么好用的压力测试方法/工具有哪些,企业如 ...

  10. docker 端口映射 udp_Docker领路,走进压力测试的现代化 | 51上头条

    摘要:Docker技术为软件开发.测试提供了非常便捷的功能,使用现成的镜像让我们的工作事半功倍.本文针对在项目中进行压力测试使用Docker进行说明,重点记录从手工搭建环境,到使用Docker提高测试 ...

最新文章

  1. ARouter::Compiler No module name, for more information, look at gradle log
  2. 彻底搞懂MySQL分区
  3. 极光:2021双十一电商行业研究报告
  4. mysql数据库 web asp.net,使用基于asp.net web的应用程序的mysql数据库
  5. markdown一边写一边预览_如何用Markdown轻松排版知乎专栏文章?
  6. linux读写文件实例,Linux在应用层读写寄存器的方法及实现实例
  7. 学习日志-中缀表达式转后缀表达式并计算结果
  8. 基于Xml 的IOC 容器-开始读取配置内容
  9. 修改hosts 流畅使用coursera
  10. vue 断开正在发送的请求_vue 发送请求频繁时取消上一次请求
  11. Java字符串替换前缀,从Bash中的字符串中删除固定的前缀/后缀
  12. mongodb java驱动_Java操作MongoDB之mongodb-driver(一)
  13. windows找不到文件gpedit.msc_极简技术|电脑文件全搜索,没有找不到的东西
  14. 洛谷 P2894 酒店 Hotel
  15. SWF文件反编译调试记录
  16. Android实现百度地图定位服务
  17. 解决Win10 /Win11 Fastboot驱动问题
  18. 苹果系统摩尔庄园是什么服务器,摩尔庄园手游iOS
  19. archLinux安装记录
  20. maven在win10上的安装和配置

热门文章

  1. 计算机报名照片像素大小,证件照尺寸怎么修改-三种方法搞定证件照要求,让你不用再为图像分辨率和大小发愁!...
  2. Web前端 HTML 基本结构标签
  3. sfp寄存器_SFP+-光模块测试指导
  4. BroadcastReceiver生命周期探讨
  5. AcWing Django框架课第一节笔记
  6. 2021腾讯算法大赛
  7. Translation QA 检查
  8. 【区块链开发指南】序言
  9. 深入理解计算机系统——地址翻译
  10. 如何利用计算机模拟分子生物学,利用计算机模拟研究氨基酸序列对于朊病毒分子间聚集的影响...