更好搭建负载测试环境的六个技巧

news2024/11/15 12:28:11

如果你如我昨天谈到的客户一样,花费了24到48个小时用于每个负载测试环境的搭建,那你的测试及构建部署能力绝对是受限的。

搭建一个仿真测试环境对于做好负载测试非常重要,同时它也是一个非常具有挑战性的任务,需要考虑技术解决、组织和安全问题等。本文可作为一个更快更有效部署负载测试环境的路线图,以便你更快的进行安装部署。

使用你的生产环境

是的,这作为第一条是有点尴尬,因为这很少行的通。你的生产环境同是做测试的理想环境,这没必要重复,里面包涵了经常被忽略的影响性能的后台进程和环境变量。

在晚上和周末,我们的一些客户使用他们的线上环境进行负载测试。这绝对可行,可能情况下,这也是我做负载测试的第一选择。   

使用生产环境做测试,需要保证:

  • 备份里面的数据,以便你测试完后能立即还原到真实环境。
  • 隔离和禁用第三方应用(如支付系统)。例如,当测试一个电商网站,你需要删除包括数字签名和宝贝支付交易的所有测试数据。或者,你可以使用存根来模拟这样的交易。如果这也不行,你不可避免的要运行这些事务——只能通过第三方完成的,那么把资金转移到指定的一个账户。
  • 使用虚拟实体(如用户账户)来模拟你要进行的测试活动。

精确的复制生产环境

推断负载测试结果是非常冒险的事。如果你运行测试在1G两核的机器上,然后去想象运行在2G四核上的结果?这几乎是不可能知道的。

所以,你需要复制生产环境的一切,包括:机器配置,环境配置,数据库,网络结构,负载均衡器,防火墙,等等。一个办法是,为生产环境创建一个完整的镜像来复制到你的测试环境。

复制一个客户环境

让我们假设你的产品是一个内部部署软件,如一个大学的学生信息管理系统,提供如注册、管理等服务。这时进行如研究、开发或质量团队模拟真实环境测试,都会变得非常困难。最有效的办法就是复制客户的生产环境。

我们可以尝试保证保护抽样客户的隐私并移除重要数据,以及提供折扣和免费支持服务等手段,来获取在客户的环境下进行这些工作。通过客户的协助,来保证测试的是真实的客户环境,这将是一个双赢的局面。

从零开始建立真实环境

在一些情况下,你没有生产环境用于复制,那么你必须要从零开始建立一个负载测试环境。如处于开发早期你没有生产环境,也没有足够的客户,或者因为安全方面的限制你没能获得真实的生产环境。

在这种情况下,要确保:

  • 考虑可能要做测试的不同部署类型。如每次测试,用户配置数量的地址,数据库的记录条数等。
  • 尽可能创建典型生产环境配置——包括安全,硬件,软件,网络,其它部署应用,负载均衡等。
  • 使用自动脚本生成数据来代表真实环境数据。
  • 考虑程序运行的可能情况。通常,性能下降归咎于周期性任务,如数据库备份或者每周自动生成的商业管理报告。这些问题没有在测试中发现,那是因为这些周期性任务从没在测试环境中考虑到。
  • 加入线上系统中的第三方集成应用,如支付系统,报告和支持性插件等。

编写一段程序来快速配置测试环境

你应尽可能快的配置你的负载测试环境,以便在新的测试时好复用。一旦你需要配置应用环境,创建一个快照或镜像能方便你在几分钟内创建好。这里有非常多的配置管理及IT自动化工具来帮助你快速搭建服务器环境,如 PuppetChef,SaltstackAnsibleDocker, 和Vagrant 

隔离测试环境

计算资源总是稀缺的,测试机是常用的解决方案。当CFO或新的产品团队寻找机器来跑程序或做实验时,他们通常会采用一些测试机器,如果你没被告之也不要失望。你想确保除了你的虚拟端外没人能接近你的测试应用,那测试网络的隔离变得非常重要,这会让你的测试环境不被未知的其它公司活动所影响。

搭建一个仿真测试环境对做好负载测试非常重要。开头,它可能看起来使你启动性能测试变得更慢,但它如摩天大楼的设计。你不能没有它,它将消除灾难性故障的可能性。

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/817335.html

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

相关文章

2023 7-31

题目1 寻找不同二叉树两节点的公共祖先 递归解法 仔细看这个解法更加容易理解: l、r 非空时,说明 p、q 分居 root 的两侧,root 就是 LCAl、r 任一为空,说明 LCA 位于另一子树或其祖先中代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* …

展锐USB充电图标更新流程

介绍 power_supply 目录下online节点是用于判断是否插入battery、ac(外部电源) 和USB 的节点,目录在sys/class/power_supply/battery(ac、usb)/online,主要用于在StatusBar 上显示充电的闪电图标。 SystemUI层介绍 流程介绍 在SystemUI 中控制充电图…

【ChatGPT辅助学Rust | 基础系列 | 基础语法】变量,数据类型,运算符,控制流

文章目录 简介:一,变量1,变量的定义2,变量的可变性3,变量的隐藏 二、数据类型1,标量类型2,复合类型 三,运算符1,算术运算符2,比较运算符3,逻辑运算…

Redis系列二:Clion+MAC+Redis环境搭建

1. ClionMACRedis-3.0-annotated环境搭建 参考: https://github.com/huangz1990/redis-3.0-annotated https://gitee.com/dumpcao/redis-3.0-annotated-cmake-in-clion https://tool.4xseo.com/a/12910.html 1.1 下载并导入Clion git clone https://gitee.com/dum…

