zoukankan      html  css  js  c++  java
  • kolla-ansible-----rally模块

    Rally简介

    Rally是OpenStack社区推出开源测试工具,可用于对OpenStack各个组件进行性能测试。

    通过使用Rally组件,用户可完成OpenStack云计算平台的安装部署、功能验证、大规模负载测试(性能测试)、输出测试报告等一系列动作。

    Rally安装

    在icos环境中,直接在globals.yml中开启rally。

    enable_rally: "yes"
    

    然后tag安装部署即可。

    如果是性能测试设计主机关闭等操作,建议rally安装在一台非测试节点的机器。

    安装完优化一下参数,rally配置文件位置:/etc/rally/rally.conf

    默认注释所有选项,测试中遇到如下问题:

    1. 获取实例状态超时
    2. 连接超时

    做如下设置,避免超时影响测试结果,时间设置1800s:

    [DEFAULT]
    openstack_client_http_timeout = 1800.0
    [benchmark]
    cinder_volume_create_timeout = 1800.0
    cinder_volume_delete_timeout = 1800.0
    nova_server_boot_timeout = 1800.0
    nova_server_boot_timeout = 1800.0
    

    rally使用

    创建Deployment

    对于已经安装部署了OpenStack系统,有两种方式创建deployment

    1)  使用环境变量创建

    (rally)[root@node135 ~]# more openrc
    export OS_TENANT_NAME=admin
    export OS_USERNAME=admin
    export OS_PASSWORD=xxxx
    export OS_AUTH_URL=http://100.2.28.139:35357
    #生效一下
    source openrc
    #创建
    rally deployment create --fromenv --name=existing
    

    2)  使用json文件创建

    rally deployment create--file=existing.json --name=existing
    

    existing文件模板默认位置/rally-openstack/samples/deployments

    existing.json文件内容如下:

     {
    
        "type":"ExistingCloud",
        "auth_url": "http://10.25.*.*:35357/v3",
        "region_name":"RegionOne",
        "endpoint_type":"public",
        "admin": {
            "username":"admin",
            "password": "****",
            "tenant_name": "admin"
        },
        "users": [
            {
                "username": "nsp_test_1",
                "password":"password",
                "tenant_name":"nsp_tenant_1"
            },
            {
                "username":"nsp_test_2",
                "password":"password2",
                "tenant_name":"nsp_tenant_2"
            }
        ]
    }
    
     
    

    查看所有的deployment列表

    rally deployment list
    

    查看已经创建的deployment详情

    rally deployment show existing
    

    检查deployment

    rally deployment check
    

    检查创建的deployment各项服务是否正常,以下是执行结果

     

    如果中途退出了环境,需要再次定义环境变量

    rally deployment use existing
    

    执行Task

    Task是Rally执行的一个测试单元,执行Task时需要指定入口文件,可以是json文件或者yaml文件

    如下是执行形式:

    rally task start  /rally-openstack/samples/tasks/scenarios/nova/boot_ljy.yaml
    

    常用的场景

    默认场景模板位置 /rally-openstack/samples/tasks/scenarios

    创建与删除虚拟机

    boot-and-delete.yaml
    {% set flavor_name = flavor_name or "m1.tiny" %}   #资源规格
    ---
      NovaServers.boot_and_delete_server:
        -
          args:
            flavor:
                name: "{{flavor_name}}"
            image:
                name: "TestVM"    #镜像名称
            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: "{{flavor_name}}"
            image:
                name: "TestVM"
            auto_assign_nic: true
          runner:
            type: "constant"
            times: 10
            concurrency: 2
          context:
            users:
              tenants: 3
              users_per_tenant: 2
            network:
              start_cidr: "192.168.190.0/24"
              networks_per_tenant: 2
          sla:
            failure_rate:
              max: 0
     
    

    创建云盘

    (rally)[root@control01 ljy]# more create-volume.yaml
    ---
      CinderVolumes.create_volume:
        -
          args:
            size: 1
          runner:
            type: "constant"
            times: 3
            concurrency: 2
          context:
            users:
              tenants: 2
              users_per_tenant: 2
          sla:
            failure_rate:
              max: 0
        -
          args:
            size:
              min: 1
              max: 5
          runner:
            type: "constant"
            times: 3
            concurrency: 2
          context:
            users:
              tenants: 2
              users_per_tenant: 2
          sla:
            failure_rate:
              max: 0
    

    创建与删除网络

    (rally)[root@control01 ljy]# more create-and-delete-networks.yaml
    ---
      NeutronNetworks.create_and_delete_networks:
        -
          args:
            network_create_args: {}
          runner:
            type: "constant"
            times: 10
            concurrency: 1
          context:
            users:
              tenants: 3
              users_per_tenant: 3
            quotas:
              neutron:
                network: -1
          sla:
            failure_rate:
              max: 0
    

    查看Task

    可使用rally  task list,来列出已经执行的task

     

    生成Web测试报告

    使用rally task report [task_id] --out=[outfile.html]可以生成web格式的测试报告

    可能此时的html文件打开会有报错,原因是report.html文件中使用了一些css、js库,而这些库放在了google网站上,因此才会出现这么奇怪的现象。

    需要将report.html里面如下四行中的libs网址:

      <link rel="stylesheet"href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.css">
    
      <script type="text/javascript"src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script>
    
      <script type="text/javascript"src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.13/d3.min.js"></script>
    
      <script type="text/javascript"src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.js"></script>
    

    替换为可以访问的bootcss静态库的libs网址,如下:

      <link rel="stylesheet"href="http://cdn.bootcss.com/nvd3/1.1.15-beta/nv.d3.css">
    
      <script type="text/javascript"src="http://cdn.bootcss.com/angular.js/1.3.3/angular.min.js"></script>
    
      <script type="text/javascript"src="http://cdn.bootcss.com/d3/3.4.13/d3.min.js"></script>
    
      <script type="text/javascript"src="http://cdn.bootcss.com/nvd3/1.1.15-beta/nv.d3.min.js"></script>
    

    之后就可以打开了。或者直接将report.html模板文件的对应行修改掉,这样生成的报告web页面都会自动替换。

    模板文件位置:/usr/lib/python2.7/site-packages/rally/ui/templates/task/report.html

    上面的命令执行成功,可以看到生成的Html文件,在浏览器中可查看Html文件。展示效果如下:

     

  • 相关阅读:
    python-web自动化环境安装
    python-单元测试优化,加入日志
    小谢第17问:三目运算符嵌套使用方法
    小谢第16问:1到6000的正整数正则表达式怎么写?
    小谢第15问:5到60的正整数正则表达式怎么写?
    小谢第14问:多个if语句和else if有什么区别?
    小谢第13问:输入框绑定回车enter事件自动刷新页面
    小谢第12问:初始化页面的时候子组件为什么不渲染?
    小谢第11问:vue中,子组件获取的值怎么传给父组件
    小谢第10问:前端JS下载文件、表格
  • 原文地址:https://www.cnblogs.com/jinyuanliu/p/10948292.html
Copyright © 2011-2022 走看看