一.前言
使用Tempest测试OpenStack API,除了常用的nosetests命令(模块)外,社区最近增加、并推荐使用testr命令(或模块)。
Testr是一个测试和部分testrepository。testrepository具有良好的文档和一个非常有用的手册。可以跟踪测试的成功与失败以及其他统 计。通过并行运行测试(所以测试得更快),并保持了鲁棒的日志。
貌似,github上有个“subunit”的项目。难道和testr结合使用,能输出跟好读的测试报告?
地址:https://github.com/testing-cabal/subunit
关于Tempest的安装及其nosetests的使用,请参见我的这篇博文:
http://1.chaoxu.sinaapp.com/archives/2816
testr的相关文档,详见官网地址:
https://wiki.openstack.org/wiki/Testr
http://docs.openstack.org/developer/os-testr/
https://testrepository.readthedocs.org/en/latest/
二、Testr的安装和使用
1、安装
# pip install os-testr
Testr依赖如下环境(没明白testr和ostestr的区别是什么):
- os-testr (OpenStack specific-wrapper, contains the “ostestr” command)
- testrepository, contains the “testr” command
fixtures
subunit
2、使用testr
1)查看Testr run测试的帮助信息
# testr help run
2)运行全部测试
# cd tempest
批量运行api、scenario和thirdparty三个测试用例集
# ostestr --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario|thirdparty))'
或者使用如下方法
# testr run
或者,并行运行测试
#testr run --parallel
或者,并行运行某一个测试用例集
/root/tempest/tempest/api testr run --parallel
3)运行单个测试用例
# testr run tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server
4)根据,你机器的CPU数量多少(是测试机还是openstack平台cpu?),设置并发量,比如这里设置为2。分区测试,额,没搞懂。
# testr run --parallel --concurrency=2
5)执行测试分析
# testr run --analyze-isolation
6)使用run_tempest.sh脚本,将创建一个venv虚拟环境并运行整个测试,和使用tox -efull是一样的。
# tox -efull
7)这是用来干嘛的呢?
# tox -esmoke
8)列出测试用例
# testr list-tests
或许是还没彻底搞懂testr,抑或功能太多,总之,用着非常不悦。