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命令执行流程

  1. 由命令行发起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配置文件的更多相关文章

  1. Linux运维--实践-Rally

    1.rally简介 OpenStack Rally 是一个自动化测试工具,社区希望通过 Rally 来解答 "How does OpenStack work at scale?(如何规模化运 ...

  2. OpenStack Benchmark - Rally

    作为以基于OpenStack的云平台的基准测试工具 -- Rally, 其功能不仅是测试云的性能&&稳定性, 还可以安装OpenStack,以及以良好的表现形式(web 页面)展现测试 ...

  3. spring task定时器的配置使用

    spring task的配置方式有两种:配置文件配置和注解配置. 1.配置文件配置 在applicationContext.xml中增加spring task的命名空间: xmlns:task=&qu ...

  4. rally测试opentack------安装部署和简单实践

    1,下载 git clone git://git.openstack.org/openstack/rally 或者 git clone https://git.openstack.org/openst ...

  5. OpenStack Rally 质量评估与自动化测试利器

    目录 文章目录 目录 问题描述 Rally 简介 应用场景 应用案例 Rally 安装 Rally 使用 Rally 架构 Rally Plugin 分析与实现 程序入口 执行 rally task ...

  6. rally问题合集

    rally 执行过程中涉及到keystone的用例,需要调用adminurl,在-/rally/lib/python2.7/site-packages/rally/osclients.py(主机文件的 ...

  7. kolla-ansible-----rally模块

    Rally简介 Rally是OpenStack社区推出开源测试工具,可用于对OpenStack各个组件进行性能测试. 通过使用Rally组件,用户可完成OpenStack云计算平台的安装部署.功能验证 ...

  8. Ansible学习笔记

    一.Ansible简介 Ansible是一种agentless(基于ssh),可实现批量配置.命令执行和控制,基于Python实现的自动化运维工具. 其特性有: ①模块化:通过调用相关模块,完成指定任 ...

  9. open-falcon 安装

    openfalcon 规划 拓扑图 transfer 配置文件 [root@openfalcon_transfer1 transfer]# cat cfg.json { "debug&quo ...

随机推荐

  1. Computer Vision_2_Active Shape Models:Active Shape Models-Their Training and Application——1995

    此为计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面. 1. Active Appearance Models 活动表观模型和活动轮廓模型基本思想来源 Snake,现在 ...

  2. git 判断路径是否是 git 仓库

    git 判断路径是否是 git 仓库 import subprocess repo_dir = "../path/to/check/" command = ['git', 'rev ...

  3. 关于IO的同步,异步,阻塞,非阻塞

    上次写了一篇文章:Unix IO 模型学习.恰巧在这次周会的时候,@fp1203 (goldendoc成员之一) 正好在讲解poll和epoll的底层实现.中途正好讨论了网络IO的同步.异步.阻塞.非 ...

  4. 使用Xcode Instruments定位APP稳定性问题

    Xcode Instruments提供了各种各样的工具用来定位APP的各种稳定性问题.这里简单总结几个问题: 1. 内存泄漏 Xcode->Open Developer Tools->In ...

  5. LNMP原理

    在linux系统中,LNMP是目前网站主流架构之一,LNMP中L指linux系统平台,N是nginx指网站的前端程序,发布静态页面和调用外部程序解析动态页面,M是mysql指网站的后台数据库,P是PH ...

  6. Linux初始化脚本

    以下脚本用于linux系统的初始化脚本,可以在服务器系统安装完毕之后立即执行.脚本结合各位大牛一些参数,已经在CentOS 5下通过. 使用方法:将其复制,保存为一个shell文件,比如init.sh ...

  7. Laravel 项目中事件控制的体会--综合应用 trait 多态

    1 我们想像有这样的需求 1.1 应用中有两个类.其一是 荣誉(Honour)其一是 档案(Archive)Honour 和 Arhcive 是多态关联.即拥有档案属性的不只荣誉类,还有更多的类去关联 ...

  8. 【8.27-模拟赛】remove

    题解: 代码: #include<iostream> #include<algorithm> #include<cstdio> #include<cstrin ...

  9. mysql查询字段中含有中文

    查询mysql数据库中字段中含有中文使用正则表达式: 例如: select create_time,nickname from eb_engineer where not(nickname regex ...

  10. php &#编码/php unicode转码/php &#数字编码

    今天使PHP开发用到了Unicode的编码与解码,将unicode转为中文,再将中文转Unicode这样的操作是非常常见的,所以小编将这两个unicode中文互转函数给作为一个笔记保存起来,非常的简单 ...