Frisbyjs (Automate Rest Api Testing) - 3

실제 예제

로그인을 먼저 한후 bearer token을 가져와서 리스트를 가져오는 테스트 코드

var frisby = require('frisby');
var token ='';

frisby.create('login')
    //로그인의 경우에는 일반적으로 컨텐트 타입을 'application/x-www-form-urlencoded'로 사용한다. 
    .addHeader('Content-Type', 'application/x-www-form-urlencoded')
    .post('http://yourapi.com/token',{
      'grant_type':'password',
      'username':'youruserid',
      'password':'yourpassword'
    })
    .inspectJSON()      // response json 을 찍어보자. 
    .inspectHeaders()   // headers 를 찍어보자 
    .expectStatus(200)  // 200번을 기대함...로그인성공을 기대함. 
    .expectJSONTypes({  // json 타입을 확인하자..각자 맞는 타입인지 ..
        access_token: String,
        token_type: String,
        expires_in: Number,
        userName: String,
        // refresh_token: String,
        'as:client_id': String,
        '.issued': String,
        '.expires': String
    })
    .expectJSON({   // json값을 체크해보자.. 
        token_type: 'bearer',
        userName: 'youruserid'
    })
    .afterJSON(function (json) { 
      // 로그인이 성공했으므로 토큰을 가져올수 있다. 이 토큰을 헤더에 실어 보내면 인증이 된다. 
      token = json.access_token;
      //console.log(token);

      frisby.create('getjoblist')
      .addHeader('Authorization','Bearer ' + token) // 토큰을 헤더에 싫어보내고 
      .get('http://yourapi.com/lists')
      .expectStatus(200) // 리스트를 가져오고 http status를 200으로 기대함. 
    .toss();

    })
.toss();

관련 글

https://teamsmiley.github.io/2016/08/22/frisby-1/

https://teamsmiley.github.io/2016/08/22/frisby-2/

https://teamsmiley.github.io/2016/08/22/frisby-3/

https://teamsmiley.github.io/2016/08/22/frisby-4/

https://teamsmiley.github.io/2016/08/22/frisby-5/

https://teamsmiley.github.io/2016/08/22/frisby-6/

https://teamsmiley.github.io/2016/08/22/frisby-7/

참고

http://frisbyjs.com/docs/api/

https://ian_lin.gitbooks.io/javascript-testing/content/chapter6.html

teamsmiley's profile image

teamsmiley

2016-08-22 00:00

Read more posts by this author