写点什么

业务流程巡检拨测常用的开源工具

作者:阿泽🧸
  • 2022 年 10 月 08 日
    北京
  • 本文字数:2082 字

    阅读完需:约 7 分钟

业务流程巡检拨测常用的开源工具

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

  1. 其可模拟应用指定业务流程的操作全过程,拨测业务流程的可用性,主动发现应用服务器假死、死锁等难以监控的异常状态。

  2. 其可针对特定输入获取指定操作的返回结果,验证页面或接口返回结果的正确性,发现业务逻辑错误、代码缺陷等问题。

  3. 其可定期模拟多个用户的并发操作,压力测试应用的并发处理能力和通量,精确探查应用并发处理的瓶颈,并为配置优化和容量规划采集指导数据。

发布于: 刚刚阅读数: 3
用户头像

阿泽🧸

关注

还未添加个人签名 2020.11.12 加入

还未添加个人简介

评论

发布
暂无评论
业务流程巡检拨测常用的开源工具_10月月更_阿泽🧸_InfoQ写作社区