在JS中的API测试之间传输变量

问题描述 投票:0回答:1

我有以下问题。我开始创建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" : "[email protected]",
    "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;
javascript api testing mocha
1个回答
0
投票

好的,下次测试的持有者现在正在工作,但我有一个问题。为什么在auth_token中保存的bearer保存在其他测试类中,而不是下面的类,这里我们有一行:

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" : "[email protected]",
    "password" : "Test123"
     }
   });
assert.isNotNull(result);
assert.property(result, 'token');
assert.property(result, 'user');
 }).timeout(15000);
 });
© www.soinside.com 2019 - 2024. All rights reserved.