应用运维系统的首要能力是在应用业务流程处理出现宕机、假死、错误或运行缓慢等异常状态时,先于用户发现,并及时通知相关责任人。其主要技术手段是采用软件程序主动模拟用户的操作过程,设置自动化巡检策略,定时主动拨测应用业务流程,采集相关指标。应用运维巡检拨测场景用到的工具和自动化测试工具一样,这类工具一般都支持这两个场景。常用的工具有Blackbox、Apache JMeter、Selenium、Postman等。

一、Blackbox
1、简介
Blackbox是在开源指标数据采集、存储平台Prometheus框架下使用的应用运行状态主动检测工具。其所有代码和功能都在Prometheus Exporter数据采集框架下开发实现,因此Blackbox默认只提供与Prometheus的对接。在使用过程中,可以在近用户端的网络环境下部署独立的Blackbox拨测节点,然后通过配置定时策略实现对目标应用服务端状态的主动检测。

2、主要功能
Blackbox功能简单实用,主要用来部署在与目标应用的用户端网络环境配置相似且临近真实用户的仿真环境下,模拟用户端以主动对应用关键服务接口和网络连通状态进行检测。其对目标应用的拨测地址、认证和周期等策略都以YAML格式的配置文件的形式定义。在运行过程中,对于拨测策略改变导致的配置文件修改,Blackbox支持在运行期重加载,不需要重启。

Blackbox能够对应用HTTP/HTTPS协议的Web页面、RESTful API接口、Web Service API接口,以及网络TCP连接、DNS状态和ICMP(IPv4、IPv6)发起主动拨测。在运行状态,Blackbox会按策略配置对指定应用页面、接口或网络进行主动拨测扫描。所有探测到的数据指标按照Prometheus的指标命名规则命名。监控数据在Exporter框架下以如下格式定义,并通过HTTP提供Prometheus拉取。

Blackbox扫描后采集的样本数据提供了对应用指定业务流程对应的Web页面/API接口地址的DNS解析时间、发送请求响应时间、HTTP请求返回状态码、请求重定向次数等指标的访问。通过这些指标,应用运维人员可以及时发现应用指定业务流程的异常状态。

二、Apache JMeter
1、简介
Apache JMeter是由Java语言编写的、独立部署运行的轻量级应用性能主动测试工具,可用于模拟用户端行为,主动生成用于负载压力测试的Web应用程序的性能。它可用于模拟服务器、服务器组、网络或对象的重负载,以测试其强度或分析不同负载类型下的总体性能。Apache JMeter的主要目标应用场景是性能测试。其在软件测试阶段的应用非常广泛,如测试应用并发量、吞吐量和高负荷状态下的稳定性。在对业务流程巡检拨测时,其可以作为主动拨测请求的发送节点,结合被动的应用性能监控工具,如APM工具、NPM工具来监控应用的可用性和性能波动情况。

2、主要功能
Apache JMeter主要应用在开发期,用于模拟和定义测试计划,生成负载对应用系统性能的压力测试。在应用运行期,Apache JMeter可以模拟用户访问操作或第三方系统调用接口,支持应用运维自定义逻辑来拨测目标应用系统。Apache JMeter可以通过自定义逻辑对几十种类型的协议、中间件和接口进行主动拨测,其中包括:

Web-HTTP、HTTPS(Java、Node.js、PHP、ASP.NET等);
SOAP/REST Web服务;
FTP;
JDBC连接数据库;
LDAP;
通过JMS面向消息的中间件(MOM);
SMTP、POP3和IMAP;
本机命令或shell脚本;
TCP;
Java对象。
除此之外,Apache JMeter还允许通过IDE界面快速定义测试计划(来自浏览器或本机应用程序),支持CLI命令行模式,可从任何Java兼容操作系统(Linux、Windows、Mac OSX等)加载测试。Apache JMeter能够提供完整的多线程框架,允许多个线程并发采样,以及通过单独的线程组同时对不同函数进行采样,支持生成并提供完整且随时可以呈现的动态HTML报告。Apache JMeter还能够缓存和离线分析/重播测试结果。

三、Selenium
1、简介
Selenium是最广泛使用的开源Web应用自动化测试工具集,包括一系列工具。Selenium起初是由Jason Huggins开发的用来在ThoughtWorks公司内部使用的工具。其设计目标是代替人来主动测试Web应用,对Web应用发起自动化测试。Selenium直接运行在浏览器中,模拟真正的用户操作来拨测目标应用。除了测试场景,Selenium还可以用在应用运维过程中来对指定应用业务流程进行主动拨测。由于支持更灵活的操作流程定义,相比于Blackbox、Apache JMeter这类工具,Selenium可以对应用中操作流程比较复杂的业务流程进行拨测。

2、主要功能
Selenium内部集成了设计简洁、使用简单的编程接口WebDriver来驱动浏览器对应用界面进行操作。它支持大多数常用的浏览器类型,包括Firefox、Safari、Chrome、Opera等。它支持的用来模拟应用操作的测试流程或拨测流程的编程语言包括Java、Python、C#、Ruby、JavaScript和Kotlin。

总的来说,Selenium在模拟用户操作以进行主动巡检拨测的场景下的功能主要有以下几个。

