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. Mysql 指定字段数据排序 以及django的实现

    业务场景: mysql 查询 select * from dormitory_applysettleorder order by FIELD(status,40) desc django 实现: or ...

  2. 【异常】Cannot run program "git" (in directory "/mnt/software/azkaban-3.79.0"): error=2, No such file or directory

    1 安装azkaban异常 cloudera-scm@cdh4 azkaban-3.79.0]$ ./gradlew build -x test Parallel execution with con ...

  3. Mysql(九):Python连接MySQL数据库之pymysql模块使用

    Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...

  4. (十三)r18 cpu id

    1.cpuid内核接口 lichee/linux-4.4/drivers/soc/sunxi/sunxi-sid.c int sunxi_get_soc_chipid(u8 *chipid) int ...

  5. asp.net 设计音乐网站

    第一步 收集资料 http://www.logoko.com.cn/    --设计logo网站 设计音乐文档  https://wenku.baidu.com/view/3d957617f18583 ...

  6. python基础:数据类型阶段总结

    name =“   alex”1.移除name变量对应的值两边的空格,并输出处理结果      res=name.strip(’  ‘)      print(res) 2.判断neme变量对应的值是 ...

  7. Logstash工作原理

    Logstash事件处理有三个阶段:inputs → filters → outputs.是一个接收,处理,转发日志的工具.支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛 ...

  8. 01—EF开山篇,ORM介绍

    我是2014年接触的EF,用了一年多,感觉非常的方便,现在的公司没有使用,最近有朋友接了两个项目找我帮忙,都想使用EF,自己也有断时间没有使用,借着这个机会复习下.Entity Framework,简 ...

  9. RAID 10是将RAID 1和RAID 0结合

    RAID 10是将RAID 1和RAID 0结合,它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低.由于利用了RAID 0极高的 ...

  10. bind支持mysql

    最近打算将bind的记录信息存入到数据库中去,网上找了下,原来早有老外写好了mysql-bind的补丁,重新编译bind即可实现bind支持mysql存储.(http://mysql-bind.sou ...