searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Tempest测试框架002:配置与运行

2023-02-06 03:32:40
50
0

1 Tempest配置

1.1 配置文件模板

[DEFAULT]

debug = <Boolean>                         #是否开启DEBUG模式

log_file = <String>                       #日志文件名

log_dir = <String>                        #日志文件路径

 

[auth]

use_dynamic_credentials = <Boolean>       #是否开启动态凭证

admin_username = <String>                 #管理员用户名

admin_password = <String>                 #管理员密码

admin_project_name = <String>             #管理员项目名

admin_domain_name = <String>              #管理员域名

  

[service_available]

nova = <Boolean>                          #nova是否开启

neutron = <Boolean>                       #neutron是否开启

cinder = <Boolean>                        #cinder是否开启

glance = <Boolean>                        #glance是否开启

  

[scenario]

img_dir = <String>                        #镜像文件存储路径

img_file = <String>                       #镜像文件名

  

[validation]

image_ssh_user = <String>                 #SSH连接用户名

image_ssh_password = <String>             #SSH连接密码

 

[compute]

image_ref = <String>                      #创建虚机的默认镜像

image_ref_alt = <String>                  #虚机rebuild的镜像

flavor_ref = <String>                     #创建虚机的默认规格

flavor_ref_alt = <String>                 #虚机resize的规格

min_compute_nodes = <Int>                 #计算节点数

min_microversion = <String>               #支持的最低nova micro version

max_microversion = <String>               #支持的最高nova micro version

 

[compute-feature-enabled]

snapshot = <Boolean>                      #是否开启快照功能

shelve = <Boolean>                        #是否开启shelve功能

live_migration = <Boolean>                #是否开启热迁功能

cold_migration = <Boolean>                #是否开启冷迁功能

volume_backed_live_migration = <Boolean>  #是否开启卷启动虚机的热迁移功能

resize = <Boolean>                        #是否开启resize功能

vnc_console = <Boolean>                   #是否开启VNC控制台功能

 

[network]

public_network_id = <String>              #外网ID

floating_network_name = <String>          #外网名称

 

[network-feature-enabled]

ipv6_subnet_attributes = <Boolean>        #是否开启IPv6子网

ipv6 = <Boolean>                          #是否开启IPv6

 

[volume]

volume_size = <Int>                       #卷大小

min_microversion = <String>               #支持的最低cinder micro version

max_microversion = <String>               #支持的最高cinder micro version

storage_protocol = <String>               #存储协议

vendor_name = <String>                    #厂商名称

 

[volume-feature-enabled]

bootable = <Boolean>                      #卷启动

backup = <Boolean>                        #卷备份

snapshot = <Boolean>                      #卷快照

  

[identity]

region = <String>                         #区域

auth_version = <String>   #keystone版本

uri = <String>   #认证服务URI

uri_v3 = <String>   #认证服务v3 URI

 

 

1.2 配置文件的填写

配置文件主要由以下几个部分(Q版):

配置项组 (中文)

配置项组 (英文)

功能

默认

DEFAULT

调试参数

认证信息

auth

认证参数

服务可用性

service-available

服务是否开启

计算

compute

计算模块测试用例参数

网络

network

网络模块测试用例参数

块存储

volume

存储模块测试用例参数

计算功能

compute-feature-enabled

计算模块内功能开关

网络功能

network-feature-enabled

网络模块内功能开关

存储功能

volume-feature-enabled

存储模块内功能开关

场景测试

scenario

场景测试测试用例参数

验证

validation

验证参数(主要与SSH连接等有关)

1.3 动态凭证与静态凭证

Tempest测试时有动态凭证(Dynamic Credential)和静态凭证(Preprovision Credential)2种选项。

1.3.1 动态凭证

动态凭证指执行每个测试用例类的时候使用admin权限创建项目、用户并指定user的角色,每一个资源都在该项目下。

动态凭证所需的认证部分配置内容如下:

[auth]

use_dynamic_credentials = true

admin_username = admin

admin_project_name = admin

admin_password = <admin_password>

admin_domain_name = Default

use_dynamic_credentials用于开启动态凭证。由于创建项目、用户等需要管理员权限,其余关于管理员的认证信息也需要填写完整。

动态凭证可根据执行测试用例时的需要创建项目和用户,对执行测试的并行性没有影响。

1.3.2 静态凭证

静态凭证指预先指定好执行测试用例的项目、用户等凭证信息。采用这种方式时,Tempest不会创建新的项目和用户。

在Tempest中可使用tempest account-generator创建用于指定并行数的项目和用户。

静态凭证所需的认证部分配置内容如下:

[auth]

use_dynamic_credentials = false

test_accounts_file = <path_to_credential_yaml>

开启静态凭证需要关闭use_dynamic_credentials,并填写保存着认证信息的.yaml文件。

1.4 网络

Tempest测试脚本中创建虚机需要指定网络,网络的来源有以下三种:

 

  • 配置文件中fixed_network_name指向的网络,该网络需对所有租户可见。
  • account file中指定的网络,该网络一般为tempest account generator在创建租户时创建。
  • tempest脚本在setup_credential()时创建的网络。

1.4.1 静态凭证

静态凭证下的网络可使用fixed network或account file中指定的网络。在二者同时存在的情况下,优先使用account file中的网络,fixed network为备选方案。

1.4.2 动态凭证

动态凭证下的网络可使用fixed network或setup_credential时创建的网络。在二者同时存在的情况下,优先使用setup_credential中的网络,fixed network为备选方案。

若使用setup_credential()时创建的网络,需要注意配置文件中的create_isolated_networks选项,该选项默认为True,即开启动态创建的网络。若该选项为False,则不能使用动态创建的网络。

需要使用动态创建网络的脚本测试用例类中需覆盖基类的setup_credential(),并在调用父类setup_credential()前调用prepare_instance_network(),如:

@classmethod

def setup_credentials(cls):

    cls.prepare_instance_network()

    super(ServerActionsTestJSON, cls).setup_credentials()

prepare_instance_network()会创建一整套VPC,且路由的网关为ext-net:

 

@classmethod

def prepare_instance_network(cls):

    if (CONF.validation.auth_method != 'disabled' and

            CONF.validation.connect_method == 'floating'):

        cls.set_network_resources(network=True, subnet=True, router=True,

                                  dhcp=True)

使用该函数创建VPC时需要注意tempest配置文件中validation的配置。

2 Tempest运行

可使用以下几种方法执行Tempest测试用例。

 

2.1 Tempest命令行

2.1.1 方式一

创建工作空间(tempest init my_space)

执行后会在目录下形成名为my_space的文件夹,其中/etc目录可放置tempest的配置文件。

执行测试(tempest run)

运行测试,可使用regex指定正则表达式,可指定并行数等。

2.1.2 方式二

创建.stestr.conf文件

文件中包含stestr的配置信息,如:

[DEFAULT]

test_path=./tempest/test_discover

执行测试(tempest run)。

2.1.3 tempest run命令

[root@ ]# tempest run --help

usage: tempest run [-h] [--workspace WORKSPACE]

                   [--workspace-path WORKSPACE_PATH]

                   [--config-file CONFIG_FILE] [--smoke | --regex REGEX]

                   [--black-regex BLACK_REGEX]

                   [--whitelist-file WHITELIST_FILE]

                   [--blacklist-file BLACKLIST_FILE] [--load-list LOAD_LIST]

                   [--list-tests] [--concurrency CONCURRENCY]

                   [--parallel | --serial] [--save-state] [--subunit]

                   [--combine]

 

Run tempest

 

optional arguments:

  --workspace WORKSPACE

                        指定工作空间

  --config-file CONFIG_FILE

                        指定配置文件

  --smoke, -s           只运行冒烟测试

  --regex REGEX, -r REGEX

                        指定正则表达式

  --black-regex BLACK_REGEX

                        指定正则表达式,排除符合条件的用例

  --concurrency CONCURRENCY, -w CONCURRENCY

                        指定并发数,默认为CPU个数

  --parallel            是否并行

  --serial, -t          串行测试

2.2 stestr

  • 创建.stestr.conf文件
  • 执行测试(stestr run)

2.3 testtools

运行以下命令:

python -m testtools.run <testcase_name>

此时Tempest配置文件应在/etc/tempest目录下。

0条评论
0 / 1000
杨****帆
4文章数
0粉丝数
杨****帆
4 文章 | 0 粉丝
原创

Tempest测试框架002:配置与运行

2023-02-06 03:32:40
50
0

1 Tempest配置

1.1 配置文件模板

[DEFAULT]

debug = <Boolean>                         #是否开启DEBUG模式

log_file = <String>                       #日志文件名

log_dir = <String>                        #日志文件路径

 

[auth]

use_dynamic_credentials = <Boolean>       #是否开启动态凭证

admin_username = <String>                 #管理员用户名

admin_password = <String>                 #管理员密码

admin_project_name = <String>             #管理员项目名

admin_domain_name = <String>              #管理员域名

  

[service_available]

nova = <Boolean>                          #nova是否开启

neutron = <Boolean>                       #neutron是否开启

cinder = <Boolean>                        #cinder是否开启

glance = <Boolean>                        #glance是否开启

  

[scenario]

img_dir = <String>                        #镜像文件存储路径

img_file = <String>                       #镜像文件名

  

[validation]

image_ssh_user = <String>                 #SSH连接用户名

image_ssh_password = <String>             #SSH连接密码

 

[compute]

image_ref = <String>                      #创建虚机的默认镜像

image_ref_alt = <String>                  #虚机rebuild的镜像

flavor_ref = <String>                     #创建虚机的默认规格

flavor_ref_alt = <String>                 #虚机resize的规格

min_compute_nodes = <Int>                 #计算节点数

min_microversion = <String>               #支持的最低nova micro version

max_microversion = <String>               #支持的最高nova micro version

 

[compute-feature-enabled]

snapshot = <Boolean>                      #是否开启快照功能

shelve = <Boolean>                        #是否开启shelve功能

live_migration = <Boolean>                #是否开启热迁功能

cold_migration = <Boolean>                #是否开启冷迁功能

volume_backed_live_migration = <Boolean>  #是否开启卷启动虚机的热迁移功能

resize = <Boolean>                        #是否开启resize功能

vnc_console = <Boolean>                   #是否开启VNC控制台功能

 

[network]

public_network_id = <String>              #外网ID

floating_network_name = <String>          #外网名称

 

[network-feature-enabled]

ipv6_subnet_attributes = <Boolean>        #是否开启IPv6子网

ipv6 = <Boolean>                          #是否开启IPv6

 

[volume]

volume_size = <Int>                       #卷大小

min_microversion = <String>               #支持的最低cinder micro version

max_microversion = <String>               #支持的最高cinder micro version

storage_protocol = <String>               #存储协议

vendor_name = <String>                    #厂商名称

 

[volume-feature-enabled]

bootable = <Boolean>                      #卷启动

backup = <Boolean>                        #卷备份

snapshot = <Boolean>                      #卷快照

  

[identity]

region = <String>                         #区域

auth_version = <String>   #keystone版本

uri = <String>   #认证服务URI

uri_v3 = <String>   #认证服务v3 URI

 

 

1.2 配置文件的填写

配置文件主要由以下几个部分(Q版):

配置项组 (中文)

配置项组 (英文)

功能

默认

DEFAULT

调试参数

认证信息

auth

认证参数

服务可用性

service-available

服务是否开启

计算

compute

计算模块测试用例参数

网络

network

网络模块测试用例参数

块存储

volume

存储模块测试用例参数

计算功能

compute-feature-enabled

计算模块内功能开关

网络功能

network-feature-enabled

网络模块内功能开关

存储功能

volume-feature-enabled

存储模块内功能开关

场景测试

scenario

场景测试测试用例参数

验证

validation

验证参数(主要与SSH连接等有关)

1.3 动态凭证与静态凭证

Tempest测试时有动态凭证(Dynamic Credential)和静态凭证(Preprovision Credential)2种选项。

1.3.1 动态凭证

动态凭证指执行每个测试用例类的时候使用admin权限创建项目、用户并指定user的角色,每一个资源都在该项目下。

动态凭证所需的认证部分配置内容如下:

[auth]

use_dynamic_credentials = true

admin_username = admin

admin_project_name = admin

admin_password = <admin_password>

admin_domain_name = Default

use_dynamic_credentials用于开启动态凭证。由于创建项目、用户等需要管理员权限,其余关于管理员的认证信息也需要填写完整。