其可模拟应用指定业务流程的操作全过程,拨测业务流程的可用性,主动发现应用服务器假死、死锁等难以监控的异常状态。
其可针对特定输入获取指定操作的返回结果,验证页面或接口返回结果的正确性,发现业务逻辑错误、代码缺陷等问题。
其可定期模拟多个用户的并发操作,压力测试应用的并发处理能力和通量,精确探查应用并发处理的瓶颈,并为配置优化和容量规划采集指导数据。

©著作权归作者所有:来自51CTO博客作者key_3_feng的原创作品,请联系作者获取转载授权,否则将追究法律责任
业务流程巡检拨测常用的开源工具
https://blog.51cto.com/key3feng/5693462

业务流程巡检拨测(开源工具)相关推荐

  1. 拨测工具_您可以拨多少钱? 快速简单地介绍有用的工具。

    拨测工具 by Miguel Bustamante 通过Miguel Bustamante 您可以卷曲多少? 快速简单地介绍有用的工具. (How much can you cURL? A quick ...

  2. 使用腾讯云轻量应用服务器搭建网络质量拨测工具 SmokePing

    本文原载于 https://www.idc.moe/archives/qcloud-Lighthouse-SmokePing.html 作者:iks SmokePing 是由 RRDtool 的作者 ...

  3. 运维监控再添新品,F5联合智维数据推出应用质量主动拨测解决方案

    一直以来,业务的稳定性和客户体验是企业各个部门都关注的重点,也是企业数字化转型的重要支撑.但在实际的运维环境中,如果只从服务端的视角进行监控,往往会出现数据中心内部监控体系显示设备状态正常,但却收到了 ...

  4. MySQL 开源工具集合

    点击上方"蓝字" 关注我们,享更多干货! 上次聊到MySQL官方运维工具.这次再了解下常用的开源工具. 目前已收集的并在实际环境中使用过的开源工具如下: 可以说掌握了这些工具(原理 ...

  5. android 拨测软件,通信网络性能管理系统中电话自动拨测技术的实现

    摘要: 当今世界,无线通信技术已经非常普遍,通信网络的覆盖区域越来越广,无线通讯技术的飞速发展为我们的生活带来了极大的便利.通信网络结构趋于复杂,伴随着通信网络使用的设备也趋于复杂,所以如何进行有效地 ...

  6. 【译】关于机器学习的11个开源工具

    关于机器学习的11个开源工具 翻译:疯狂的技术宅 英文标题:11 open source tools to make the most of machine learning 英文连接:https:/ ...

  7. 谷歌推出开源工具DeepVariant,用深度学习识别基因变异

    Root 李林 编译整理 量子位 出品 | 公众号 QbitAI Google今天推出了一个名叫DeepVariant的开源工具,用深度神经网络来从DNA测序数据中快速精确识别碱基变异位点. 学科研究 ...

  8. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码...

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

  9. 拨测技术在哪些方面应用比较广泛?

    拨测是指通过在实施网络监控.性能测试和安全检查等操作时发出测试请求,来进行基于数据的可操作性分析的过程.在现代信息技术中,拨测已成为企业和组织维护其数字化基础设施稳定和高效性的关键工具,那拨测技术在哪 ...

最新文章

  1. 《Cracking the Coding Interview》——第18章:难题——题目11
  2. [CF 526 F] Pudding Monsters(单调栈 + 线段树)
  3. Java8系列之重新认识HashMap
  4. linux文件属性是什么意思,Linux文件属性
  5. oracle实现mysql的if_【原创】ORACLE的几个函数在MYSQL里面的简单实现
  6. 1000+Redis实例,100+集群,Redis 在海量数据和高并发下的优化实践
  7. HIVE 分区 分桶
  8. 程序员应该收藏哪些资讯类网站
  9. talib python文档_GitHub - HuaRongSAO/talib-document: talib学习 talib中文翻译 talib中文文档...
  10. 浅析ERP系统--研发
  11. 用python写问答机器人_机器人之Python入门到实践-问答机器人
  12. 视频会议设备大比拼,创新让科技更好的服务社会!
  13. 使用Python将Word表格转Excel
  14. 二叉树(1.二叉树的概念堆)
  15. c++逆天改命进阶--二叉树练习题
  16. android布局 哪个控件在最上层_Android 在最上层添加悬浮View(兼容Android 8.0)
  17. 【计算机操作系统】-进程切换什么时候会发生呢?
  18. 让注册表修改快速生效
  19. 量子力学顺口溜_数学的幽默打油诗
  20. ThreadLocal实战之数据库执行器线程同步

热门文章

  1. 电脑重启后 虚拟机不见了?
  2. 电商网站之订单查询功能
  3. 终于被我搞掂了 Vue3 + Element 的正确打开方式(直接拿来就用)
  4. 关于Linux、git和github的一些历史事件
  5. springboot利用官方SDK(wechatpay-apache-httpclient)接入微信支付V3
  6. 无NMS SOTA!DATE:端到端全卷积目标检测的双重分配
  7. swing文本框添加背景图片
  8. 带你玩东方系列(视频版)游戏链接
  9. 微信小程序:页面有内容却不显示原因
  10. MATLAB积分函数integral()的使用方法