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/
참고
https://ian_lin.gitbooks.io/javascript-testing/content/chapter6.html