将您的夸张文档转换为加载测试配置并运行它们

swagger-atlas的Python项目详细描述


阿特拉斯

atlas接受了您的大摇大摆,并巧妙地生成了代码,这些代码可以用作各种负载测试工具的输入。 目前,atlas完全支持Artillery Load Runner

Atlas代表用于负载分析和模拟的自动化工具

创建新项目

  • 创建虚拟环境。我们只支持Python3.6+。
  • 通过pip install swagger-atlas
  • 安装Atlas项目
  • 运行atlas newproject <project_name>
  • 切换到新目录
  • 按照目录的自述文件进行自定义并运行负载测试

功能

阿特拉斯做什么

  • 将swagger无缝转换为加载测试文件
  • 生成假数据以进行测试。
  • 了解资源依赖关系和工作流- 如果一个api创建了pet,而另一个api想要使用pet id, 阿特拉斯足够聪明:
    • 对api进行排序,以便create api位于任何要使用id的api之前
    • 传输资源依赖项
    • 这可以任意处理api之间的任何复杂关系,只要它不是循环的
  • 生成漂亮的图形和统计信息

一定要阅读Use Cases以了解用例和最佳炫耀实践,以充分利用atlas自动化系统。

将自动生成的许多图形之一: Grafana Dashboard Sample


验证API

您可能需要使用api提供身份验证信息。 使用Atlas,您可以通过以下方式提供头身份验证:

  • 编辑conf/profiles.yaml并添加身份验证密钥-值对
  • conf/artillery/hooks.js中,根据需要更改addHeaders()函数。

示例

# profiles.yaml<profile_name>:token:abcd
// hooks.jsasyncfunctionaddHeaders(profile){profile.auth={"headers":{'Authorization':'Token '+profile.token}};returnprofile;}

此头现在将添加到所有API请求。目前我们只支持头部身份验证

负载测试配置

您应该能够通过跟踪相应的运行程序来编辑负载测试配置。 火炮见CLI Options

配置Atlas

Atlas是高度自动化的系统,但是您可能需要配置它以满足您的需要。 最常见配置选项的快速概述:

手动数据生成

Atlas有一个内置的人工智能,可以为大多数请求生成假数据。 atlas还可以从一个api中提取数据并在另一个api中使用。

您可以为一些资源提供自己的数据。 有关详细信息,请参见Resources中的将资源映射到数据库部分


选择性API命中

您可能只想加载测试api的一个子集。有几种快速的方法可以做到这一点

  • 排除URL:在“设置”中,您可以提供排除URL的操作键列表
  • 特定标记:(标记与swagger中给出的标记相同)。有关标记示例,请参见Profiles
    • 在“设置”中,仅将“标记API”标记为“真”
    • conf/profiles.yaml中的tags部分中,标记要测试的标记
  • 您可以生成自己的场景。更多细节请参见场景部分。

处理请求

atlas允许您操作对api的请求。您可以这样做:

  • 更改发送到API的正文
  • 更改正在命中的URL(例如:更改其中的查询参数)
  • 更改其他参数(例如:标题)

有关如何执行此操作的详细信息,请参见Hooks,以及有关此操作的各种示例


API订购

如果你想重写Atlas人工智能API订购,你可以这么做。 在conf/conf.py中,更改SWAGGER_OPERATION_DEPENDENCIES

此设置是一个2元素元组列表,它确保第一个元素总是在第二个元素之前命中。 每一个元素代表了招摇操作的操作键。 Op_键只是任何夸张操作的“方法URL” 通过atlas generate_routes生成的conf/routes.py中可以获得所有摆幅的操作键


生成自定义方案

默认情况下,atlas将按其ai预先确定的顺序命中所有api。 你妈希望指定自定义工作流或方案。

阿特拉斯提供这种能力

  • 编写自定义方案并将其链接到配置文件
  • 配置文件可以有多个与之关联的方案
  • 如果需要,可以重写默认方案

有关详细信息,请参见Use cases中的Creating Custom Scenario部分

示例项目

  • 安装Atlas后,运行atlas example <example_name>(要了解可能的示例,可以运行python atlas example --help
  • 切换到项目,您将逐步运行服务器和负载测试

为Atlas贡献

请参见Contribution Guide

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

推荐PyPI第三方库


热门话题
调整大小时清除java JFrame图像   java Inmemory数据库和编程语言内存管理/垃圾收集   如何在Java中循环参数   java嵌套回收视图未获得焦点   hadoop和spark现在支持IPv6吗?   java允许在类中使用动态值。名字?   java中的Zookeeper连接   java如何从特定格式的字符串中提取数字?   java我在编译时没有收到错误,但当我运行程序时,我收到错误   用于指定身份验证架构的java Swagger配置   java AWS:elastic beanstalk是否隐式使用s3(存储)?   java如何向另一个servlet发送http请求   java写和写的区别是什么?   java在PCAP上循环了两次,这在io上是不可能的。pkts?   java ExecutionException SocketTimeoutException,同时尝试使用CompletableFuture异步调用10个不同的rest服务   svn中的eclipse Java项目,将其与maven结合   java Android数学简单   hadoop中的java多路输出格式