rally task配置文件
rally task配置文件
Rally本身提供了一些task配置文件,用于提供测试用例中所需的信息包括场景测试中所传入的参数、运行方式是并行还是串行,context等信息。Rally本身提供的task 配置文件在rally/samples/task/scenarios/目录下。
{
"NovaServers.boot_and_delete_server": [{
"args": {
"flavor": {
"name": "m1.tiny"
},
"image": {
"name": "ctsi-cirros"
},
"network": {
"uuid": "e0a248ca-53fe-4545-9aa4-cb4514c4287b"
},
"force_delete": false
},
"runner": {
"type": "constant",
"times": 10,
"concurrency": 2
},
"context": {
"users": {
"tenants": 3,
"users_per_tenant": 2
}
},
"sla": {
"failure_rate": {
"max": 0
}
}
},
{
"args": {
"flavor": {
"name": "m1.tiny"
},
"image": {
"name": "ctsi-cirros"
},
"network": {
"uuid": "e0a248ca-53fe-4545-9aa4-cb4514c4287b"
},
"auto_assign_nic": true
},
"runner": {
"type": "constant",
"times": 10,
"concurrency": 2
},
"context": {
"users": {
"tenants": 3,
"users_per_tenant": 2
},
"network": {
"start_cidr": "10.2.0.0/24",
"networks_per_tenant": 2
}
},
"sla": {
"failure_rate": {
"max": 0
}
}
}
]
}
args提供测试用例使用的类型方法的参数,
context:提供运行测试用例的上下文环境变量信息,包括模拟几个用户同时测试、租户情况等;定义运行基准测试脚本的环境类型。通常,context的概 念定义了有多少个租户和活动用户与给定的OpenStack项目相关。它还 可以指定特定的授权角色中,每个租户/用户所拥有的资源配额
quotas:指定测试中涉及到资源的配额限制,
runner:提供测试的运行器情况,比如,并发测试、串行测试,等等。
sla: 成功标准
比如设置失败率为0%作为成功标准:
"sla": {
"failure_rate": {"max": 0.0}
}
要配置SLA,请将“ sla”部分添加到相应子任务的配置中(检查名称是与其目标值关联的键)。您可以结合使用不同的成功标准:
{
"NovaServers.boot_and_delete_server": [
{
"args": {
...
},
"runner": {
...
},
"context": {
...
},
"sla": {
"max_seconds_per_iteration": 10,
"failure_rate": {
"max": 25
}
}
}
]
}
如果某个迭代花费了10秒钟以上或25%以上的迭代失败,则此配置会将NovaServers.boot_and_delete_server任务方案标记为不成功。
rally目前支持4种runner类型,通过task配置文件中runner参数进行区分,包括:constant、constant_for_duration、rps、serial。
1、 constant方式,是利用multiprocessing的Pool方式创建一个进程池,池中的进程数量等于runner的配置参数concurrency,执行每个task时,由池中的所有进程同时测试、模拟多用户并发访问的情况。constant方式中要求提供参数times,用于指定一个task中执行测试用例的次数。
2、 constant_for_duration方式,与constant相似,也是构建一个进程池实现并发测试,区别在于,constant_for_duration方式要求额外提供一个参数duration,但是没有参数times。该参数用于指明执行测试的时间, rally一直执行task指定的测试用例,直到达到duration规定的时间长度,任务结束;
3、 rps方式,测试任务平均分配到每个processer上,通过对每个process创建thread实现高并发测试。不同于前两种方式(使用multiprocessing.Pool 构建进程池),rps方式使用multiprocessing.Process构建执行task的worker,每个worker执行测试次数的总和是配置中的times,每个worker的rps总和是配置中rps。workers的数量由times和运行rally测试的主机上实际processer数量的最小值确定,times平均分配到每个worker上。
4、 serial方式,是使用一个process串行的执行测试 ,在单个基准线程中运行指定次数的脚本。
rally task-start命令执行流程
由命令行发起start_task的任务请求:
a) 命令行命令:rally task start --task test.json--deployment deployment_uuid --tag task_tag。其中,
b) --task参数必选参数,无默认值(必须输入),后跟的test.json对应执行task的配置文件路径;
c) --deployment必选参数,有默认值(可以不输入),用于指定使用rally哪一个部署,如果不指定该参数,自动使用默认的deployment();
d) --tag可选参数,用于为当前的task设置标签(task执行完成后,可以根据标签进行过滤)
e) 命令行执行task的代码:cmd.commands.task.TaskCommands.start_task
b) --task参数必选参数,无默认值(必须输入),后跟的test.json对应执行task的配置文件路径;也可以是 · yaml文件
c) --deployment必选参数,有默认值(可以不输入),用于指定使用rally哪一个部署,如果不指定该参数,自动使用默认的deployment();
d) --tag可选参数,用于为当前的task设置标签(task执行完成后,可以根据标签进行过滤)
e) 命令行执行task的代码:
在task执行完成之后,汇总result信息,并打印输出
2, 创建的engine对象执行run方法:
Task validation
验证配置中提供的待测试方法是scenario方法;
验证配置文件中的context配置项是否正确;
验证配置文件的句法正确;
遍历配置文件中的每个待测试scenario类型方法
http://rally.readthedocs.io/en/latest/tutorial.html
rally task配置文件的更多相关文章
- Linux运维--实践-Rally
1.rally简介 OpenStack Rally 是一个自动化测试工具,社区希望通过 Rally 来解答 "How does OpenStack work at scale?(如何规模化运 ...
- OpenStack Benchmark - Rally
作为以基于OpenStack的云平台的基准测试工具 -- Rally, 其功能不仅是测试云的性能&&稳定性, 还可以安装OpenStack,以及以良好的表现形式(web 页面)展现测试 ...
- spring task定时器的配置使用
spring task的配置方式有两种:配置文件配置和注解配置. 1.配置文件配置 在applicationContext.xml中增加spring task的命名空间: xmlns:task=&qu ...
- rally测试opentack------安装部署和简单实践
1,下载 git clone git://git.openstack.org/openstack/rally 或者 git clone https://git.openstack.org/openst ...
- OpenStack Rally 质量评估与自动化测试利器
目录 文章目录 目录 问题描述 Rally 简介 应用场景 应用案例 Rally 安装 Rally 使用 Rally 架构 Rally Plugin 分析与实现 程序入口 执行 rally task ...
- rally问题合集
rally 执行过程中涉及到keystone的用例,需要调用adminurl,在-/rally/lib/python2.7/site-packages/rally/osclients.py(主机文件的 ...
- kolla-ansible-----rally模块
Rally简介 Rally是OpenStack社区推出开源测试工具,可用于对OpenStack各个组件进行性能测试. 通过使用Rally组件,用户可完成OpenStack云计算平台的安装部署.功能验证 ...
- Ansible学习笔记
一.Ansible简介 Ansible是一种agentless(基于ssh),可实现批量配置.命令执行和控制,基于Python实现的自动化运维工具. 其特性有: ①模块化:通过调用相关模块,完成指定任 ...
- open-falcon 安装
openfalcon 规划 拓扑图 transfer 配置文件 [root@openfalcon_transfer1 transfer]# cat cfg.json { "debug&quo ...
随机推荐
- JavaScript 的基本使用
JavaScript 基本语法要求: 1.JS的写法是严格区分大小写的. 2.标识符的起名要求跟java的是一样的,第一个位置可以说字母.下划线.美元符号.其他位置可以字母.下划线.美元符号.数字. ...
- 轻量化模型之SqueezeNet
自 2012 年 AlexNet 以来,卷积神经网络在图像分类.目标检测.语义分割等领域获得广泛应用.随着性能要求越来越高,AlexNet 已经无法满足大家的需求,于是乎各路大牛纷纷提出性能更优越的 ...
- 实验楼Python项目
整理几个实验楼小项目,有免费的也有会员的,会员的可以参考他们的实验报告. 直接去实验楼这个网站,粘贴上就能搜到. 免费专区: Kmeans聚类算法评估足球比赛 Python实现3D建模工具 K-近邻算 ...
- Codeforces 1149 B - Three Religions
B - Three Religions 思路:dp dp[i][j][k]:a的前i个和b的前j个和c的前k个能构成的最前面的位置 删字符时状态不用改变,加字符时只会改变1*250*250个状态 代码 ...
- VMware厚置备延迟置零,厚置备置零,精简置备详解
1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零. ...
- 01windows7下安装rabbitmq
1.直接双击rabbitmq-server-3.6.10.exe,会提示你缺少Erlang安装包,问你是否下载,点击是就可以了,因为我自己下载,我就直接先安装otp_win64_20.0.exe,直 ...
- 用idea操作svn
使用SVN前提必须安装好服务端和客户端,或者知道服务端的url才能对服务器中的文件进行操作. 服务端:SVN service 客户端:TortoiseSVN 提交 第一步:确认SVN 服务器是否开启 ...
- File "/usr/bin/pip", line 11, in <module> sys.exit(__main__._main()) AttributeError: 'module' object has no attribute '_main'
多个版本pip共存导致 直接使用pip2进行安装即可 如:pip2 install requests
- 接口调用实现类&& 为什么Autowired定义在接口上
1.接口与回调 package edu.cqu.interfaceTest; import java.awt.Toolkit; import java.awt.event.ActionEvent; i ...
- js原型补充
js定义函数: <script> function A() {} let a1 = new A(); let a2 = new A(); // 为A类添加原型 => 类似于类属性 A ...