Rally是OpenStack官方默认的压测工具,常用来进行OpenStack各组件的性能测试。之前在用Rally测试的时候,跑测试用例会出现认证失败的错误,如下所示:
AuthenticationFailed: Failed to authenticate to http://controller:5000/v3 for user 'c_rally_799b502d_pHl4QR12' in project 'c_rally_799b502d_tv0PUUUR': The request you have made requires authentication.
测试用例是很简单的创建-删除用户,其内容如下:
{
"KeystoneBasic.create_delete_user": [
{
"args": {},
"runner": {
"type": "constant",
"times": 2,
"concurrency": 1
},
"sla": {
"failure_rate": {
"max": 0
}
}
}
]
}
测试输出的结果也不正常:
经研究发现,Rally在测试时,会创建临时租户和用户,从上述输出可以看出,在该测试场景下,创建了租户c_rally_799b502d_tv0PUUUR和用户c_rally_799b502d_pHl4QR12,测试结束后会自动清除。
继续看报错的输出,发现有一条警告信息:
WARNING rally_openstack.services.identity.keystone_v3 [-] Unable to set member role to created user.
意思是说:不能给创建的用户设置member角色。问题就出在这里,通过命令行查看OpenStack中已经创建的角色有哪些:
openstack role list
输出如下:
发现的确是没有member这个角色,我们可以创建这个角色:
openstack role create member
再次进行测试时,就正常了: