一、用root账号登录并生成token
1.创建一个用例,路径是 https://IP/login,post方法
2.声明数据格式,在Header的Tab页中输入一组key/value
Content-Type/ application/json
3.为登录口令创建加密串,openbmc登录用的加密串,将生成的串存储为参数。
在pre-request-script的Tab页输入
var pw = CryptoJS.enc.Utf8.parse(“xxx”)
var base64 = CryptoJS.enc.Base64.stringify(pw)
pm.environment.set(“originPassword”, base64)
4.输入post方法的参数,使用上一步生成的originPassword参数
在Body的Tab页输入
{“username” : “root”, “password” : “{ {originPassword} }” }
5.完成测试代码,并生成root-token全局变量,这个变量可以在所有的用例中作为登录认证来使用
在Test的Tab页输入
var data = JSON.parse(responseBody);
if (data.token) {
tests[“Body has token”] = true;
pm.globals.set(“root-token”, data.token);
}
else {
tests[“Body has token”] = false;
}
二、在用例中使用root-token,以生成oper用户为例
1.创建一个用例,路径是 https://IP/redfish/v1/AccountService/Accounts,POST方法
2.在Header的Tab页除了声明数据格式Content-Type/ application/json,再输入一组key/value,X-Auth-Token:NaN
3.如果有加密数据,仍需要为加密后的串设置参数。如果post参数中没有加密串,可以跳过这一步
在pre-request-script的Tab页输入
var pw = CryptoJS.enc.Utf8.parse(“xxx”)
var base64 = CryptoJS.enc.Base64.stringify(pw)
pm.environment.set(“password”, base64)
4.输入post方法的参数,使用上一步生成的root-password参数
在Body的Tab页输入
{“UserName”:”oper”,”RoleId”:”Operator”,”Enabled”:true,”Password”:”{ {password} }”}
5.完成测试代码,确保输出信息中有成功信息
在Test的Tab页输入
tests[“create oper “] = responseBody.has(“The resource has been created successfully”);
三、以此类推
1.可以对root之外的用户生成token,不同角色的账号权限不同
2.POST\GET\PATCH\DELETE,只要是登录状态的用例,都要在Header的X-Auth-Tokentoken项输入对应的用户token