动态凭证可根据执行测试用例时的需要创建项目和用户,对执行测试的并行性没有影响。

1.3.2 静态凭证

静态凭证指预先指定好执行测试用例的项目、用户等凭证信息。采用这种方式时,Tempest不会创建新的项目和用户。

在Tempest中可使用tempest account-generator创建用于指定并行数的项目和用户。

静态凭证所需的认证部分配置内容如下:

[auth]

use_dynamic_credentials = false

test_accounts_file = <path_to_credential_yaml>

开启静态凭证需要关闭use_dynamic_credentials,并填写保存着认证信息的.yaml文件。

1.4 网络

Tempest测试脚本中创建虚机需要指定网络,网络的来源有以下三种:

 

  • 配置文件中fixed_network_name指向的网络,该网络需对所有租户可见。
  • account file中指定的网络,该网络一般为tempest account generator在创建租户时创建。
  • tempest脚本在setup_credential()时创建的网络。

1.4.1 静态凭证

静态凭证下的网络可使用fixed network或account file中指定的网络。在二者同时存在的情况下,优先使用account file中的网络,fixed network为备选方案。

1.4.2 动态凭证

动态凭证下的网络可使用fixed network或setup_credential时创建的网络。在二者同时存在的情况下,优先使用setup_credential中的网络,fixed network为备选方案。

若使用setup_credential()时创建的网络,需要注意配置文件中的create_isolated_networks选项,该选项默认为True,即开启动态创建的网络。若该选项为False,则不能使用动态创建的网络。

需要使用动态创建网络的脚本测试用例类中需覆盖基类的setup_credential(),并在调用父类setup_credential()前调用prepare_instance_network(),如:

@classmethod

def setup_credentials(cls):

    cls.prepare_instance_network()

    super(ServerActionsTestJSON, cls).setup_credentials()

prepare_instance_network()会创建一整套VPC,且路由的网关为ext-net:

 

@classmethod

def prepare_instance_network(cls):

    if (CONF.validation.auth_method != 'disabled' and

            CONF.validation.connect_method == 'floating'):

        cls.set_network_resources(network=True, subnet=True, router=True,

                                  dhcp=True)

使用该函数创建VPC时需要注意tempest配置文件中validation的配置。

2 Tempest运行

可使用以下几种方法执行Tempest测试用例。

 

2.1 Tempest命令行

2.1.1 方式一

创建工作空间(tempest init my_space)

执行后会在目录下形成名为my_space的文件夹,其中/etc目录可放置tempest的配置文件。

执行测试(tempest run)

运行测试,可使用regex指定正则表达式,可指定并行数等。

2.1.2 方式二

创建.stestr.conf文件

文件中包含stestr的配置信息,如:

[DEFAULT]

test_path=./tempest/test_discover

执行测试(tempest run)。

2.1.3 tempest run命令

[root@ ]# tempest run --help

usage: tempest run [-h] [--workspace WORKSPACE]

                   [--workspace-path WORKSPACE_PATH]

                   [--config-file CONFIG_FILE] [--smoke | --regex REGEX]

                   [--black-regex BLACK_REGEX]

                   [--whitelist-file WHITELIST_FILE]

                   [--blacklist-file BLACKLIST_FILE] [--load-list LOAD_LIST]

                   [--list-tests] [--concurrency CONCURRENCY]

                   [--parallel | --serial] [--save-state] [--subunit]

                   [--combine]

 

Run tempest

 

optional arguments:

  --workspace WORKSPACE

                        指定工作空间

  --config-file CONFIG_FILE

                        指定配置文件

  --smoke, -s           只运行冒烟测试

  --regex REGEX, -r REGEX

                        指定正则表达式

  --black-regex BLACK_REGEX

                        指定正则表达式,排除符合条件的用例

  --concurrency CONCURRENCY, -w CONCURRENCY

                        指定并发数,默认为CPU个数

  --parallel            是否并行

  --serial, -t          串行测试

2.2 stestr

  • 创建.stestr.conf文件
  • 执行测试(stestr run)

2.3 testtools

运行以下命令:

python -m testtools.run <testcase_name>

此时Tempest配置文件应在/etc/tempest目录下。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0