思路
请求需要登录授权的接口,就意味着你要传token给接口,所以请求接口之前就要先获取token,因为登录成功后服务端才会返回token,而token又设置了时效,所以每次请求接口前最好能自动获取到最新的token,那么只能每次请求需要登录授权的接口之前先请求登录接口,这样才能保证每次获取到最新的token。获取到token后再请求需要登录授权的接口。
步骤
配置环境变量token请求接口界面authorization的类型选择bearertoken,取环境变量token的值,写法如所示:如果还需要传其它参数,则根据不同请求方式在不同的地方设置参数值,例如请求方式为”post“,则在body内设置好参数,如所示:在pre-requestscript中写JS脚本,访问登录接口,获取token,再赋值给环境变量”token“,具体参考以下脚本代码
//构造登录请求
const loginRequest = {
url: 'http://ip地址/project_name/manage/login',
method: 'POST',
header: 'Content-Type: application/json', //注意要在Header中声明内容使用的类型
body: {
mode: 'raw', // 使用raw(原始)格式
raw: JSON.stringify({ account:'sys',password:'123456' }) //要将JSON对象转为文本发送
}
};
//发送请求
pm.sendRequest(loginRequest, function (err, response) {
if(err){//err返回null,则对应的boolean值是false
console.log(err);
}else{
// console.log(err);
// console.log(response.text());
var jsonData = response.json();//返回json对象
console.log('jsonData',jsonData);//赋值给jsonData,再打印输出到控制台
var token = jsonData.data.token;//jsonData的data属性也是个json对象,该对象有token属性
console.log('token',token);
// console.log('textData',response.text())
pm.environment.set('token', token);//赋值给环境变量token
}
});
登录密码如果要加密怎么办
var password = pm.environment.get('password');
var md5Password= CryptoJS.MD5(password).toString();//使用MD5()方法对变量password的内容加密,然后转成字符串
// pm.environment.set('password',md5Password);//加密后的密码字符串赋值给环境变量password
//构造登录请求
const loginRequest = {
url: 'https://www.xxx.com/xxx/manage/login',
method: 'POST',
header: 'Content-Type: application/json', //注意要在Header中声明内容使用的类型
body: {
mode: 'raw', // 使用raw(原始)格式
raw: JSON.stringify({ account:'admin',password:md5Password}) //要将JSON对象转为文本发送
}
};
//发送请求
pm.sendRequest(loginRequest, function (err, response) {
if(err){//err返回null,则对应的boolean值是false
console.log(err);
}else{
// console.log(err);
// console.log(response.text());
var jsonData = response.json();//返回json对象
console.log('jsonData',jsonData);//赋值给jsonData,再打印输出到控制台
var token = jsonData.data.token;//jsonData的data属性也是个json对象,该对象有token属性
console.log('token',token);
// console.log('textData',response.text())
pm.environment.set('token', token);//赋值给环境变量token
}
});
文章为作者独立观点,不代表股票交易接口观点