如何在 Python 中测试 Web API 限制

2024-04-03

我想使用 Python 测试给定站点的 Web API 限制。

此 API 限制允许每个 IP 在 Y 秒内最多发出 X 个请求。

我希望能够测试此限制的可靠性,特别是在边界情况下(X-1 请求、X+1 请求)

你能建议一个好方法吗?


我会编写一个脚本来执行以下操作:

  1. 发出一系列 X 请求,对每个请求进行计时(我会使用time.time())。计时结果中不应有任何节流的证据。如果延迟很严重,您可能需要并行化才能达到限制。
  2. 提出另一个请求并计时。它应该受到限制,这在所花费的时间中应该是显而易见的。

更新:这是 HTTP 请求的示例代码:

import time
import urllib2

URL = 'http://twitter.com'

def request_time():
    start_time = time.time()
    urllib2.urlopen(URL).read()
    end_time = time.time()
    return end_time - start_time

def throttling_test(n):
    """Test if processing more than n requests is throttled."""
    experiment_start = time.time()
    for i in range(n):
        t = request_time()
        print 'Request #%d took %.5f ms' % (i+1, t * 1000.0)
    print '--- Throttling limit crossed ---'

    t = request_time()
    print 'Request #%d took %.5f ms' % (n+1, t * 1000.0)