基于SSM+JSP+LayUI的校园任务帮管理系统

校园帮项目 校园即时服务平台 用户角色 管理员 功能 登录、公告管理(发布公告、停用公告)、任务管理(下架任务、删除任务)、用户管理(用户充值、限制用户)、修改密码 用户角色 用户 功能 注册、登录…

Allied Telesis 证实 AR4050S-5G 路由器已成功通过 Splashtop On-Prem 快速处理现场数据

日本东京 —— Allied Telesis Inc. 和 NTT Comware Corporation 很高兴地宣布,Allied Telesis AR4050S-5G 路由器经证实已与 Splashtop On-Prem 解决方案成功集成,可安全快速地处理现场数据。根据测试结果,使用该方案,可以在实地…

dolphinscheduler switch+传参无坑版

dolphinscheduler 的前后传参有较多的坑,即便是3.0.5版本仍然有一些bug 下面是目前能无坑在3.0.5版本上使用的操作 前置任务 在界面上设置变量和参数名称 跟官方网站不一样,注意最后一行一定使用echo ${setValue(key$query)}的方式,注意引…

一次web网页设计实践——checkbox单选、复选功能的实现

由于工作内容原因近期做了一个网页,记录下。 需求: 写一个如下的页面,包括checkbox单选,checkbox多选,slect,text等控件 内容: 一、checkbox (Wlan 开关) 要求&#x…

基于Java+SpringBoot制作一个学生公寓管理小程序

制作一个学生公寓管理小程序,旨在优化和简化学生公寓的日常管理工作。该系统涵盖了各种功能模块,以满足学生住宿的需求,同时提供方便、高效的管理方式,该系统包含用户管理、卫生评比、来访登记、宿舍报修等模块。 一、小程序1.1 项目创建1.2 首页轮播图快捷导航iconfont图标…

git撤销提交,新建、删除分支汇总

目录 git 撤销中间某次提交,保留其他提交的方法git 撤销已经push的代码git 新建分支git 删除分支 git 撤销中间某次提交,保留其他提交的方法 git revert commit_id 通过git log 获取commit_id。 如果commit_id是merge节点的话,-m是指定具…

一种嵌入式LCD显示多国语言方法

简介 介绍一种嵌入式LCD显示多国语言方法&#xff0c;由于很多产品嵌入式资源有限&#xff0c;显示的字符也不多&#xff0c;所以可以自己制作一些字库&#xff0c;而不用字库芯片。 下面展示一种从字库取出字符的方法。 代码示例 #include <stdio.h> #include <s…

安装win版本的neo4j(2023最新版本)

安装win版本的neo4j 写在最前面安装 win版本的neo4j1. 安装JDK2.下载配置环境变量&#xff08;也可选择直接点击快捷方式&#xff0c;就可以不用配环境了&#xff09;3. 启动neo4j 测试代码遇到的问题及解决&#xff08;每次环境都太离谱了&#xff0c;各种问题&#xff09;连接…

八大排序算法--选择排序(动图理解)

选择排序 算法思路 每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完 。 选择排序的步骤&#xff1a; 1>首先在未排序序列中找到最小&#xff08;大&#xff09;元素…

原创 | 数字身份智能体的基本原理及应用前景展望

作者&#xff1a;张家林 本文约5700字&#xff0c;建议阅读10分钟 本文主要探讨自然人数字身份智能体的基本原理、关键技术及其应用前景的挑战。 数字身份智能体&#xff08;DIAs: digital identity agents&#xff09;是通过将一个实体的行为模式、个体特征等信息经过数据化、…

第3章 DOM

文档&#xff1a;DOM中的“D” 如果没有document&#xff08;文档&#xff09;, DOM也就无从谈起。当创建了一个网页并把它加载到Web浏览器中时&#xff0c;DOM就在幕后悄然而生。它把你编写的网页文档转换为一个文档对象。 对象&#xff1a;DOM中的“O” js中的对象分为三种…

Python入门【__init__ 构造方法和 __new__ 方法、类对象、类属性、类方法、静态方法、内存分析实例对象和类对象创建过程(重要)】(十四)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

MySQL运维 从全备sql文件中提取指定表的数据并恢复

目录 一、运行环境 二、需求说明 三、思路分析 五、具体方案 六、恢复表数据 一、运行环境 系统&#xff1a;CentOS7.3 数据库&#xff1a;MySQL 8.0.21 二、需求说明 线上有个表的数据被误操作了很多&#xff0c;无法通过bin-log进行具体的恢复。所以当前我们需要从全…

推荐几款好用的建筑项目管理软件

工程项目管理软件在现代项目管理中扮演着越来越重要的角色&#xff0c;此类软件可以帮助团队把控从“立项”到“验收”各个阶段的项目进度&#xff0c;从而达到降低项目成本&#xff0c;提高项目执行效率的目的。 作为一个在项目管理领域奋斗过6年的项目经理&#xff0c;下面给…

Java maven的下载解压配置(保姆级教学)

mamen基本概念 Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外&#xff0c;还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性&#xff0c;所以…

神经概率语言模型

本文主要参考《A Neural Probabilistic Language Model》这是一篇很重要的语言模型论文,发表于2003年。主要贡献如下: 提出了一种基于神经网络的语言模型&#xff0c;是较早将神经网络应用于语言模型领域的工作之一&#xff0c;具有里程碑意义。采用神经网络模型预测下一个单词…