zoukankan      html  css  js  c++  java
  • 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命令执行流程

    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

  • 相关阅读:
    主从数据库
    Linux 安装 mysql
    centos7.5上安装go1.13.4
    Linux 安装php
    CENTOS7下安装redis
    CentOS 7安装Etherpad(在线协作编辑)
    nginx《一安装》
    springboot中redis取缓存类型转换异常
    linux安装mysql
    linux上传下载文件(转载https://www.jb51.net/article/143112.htm)
  • 原文地址:https://www.cnblogs.com/mrwuzs/p/11969100.html
Copyright © 2011-2022 走看看