【GitHub精选项目】短信系统测试工具:SMSBoom 操作指南

在这里插入图片描述

前言

本文为大家带来的是 OpenEthan 开发的 SMSBoom 项目 —— 一种用于短信服务测试的工具。这个工具能够发送大量短信,通常用于测试短信服务的稳定性和处理能力。在合法和道德的范畴内,SMSBoom 可以作为一种有效的测试工具,帮助开发者和系统管理员评估短信服务的性能。

然而,值得注意的是调 SMSBoom 的使用必须严格遵守法律法规和道德标准。错误使用此类工具不仅违反法律,而且可能导致严重的骚扰行为。因此,本文将仅聚焦于其在合法和道德框架下的使用,如压力测试和系统稳定性评估。

在这篇文章中,我们将探讨 SMSBoom 的安装、配置和合法使用方法,旨在为需要进行合法短信服务测试的专业人士提供指导。

项目地址:https://github.com/OpenEthan/SMSBoom


项目概览

SMSBoom 是一款专门设计用于发送大量短信的工具。其主要用途是为系统管理员和开发者提供一种手段来测试短信服务的负载能力和稳定性。通过模拟高流量短信发送,SMSBoom 能够帮助识别和解决短信服务平台在极端情况下可能遇到的问题。

该工具的核心特点包括其能够快速生成和发送大量短信,从而使用户能够评估短信服务的响应速度和处理能力。这在测试短信服务的稳定性、扩展性和可靠性时尤为重要。

具体的功能可以看项目所展示的 README 文档。

在这里插入图片描述

克隆项目

git clone

最简单的,在命令行工具数据以下命令即可,如下图所示:

git clone https://github.com/OpenEthan/SMSBoom

在这里插入图片描述

Download ZIP

当然,使用 Download ZIP 也是个不错的下载方式。

在这里插入图片描述




可以看到,这个效果是非常不错的!

在这里插入图片描述

使用指南

本项目由 Python 所编写,所以特别容易理解上手。
在前面将项目拷贝下来后,去到项目目录下,需要安装所需要的库。在命令行执行以下命令即可。

pip install -r requirement.txt

命令行版

接下来,我们去在命令行执行 python mssboom.py,可以看到以下画面。

在这里插入图片描述

  • 提示有4个可接收的命令,分别是
    1. asyncrun:以最快的方式请求接口,使用真正的异步处理方式,支持高并发。
    2. onerun:单线程模式,通常用于测试和调试。
    3. run:传入线程数和手机号,启动,支持同时测试多个手机号。
    4. update:从 GitHub 获取最新的接口和代码更新。

我们可以在命令行中输入 smsboom.py 后跟随一个命令和相应的选项和参数来执行不同的操作。例如,如果要使用 asyncrun 命令,可以执行类似以下的命令:

python smsboom.py asyncrun [OPTIONS] [ARGS]

另外还可以使用 --help 选项来获取有关每个命令的详细帮助信息,例如我们需要查看单线程模式,

python smsboom.py onerun --help

可以看到以下画面,
在这里插入图片描述

在真正要测试的时候,就可以使用来进行使用了。

python smsboom.py onerun --phone 13xxxxxxxxx

GUI版

在命令行中输入,

python smsboom_GUI.py 

就可以看到以下画面了,真正的简洁明了!

在这里插入图片描述

代码摘选

run 模式

run 模式默认是64线程,速度非常快!

@click.command()
@click.option("--thread", "-t", help="线程数(默认64)", default=64)
@click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", multiple=True, type=str)
@click.option('--frequency', "-f", default=1, help="执行次数(默认1次)", type=int)
@click.option('--interval', "-i", default=60, help="间隔时间(默认60s)", type=int)
@click.option('--enable_proxy', "-e", is_flag=True, help="开启代理(默认关闭)", type=bool)
def run(thread: int, phone: Union[str, tuple], frequency: int, interval: int, enable_proxy: bool = False):"""传入线程数和手机号启动测试,支持多手机号"""with ThreadPoolExecutor(max_workers=thread) as pool:...

asyncRun 模式

asyncRun 使用 asyncio 构建了异步任务,速度是嘎嘎快的!

