基于性能的ci/cd平台构建评估与提升

cd_perf_promotion的Python项目详细描述


持续交付绩效提升工具

持续交付性能提升工具是一个python程序 用于评估应用程序性能是否足够好 在连续交付系统中转入下一阶段。这个 工具允许用户定义他们的应用程序应该如何执行 通过一个简单的json配置文件,然后计算 应用程序的实际性能与这些标准不符。目前, 程序支持appdynamics、blazemeter和webgetest,但目标是 支持其他负载测试工具,如SilkPerformer和Visual Studio 将来也会有测试套件。

开始

安装(基本)

  1. 运行pip install cd_perf_promotion
  2. 你完了!

安装(高级)

  1. 确保您有最新版本的python和pip 已安装,并且可以通过命令行界面运行 (客户端)。
  2. 下载源代码并使用cli导航到它。
  3. 在cd-perf-u promotion下载目录中,运行 python setup.py install开始安装。
  4. 应用程序将通过pip和 自行安装。现在您可以从cli运行该程序 通过命令cdperfpromotion
  5. 你完了!

定义你的晋升标准

您的config.json文件包含所有配置信息 该工具需要从性能工具中检索数据,并且 评估应用程序是否符合性能标准。 我们提供了一些示例配置文件(位于 documentation/sample_configs/input)帮助您开始。一个 可用于的所有可用数据项的完整列表 评估应用程序的性能以及 它们真正的意思是在 documentation目录。

我们做了很多工作来确保程序是模块化的 可自定义,这样就不必包含所有数据项 配置文件中存在的。相反,只包括工具 以及要包含的数据项。 任何未包含的内容都不会被评估。请注意 必须包含用于收集的工具的配置信息 定义的信息。例如,如果您想包括 应用程序的平均响应时间,还必须包括 具有BlazeMeter API密钥和测试ID的BlazeMeter部分。

评估结果

输出文件中的promotion_gatesjson对象包含 关于每个数据度量是否满足 配置文件目标。如果任何事务/运行有数据 不符合预定义性能目标的项,整个 数据项在promotion_gates节中标记为失败。如果 数据项失败,可以转到相应数据项的父级 工具并找出失败的地方和实际结果。

例如,示例配置文件config_all.json.sample 定义不得有任何违反AppDynamics运行状况规则的行为 严重性为警告("warning": true)或严重 ("critical": true)。不幸的是,输出文件, cdperfpromodata_timestamp_all.json.sample,中的状态 promotion_gates节此数据项失败 ("appdynamics_health": false)。知道了,我们可以上去看看 在appdynamics部分,它揭示了 评估中违反了运行状况规则,警告的严重性为 正在通知我们应用程序使用了太多内存。

需要注意的是,如果 配置文件失败,整个应用程序将失败且不会 被提升到下一阶段。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我的应用程序崩溃,试图添加菜单   java如何创建TBase类实例   如何在java小程序中使用JMF功能?   数据结构Java中是否有用于双循环链表的内置接口?   java在使用JAXB读取XML文件时如何使用继承   在Java中获取和存储子进程的输出   从Java执行Windows命令   HQL中带日期的java限制   安卓如何使用GSON将单个JSON字段映射到多个JAVA字段?   std:random shuffle()和Collections之间的java差异。洗牌   Java正则表达式更高效的动态正则表达式   来自JSON的java POJO表示   active directory无法在Java中更改AD服务器中的密码   DataOutputStream出现java错误   scala如何指定JVM最大堆大小“Xmx”,以便在SBT中运行具有“run”操作的应用程序?   添加了`<f:actionListener>`之后,java`ViewScoped` bean会被重新创建吗?   python找不到满足java要求的版本(来自版本:),找不到与java匹配的发行版   java为什么刷新jdbc swing表中的按钮后数据会多次出现?   java在编程语言(尤其是dart)中,死代码是什么意思?   java为什么我必须在JDBC中使用回滚?