javascript - 在 JS 中的 API 测试之间传输变量
问题描述
我有以下问题。我开始创建 e2e api 测试,第一个测试的目的是获取未经授权的用户令牌,第二个测试使用方法头中的第一个测试的值并为授权用户返回令牌 - 毕竟,第二个令牌将用于进一步的测试. 如何将令牌的值保存在变量中并通过测试?
我是 JS 新手,现在我收到“ReferenceError:auth_token 未定义”
const chai = require('chai');
const request = require('request-promise-native');
const mocha = require('mocha');
const config = require('../config');
const assert = chai.assert;
//const describe = mocha.describe;
//const it = mocha.it;
// request.debug = true;
describe('0_auth', () => {
it('should return token for unauthorized user', async () => {
const result = await request({
headers: config.headers,
url: `${config.url}/rest/v1/auth/get-token`,
method: "POST",
json: {
"deviceUuidSource": "DEVICE",
"source" : "KIOSK",
"deviceUuid" : "uniquedeviceuuid"
}
});
assert.isNotNull(result);
assert.property(result, 'token');
var auth_token=result.token;
console.log(auth_token)
}).timeout(15000);
it('should return token for authorized user', async () => {
const result = await request({
headers: Object.assign(config.headers, { 'Authorization': 'Bearer '+auth_token }),
url: `${config.url}/rest/v1/auth/with-password`,
method: "POST",
json: {
"email" : "dulexun3hvw0@10minut.xyz",
"password" : "Test123"
}
});
assert.isNotNull(result);
assert.property(result, 'token');
assert.property(result, 'user');
console.log('token:', result.token);
}).timeout(15000);
});
在进一步的测试中,我想将 Bearer 令牌传递给不同类 config.js 中的 Authorization 字段
config.headers = {
'User-Agent': 'WOR API Tester', // android
Source: 'MOBILE',
'Accept-Language': 'EN',
Authorization:'Bearer '+auth_token;
};
module.exports = config;
解决方案
好的,现在正在为下一次测试获取承载,但我有一个问题。为什么不记名保存在 auth_token 中的其他测试类而不是下面的类,这里我们有一行:
headers: Object.assign(config.headers, { 'Authorization': 'Bearer '+auth_token }),
在其他课程中,我只有以下行
headers: config.headers,
并且没有关于在授权中使用 auth_token 的信息,在 config.js 中也没有关于令牌的信息
const chai = require('chai');
const request = require('request-promise-native');
const mocha = require('mocha');
const config = require('../config');
const assert = chai.assert;
//const describe = mocha.describe;
//const it = mocha.it;
// request.debug = true;
describe('0_auth', () => {
var auth_token = ''
it('should return token for unauthorized user', async () => {
const result = await request({
headers: config.headers,
url: `${config.url}/rest/v1/auth/get-token`,
method: "POST",
json: {
"deviceUuidSource": "DEVICE",
"source" : "KIOSK",
"deviceUuid" : "uniquedeviceuuid"
}
});
assert.isNotNull(result);
assert.property(result, 'token');
auth_token=result.token;
}).timeout(15000);
it('should return token for authorized user', async () => {
const result = await request({
headers: Object.assign(config.headers, { 'Authorization': 'Bearer '+auth_token }),
url: `${config.url}/rest/v1/auth/with-password`,
method: "POST",
json: {
"email" : "dulexun3hvw0@10minut.xyz",
"password" : "Test123"
}
});
assert.isNotNull(result);
assert.property(result, 'token');
assert.property(result, 'user');
}).timeout(15000);
});
推荐阅读
- elm - 获取选择滑块的值并在过滤器中使用它
- mysql - 在没有 postgres 的 heroku 中部署 keycloak
- amazon-web-services - 在没有 SNS 的情况下运行 aws 胶水工作框架时如何发送电子邮件?
- java - 我的进度条有问题,它没有在进行 android studio
- c# - 数据注解从控制器动态获取参数
- java - 使用 Oracle 时,我可以让 Spring 使用 getPooledConnection 而不是从数据源获取连接吗?
- android - Flutter Firestore 如何列出我只有聊天记录的人?
- javascript - JavaScript 无法从 HTML 表单正确运行
- python - Discord.py 和 gRPC 可以一起使用吗?
- git - git revert 在先前提交中的反向效果