将您的夸张文档转换为加载测试配置并运行它们
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自动化系统。
将自动生成的许多图形之一:
验证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
) - 切换到项目,您将逐步运行服务器和负载测试