throttling_test(3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中测试 Web API 限制 的相关文章

  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 获取 2 个字母的州/省缩写

    因此 我使用 GeoNames API 获取国家 地区和州 省信息 并使用这些信息填充表单中的选择下拉列表 此表单将其信息提交给 SOAP Web 服务 并且 SOAP 服务器仅理解 2 个字母形式的国家 地区和州 省数据 IE CA 代表
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 有没有办法通过API调用访问私有数据集

    我正在使用 CKAN 2 8 运行 Mirth 3 6 1 作为新手 我遇到了一个问题 有没有办法通过 API 请求访问 CKAN 中私有数据集中的资源 我好像做不到 我有一个拥有公共数据集的组织 我可以通过 API 路由器通过 Mirth
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 使用回调令牌的 PHP EWS

    有没有人有幸使用 EWS 回调令牌而不是用户名 密码对来自 PHP 的 EWS SOAP 请求进行身份验证 我一直在看PHP EWS https github com jamesiarmes php ews当您在谷歌上搜索此项目时会出现该项
  • 带下拉图标 V 形的 Bootstrap 手风琴导航

    我有一个引导导航选项卡导航堆叠列表 需要使用手风琴折叠所有列表 除了最近单击的列表或具有活动子项的列表 我有这个工作 但似乎无法弄清楚如何让 V 形改变方向 除非点击 我以前只是将其设置为折叠 而不是手风琴折叠 所以需要一些 javascr
  • 如何以静默模式提取 WinZip 自解压 exe

    我使用 WinZip Self Extractor 创建了一个 exe 文件 它以 UI 模式提取文件 即双击安装程序时会打开一个新窗口 显示正在解压缩 setupname exe 我需要在静默模式下提取相同的 exe 该模式不应显示解压缩
  • 使用内部脚本设置innerHTML [重复]

    这个问题在这里已经有答案了 如果我在任何页面上的 Firebug 中运行以下行 document documentElement innerHTML 为什么不是alert命令执行 看起来你的
  • Perl:使用 XML::Twig 插入 XML::Twig 节点

    我正在比较两个 XML 文件 如果我发现其中一个文件中缺少节点 我想将其插入到另一个文件中 这是我一直在尝试的方法 my out file fbCI report xml open my fh out gt gt out file or d
  • Intellij“作为 Android 应用程序运行”缺失

    android模拟器运行确实很慢 我发现Genymotion运行得很快 当我尝试与 Intellij 一起使用时 在我遵循此文档中的每一步之后https cloud genymotion com page doc 我陷入了这个项目 在您的应
  • 如何在 Spring Data ES 3.2.0.M1 中使用高级 Rest 客户端

    Spring Data ES 3 2 0 M1 仍然使用旧的TransportClient代替HighLevelRestClient Spring Data ES 3 2 0 M1 支持高级 Rest 客户端 请参阅添加对 Java 高级
  • Android Web 浏览器主页

    我见过一些应用程序和广告网络 例如 startapp 通过代码更改 Android 网络浏览器主页 这怎么可能 我查看了startapp sdk 但我没有找到他们更改主页的部分 我也看过BrowserSettings in com andr
  • Spring Batch 数据库连接不可用,请求超时

    在使用 Spring Batch 进行项目的过程中 我遇到了以下问题 该项目包括 MySQL 数据库 mysqld 10 2 13 MariaDB Spring Boot 2 1 1 RELEASE 春季批次 4 1 0 RELEASE S
  • Laravel postgres sql 不区分大小写喜欢

    我在 Laravel 中有一个 postgres sql 查询 query Article join users articles user id users id gt select users articles if array key
  • 获取 Prolog 中的解决方案列表

    我正在学习 Prolog 并且正在阅读一本名为 人工智能 Prolog 编程 的书 作为练习 我想学习如何扩展本书中的示例之一 有人可以帮忙吗 假设您有以下事实 parent pam bob pam is a parent of bob p
  • 使用 Spring/Hibernate 进行密码加密 - Jasypt 还是其他? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在数据访问层中使用 Spring 和 Hibernate JPA 的 Java 应用程序堆栈中 应用密
  • SQL charindex 抛出由于句点而传递给 LEFT 或 SUBSTRING 函数的长度参数无效?

    我的查询的 where 子句中有以下几行 但我不断收到此错误 Msg 537 Level 16 State 3 Line 3 Invalid length parameter passed to the LEFT or SUBSTRING
  • 是否可以同时将 Pub/Sub 和 BigQuery 作为 Google Dataflow 中的输入?

    在我的项目中 我希望在 Google Dataflow 中使用流式传输管道来处理 Pub Sub 消息 在清理输入数据时 我还希望获得来自 BigQuery 的侧面输入 这提出了一个问题 将导致两个输入之一无法工作 我在管道选项中设置了st
  • Django Forms:将参数传递给表单

    如何将参数传递到我的表单 someView form StylesForm data dict I also want to pass in site id here class StylesForm forms Form I want a
  • 如何在Windows桌面上绘制文字?

    我该如何将文本放置在 Windows 桌面上 有人告诉我 GetDesktopWindow 是我所需要的 但我需要一个例子 我假设您的最终目标是在桌面上显示某种状态信息 您必须执行以下任一操作 将 DLL 注入到 Explorer 的进程中
  • 给定表面法线,找到 3D 平面的旋转

    所以我有一个由 2 个向量描述的 3D 平面 P 位于平面上的点N 平面的表面法线 我有一个非常大的扁平方形多边形 我想渲染它来代表这个平面 我可以轻松地将多边形平移到给定点 但随后我需要找到适当的旋转来应用以使表面法线实际上成为表面法线
  • 无法使用 Google Drive api 复制 Google 幻灯片文件

    我想复制我的谷歌驱动器中存在的现有模板 ppt 然后我想将占位符文本更改为其他文本 这就是我正在尝试的 from google oauth2 import service account import googleapiclient dis
  • 如何从 django 数据库中下载 blob 字段中的数据?

    我有一个表 其中有一个包含一些数据的 blob 列 我如何在 django 中下载 blob 内容 我尝试了提到的解决方案here https stackoverflow com questions 4915397 django blob
  • 如何在 Python 中测试 Web API 限制

    我想使用 Python 测试给定站点的 Web API 限制 此 API 限制允许每个 IP 在 Y 秒内最多发出 X 个请求 我希望能够测试此限制的可靠性 特别是在边界情况下 X 1 请求 X 1 请求 你能建议一个好方法吗 我会编写一个