@click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", prompt=True, required=True, multiple=True)
@click.command()
def asyncRun(phone):"""以最快的方式请求接口(真异步百万并发)"""_api = load_json()_api_get = load_getapi()apis = _api + _api_getloop = asyncio.get_event_loop()loop.run_until_complete(runAsync(apis, phone))

onerun 模式

onerun 模式是简根据传入的手机号码作为测试,单线程。

@click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", prompt=True, required=True, multiple=True)
@click.command()
def oneRun(phone):"""单线程(测试使用)"""_api = load_json()_api_get = load_getapi()apis = _api + _api_getfor api in apis:try:reqFunc(api, phone)except:pass

总结

SMSBoom 是一个功能强大的工具,专为短信服务的压力测试和性能评估而设计。通过模拟高流量短信发送,它帮助用户在实际环境中测试和评估短信服务平台的稳定性和扩展性。该工具提供了多种运行模式,包括异步处理和单线程模式,以适应不同的测试需求。

在使用 SMSBoom 时,需要强调的是,这个工具应仅用于合法的测试和评估目的,如系统性能测试、软件开发中的压力测试等。非法或不道德的使用,例如发送垃圾短信或进行骚扰,是严格禁止的,并可能导致法律后果。

SMSBoom 项目的便捷性和高效性使它成一个有用工具,但它也是一把双刃剑。因此,鼓励所有用户在使用时遵循道德规范和法律要求,确保其应用仅限于正当和合法的场景。

后话

本次分享到此结束,
see you~~🎈🎈

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

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

相关文章

前端微信小程序AES加密解密踩坑

项目场景: 今天蛮沮丧的,在和别人对接的时候aes加解密的时候踩了坑。今天有个同事请假了,所以本来他和别人对接的活,老大给了我,然后我就正式踏上了战战兢兢的对接之路。 1.一开始的时候对面先是问用的啥加密方法。这…

使用Guava轻松创建和管理不可变集合

第1章:引言 大家好,我是小黑。今天,我们来聊聊一个在Java编程里超有用的话题:使用Guava创建和管理不可变集合。首先,咱们得明白,什么是不可变集合。简单来说,不可变集合就是一旦创建就不能被修…

使用OpenCV DNN模块进行人脸检测

内容的一部分来源于贾志刚的《opencv4应用开发、入门、进阶与工程化实践》。这本书我大概看了一下,也就后面几章比较感兴趣,但是内容很少,并没有想像的那种充实。不过学习还是要学习的。 在实际工程项目中,并不是说我们将神经网络…

时间序列分析

常用数据集 2.monash数据集 官网链接 我们的存储库包含30个数据集,包括公开可用的时间序列数据集(不同格式)和由我们管理的数据集。 DatasetDomainNo: of SeriesMin. LengthMax. LengthCompetitionMultivariateDownloadSourceM1Multiple100115150YesNoYearly Quart…

深度剖析Ajax实现方式(原生框架、JQuery、Axios,Fetch)

Ajax学习 简介: ​ Ajax 代表异步 JavaScript 和 XML(Asynchronous JavaScript and XML)的缩写。它指的是一种在网页开发中使用的技术,通过在后台与服务器进行数据交换,实现页面内容的更新,而无需刷新整个…

高级算法设计与分析(六) -- 分支限界法

系列文章目录 高级算法设计与分析(一) -- 算法引论 高级算法设计与分析(二) -- 递归与分治策略 高级算法设计与分析(三) -- 动态规划 高级算法设计与分析(四) -- 贪心算法 高级…

RIPV1配置实验

查看路由器路由表: 删除手工配置的静态路由项: Route1->Config->static Remove删除路由项 删除Route3的路由项,方法同上删除Route2的路由项,方法同上 完成路由器RIP配置: Route1->Config->RIP->Ne…

lv12 根文件系统12

目录 1 根文件系统 2 BusyBox 3 实验九 3.1 在 busybox 官网下载 busybox 源码(这里我们下载 busybox-1.22.1.tar.bz2) 3.2 拷贝 busybox 源码包到 ubuntu 的家目录下,解压并进入其顶层目录 3.3 进入 busybox 配置界面(…

新零售模式:重新定义商业未来

随着科技的飞速发展,我们的生活方式正在经历着前所未有的变革。其中,新零售模式正逐渐成为商业领域的新热点,它正在重新定义我们的购物方式,并为企业带来更多的商业机会。 一、新零售模式概述 新零售模式是指将互联网、大数据、…

在 Windows 中关闭指定端口的方法

方法一&#xff1a;使用命令行&#xff08;Command Prompt&#xff09; 查找端口占用情况 打开命令提示符&#xff08;Command Prompt&#xff09;并输入以下命令来查找占用指定端口的进程&#xff1a; netstat -aon|findstr "<port_number>" 这里的 <p…

[已解决] Ubuntu远程桌面闪退+登录显示“远程桌面由于数据加密错误 , 这个会话将结束“

两个月前&#xff0c;由于跑代码在Ubuntu配置环境&#xff0c;乱七八糟的下载了很多东西&#xff0c;导致了一系列问题..... 问题1 Ubuntu远程桌面闪退 实验室有两台服务器&#xff0c;IP后三位分别为141和142&#xff0c;其中141在输入密码后立即闪退&#xff0c;142可以正常…

【分享】4个方法打开PDF文件

PDF是很多人工作中经常使用的电子文档格式&#xff0c;但是可能有些刚接触的小伙伴不知道用什么工具来打开PDF文件&#xff0c;今天小编就来分享一下4种常用的工具。 1. 使用浏览器 只要有电脑基本都会安装一到两款浏览器&#xff0c;其实浏览器也可以用来打开PDF文件。 只需…

python 用OpenCV 将图片转视频

import os import cv2 import numpy as npcv2.VideoWriter&#xff08;&#xff09;参数 cv2.VideoWriter() 是 OpenCV 中用于创建视频文件的类。它的参数如下&#xff1a; filename&#xff1a;保存视频的文件名。 fourcc&#xff1a;指定视频编解码器的 FourCC 代码&#xf…

Redis可视化工具Redis Desktop Manager mac功能特色

Redis Desktop Manager mac是一款非常实用的Redis可视化工具。RDM支持SSL / TLS加密&#xff0c;SSH隧道&#xff0c;基于SSH隧道的TLS&#xff0c;为您提供了一个易于使用的GUI&#xff0c;可以访问您的Redis数据库并执行一些基本操作&#xff1a;将键视为树&#xff0c;CRUD键…

hab_virtio hypervisor 虚拟化

Linux的 I / O 虚拟化 Virtio 框架 简而言之&#xff0c;virtio是半虚拟化管理程序中设备上的抽象层。virtio由Rusty Russell开发以支持他自己的虚拟化解决方案lguest。本文从准虚拟化和仿真设备的介绍开始&#xff0c;然后探讨的细节virtio。重点是virtio2.6.30内核发行版中的…

【华为数据之道学习笔记】6-4 打造数据供应的“三个1”

数据服务改变了传统的数据集成方式&#xff0c;所有数据都通过服务对外提供&#xff0c;用户不再直接集成数据&#xff0c;而是通过服务获取。因此&#xff0c;数据服务应该拉动数据供应链条的各个节点&#xff0c;以方便用户能准确地获取数据为重要目标。 数据供应到消费的完整…

Deployment Controller详解(上)

上一篇在《Kubectl 部署无状态应用》中介绍了如何使用 Deployment 部署五个 hello world 实例时&#xff0c;我们并没有详细探讨 Deployment Controller 的各项功能。因此&#xff0c;本文将深入介绍 Deployment Controller 的作用以及它能够完成的任务。 本文来自官方文档梳理…

深入理解依赖反转原则(DIP)

依赖反转原则是一个比较重要的架构原则&#xff0c;从定义上看是要依赖于抽象&#xff0c;不要依赖于细节&#xff0c; 这个听起来很简单&#xff0c;好像加个接口就完事了&#xff0c;大家的service都是一个接口配一个实现类&#xff0c;是不是依赖倒置呢&#xff1f;很显然不…

第11章 GUI Page417~418 步骤五 支持方框 使用宏定义

运行效果&#xff1a; 原来的创建item的方式&#xff1a; 使用宏定义的方式&#xff1a;

Java之LinkedList核心源码解读

LinkedList核心源码解读 LinkedList 是一个基于双向链表实现的集合类&#xff0c;经常被拿来和 ArrayList 做比较 LinkedList 插入和删除元素的时间复杂度&#xff1f; 头部插入/删除&#xff1a;只需要修改头结点的指针即可完成插入/删除操作&#xff0c;因此时间复杂度为 O…