执行Openstack-Rally测试用例

时间:2016-04-15 11:48:17

标签: rally openstack openstack-nova

我的ubuntu服务器上安装了openstack liberty。我需要运行所有Rally测试用例。 我做了集会部署。现在我能够执行单个' .json'归档并获取' .html'和' .xml'输出。 例如: root @ ubuntu:/ usr / share / rally / samples / tasks / scenarios / nova #rarally task start list-images.json 这样我就可以执行个人' .json'仅限文件。 我的要求: 我有大约250' .json'要执行的文件。如何执行所有' .josn'一次性文件。 openstack有什么框架来执行整个集会案例(' .json'文件)。

2 个答案:

答案 0 :(得分:0)

实际上,您不应该运行200个单独的文件。您想运行一个包含它们的任务。 Rally允许您在单个文件中放置任意数量的测试用例。例如:

---
  NovaServers.boot_and_delete_server:
    -
      args:
        flavor:
            name: "m1.tiny"
        image:
            name: "^cirros.*uec$"
        force_delete: false
      runner:
        type: "constant"
        times: 10
        concurrency: 2
      context:
        users:
          tenants: 3
          users_per_tenant: 2

  NovaServers.boot_and_list_server:
    -
      args:
        flavor:
            name: "m1.tiny"
        image:
            name: "^cirros.*uec$"
        detailed: True
      runner:
        type: "constant"
        times: 1
        concurrency: 1
      context:
        users:
          tenants: 1
          users_per_tenant: 1

考虑到Rally接受jinja2模板,所以你可以使用jinja2的所有功能,包括“文件包含选项”看看这里: https://rally.readthedocs.io/en/latest/tutorial/step_5_task_templates.html

答案 1 :(得分:-1)

最好的方法是编写一个脚本来运行所有任务

例如:

#!/bin/bash

cd `dirname $0`
time=`date +%H:%M:%S`
mkdir -p testcase_result/$time
testcase_file=testcase_result/$time/rally_testcase.txt
total_file=testcase_result/$time/rally_total.txt
rally_task_dir=source/samples/tasks/scenarios

#keystone
keystone_case=`find $rally_task_dir/keystone -name "*.yaml"`
keystone_num=`grep -rn '\<Keystone' $keystone_case | wc -l`
echo "Keystone Testcases Number: "$keystone_num > $total_file
echo "Keystone" > $testcase_file
grep -rn '\<Keystone' $keystone_case | awk '{print NR":",$2}' >> $testcase_file
sed -i 's/Keystone.*\.//g' $testcase_file

#glance
glance_case=`find $rally_task_dir/glance -name "*.yaml"`
glance_num=`grep -rn '\<Glance' $glance_case | wc -l`
echo "Glance Testcases Number: "$glance_num >> $total_file
echo "" >> $testcase_file
echo "Glance" >> $testcase_file
grep -rn '\<Glance' $glance_case | awk '{print NR":",$2}' >> $testcase_file
sed -i 's/Glance.*\.//g' $testcase_file

#nova
nova_case=`find $rally_task_dir/nova -name "*.yaml"`
nova_num=`grep -rn '\<Nova' $nova_case | wc -l`
echo "Nova Testcases Number: "$nova_num >> $total_file
echo "" >> $testcase_file
echo "Nova" >> $testcase_file
grep -rn '\<Nova' $nova_case | awk '{print NR":",$2}' >> $testcase_file
sed -i 's/Nova.*\.//g' $testcase_file

#neutron
neutron_case=`find $rally_task_dir/neutron -name "*.yaml"`
neutron_num=`grep -rn '\<Neutron' $neutron_case | wc -l`
echo "Neutron Testcases Number: "$neutron_num >> $total_file
echo "" >> $testcase_file
echo "Neutron" >> $testcase_file
grep -rn '\<Neutron' $neutron_case | awk '{print NR":",$2}' >> $testcase_file
sed -i 's/Neutron.*\.//g' $testcase_file

#cinder
cinder_case=`find $rally_task_dir/cinder -name "*.yaml"`
cinder_num=`grep -rn '\<Cinder' $cinder_case | wc -l`
echo "Cinder Testcases Number: "$cinder_num >> $total_file
echo "" >> $testcase_file
echo "Cinder" >> $testcase_file
grep -rn '\<Cinder' $cinder_case | awk '{print NR":",$2}' >> $testcase_file
sed -i 's/Cinder.*\.//g' $testcase_file

#total
let total=$keystone_num+$glance_num+$nova_num+$neutron_num+$cinder_num
echo "Total Testcases Number: $total" >> $total_file
sed -i 's/:$//' $testcase_file

# Run Scripts tests
cd testcase_result/$time
for i in ../../rally_scripts/*.sh
do
    bash $i
done