[DEFAULT]
debug = #是否开启DEBUG模式
log_file = #日志文件名
log_dir = #日志文件路径
[auth]
use_dynamic_credentials = #是否开启动态凭证
admin_username = #管理员用户名
admin_password = #管理员密码
admin_project_name = #管理员项目名
admin_domain_name = #管理员域名
[service_available]
nova = #nova是否开启
neutron = #neutron是否开启
cinder = #cinder是否开启
glance = #glance是否开启
[scenario]
img_dir = #镜像文件存储路径
img_file = #镜像文件名
[validation]
image_ssh_user = #SSH连接用户名
image_ssh_password = #SSH连接密码
[compute]
image_ref = #创建虚机的默认镜像
image_ref_alt = #虚机rebuild的镜像
flavor_ref = #创建虚机的默认规格
flavor_ref_alt = #虚机resize的规格
min_compute_nodes = #计算节点数
min_microversion = #支持的最低nova micro version
max_microversion = #支持的最高nova micro version
[compute-feature-enabled]
snapshot = #是否开启快照功能
shelve = #是否开启shelve功能
live_migration = #是否开启热迁功能
cold_migration = #是否开启冷迁功能
volume_backed_live_migration = #是否开启卷启动虚机的热迁移功能
resize = #是否开启resize功能
vnc_console = #是否开启VNC控制台功能
[network]
public_network_id = #外网ID
floating_network_name = #外网名称
[network-feature-enabled]
ipv6_subnet_attributes = #是否开启IPv6子网
ipv6 = #是否开启IPv6
[volume]
volume_size = #卷大小
min_microversion = #支持的最低cinder micro version
max_microversion = #支持的最高cinder micro version
storage_protocol = #存储协议
vendor_name = #厂商名称
[volume-feature-enabled]
bootable = #卷启动
backup = #卷备份
snapshot = #卷快照
[identity]
region = #区域
auth_version = #keystone版本
uri = #认证服务URI
uri_v3 = #认证服务v3 URI
配置文件主要由以下几个部分:
配置项组 (中文) | 配置项组 (英文) | 功能 |
---|---|---|
默认 | DEFAULT | 调试参数 |
认证信息 | auth | 认证参数 |
服务可用性 | service-available | 服务是否开启 |
计算 | compute | 计算模块测试用例默认参数 |
网络 | network | 网络模块测试用例默认参数 |
块存储 | volume | 存储模块测试用例默认参数 |
计算功能 | compute-feature-enabled | 计算模块内功能开关 |
网络功能 | network-feature-enabled | 网络模块内功能开关 |
存储功能 | volume-feature-enabled | 存储模块内功能开关 |
场景测试 | scenario | 场景测试测试用例默认参数 |
验证 | validation | 验证SSH连接的参数 |
Tempest测试时有动态凭证(Dynamic Credential)和静态凭证(Preprovision Credential)2种选项。
动态凭证指执行每个测试用例类的时候使用admin权限创建项目、用户并指定user的角色,每一个资源都在该项目下。
动态凭证所需的认证部分配置内容如下:
[auth]
use_dynamic_credentials = true
admin_username = admin
admin_project_name = admin
admin_password =
admin_domain_name = Default
use_dynamic_credentials用于开启动态凭证。由于创建项目、用户等需要管理员权限,其余关于管理员的认证信息也需要填写完整。
动态凭证可根据执行测试用例时的需要创建项目和用户,对执行测试的并行性没有影响。
静态凭证指预先指定好执行测试用例的项目、用户等凭证信息。采用这种方式时,Tempest不会创建新的项目和用户。
在Tempest中可使用tempest account-generator创建用于指定并行数的项目和用户。
静态凭证所需的认证部分配置内容如下:
[auth]
use_dynamic_credentials = false
test_accounts_file =
开启静态凭证需要关闭use_dynamic_credentials,并填写保存着认证信息的.yaml文件。
Tempest测试脚本中创建虚机需要指定网络,网络的来源有以下三种:
配置文件中fixed_network_name指向的网络,该网络需对所有租户可见。
account file中指定的网络,该网络一般为tempest account generator在创建租户时创建。
tempest脚本在setup_credential()时创建的网络。
静态凭证下的网络可使用fixed network或account file中指定的网络。在二者同时存在的情况下,优先使用account file中的网络,fixed network为备选方案。
动态凭证下的网络可使用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的配置。
可使用以下几种方法执行Tempest测试用例。
[DEFAULT]
test_path=./tempest/test_discover
[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 串行测试
运行以下命令:
python -m testtools.run
此时Tempest配置文件应在/etc/tempest目录下。