Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
A REST API testing framework built on Node.js that makes testing API endpoints straightforward.
Bluecat
will create all the methods for you$ npm install bluecat
POST /checkout/contract
GET /checkout/contract
{
"api": {
"checkout": {
"schema": "http",
"method": ["GET", "POST"]
}
}
}
var expect = require('chai').expect;
var Bluecat = require('bluecat');
var Service = new Bluecat.ServiceSync(Bluecat.Api('api'), 'sample-host.com');
// All requests need to be put into Api.run(), so they will run synchronously
Service.run(function() {
// send POST http://sample-host.com/checkout/contract
var r = Service.checkout.contract.POST({
body: {
cartid: 'test-cart-id'
}
});
// verify response
expect(r.data.statusCode).to.equal(200);
expect(r.data.body).to.have.ownProperty('id');
// send GET http://sample-host.com/checkout/contract
// cookies are automatically maintained
r = Service.checkout.contract.GET();
// verify response
expect(r.data.statusCode).to.equal(200);
expect(r.data.body.cartId).to.eql('test-cart-id');
})
Bluecat.ServiceSync(api, host, options)
Create a new bluecat service object, with desired options.
var Bluecat = require('bluecat');
var Api = Bluecat.Api('mobileapi');
var Service = new Bluecat.ServiceSync(Api, 'api.mobile.walmart.com', {
gzip: true
});
rawRequest(options)
Sometimes we just want to send a request to some host, which is different than the API host we are testing. You can use rawRequest(options)
to fully to send it.
var Bluecat = require('bluecat');
var Api = Bluecat.Api('mobileapi');
var Service = new Bluecat.ServiceSync(Api, 'api.mobile.walmart.com');
var r = Service.rawRequest({
method: 'GET',
json: true,
uri: 'https://thirdparty-host/creditcard/encryption.js',
headers: {'accept-encoding': 'gzip'},
});
expect(r.err).to.equal(null);
expect(r.data.statusCode).to.equal(200);
setProxy(proxy)
Set proxy address, all the requests will be sent via a connection to the proxy server.
var Bluecat = require('bluecat');
var Api = Bluecat.Api('mobileapi');
var Service = new Bluecat.ServiceSync(Api, 'api.mobile.walmart.com');
Service.setProxy('http://127.0.0.1:8888')
resetCookie()
Clean up cookie jar, so the next request won't set any cookies in the header.
var Bluecat = require('bluecat');
var Api = Bluecat.Api('mobileapi');
var Service = new Bluecat.ServiceSync(Api, 'api.mobile.walmart.com');
Service.v1.products.search.GET();
Service.resetCookie();
Service.v1.cart.POST({
body: {
location: '94066'
}
})
setHeaders(headers)
Set headers that will be set in all the requests.
var Bluecat = require('bluecat');
var Api = Bluecat.Api('mobileapi');
var Service = new Bluecat.ServiceSync(Api, 'api.mobile.walmart.com');
Service.setHeaders({'User-Agent': 'Automation'});
setSessionRules(rules)
Set extra session rules other than cookie. Some RESTful APIs defines their own session rules, you can set it in the Bluecat
framework so you don't have to deal with it in the actual test case.
var Bluecat = require('bluecat');
var Api = Bluecat.Api('mobileapi');
var Service = new Bluecat.ServiceSync(Api, 'api.mobile.walmart.com');
// The following sessions rules start with 'start-auth-token-value' in the request header AUTH_TOKEN,
// then grab new value from response header REFRESH_AUTH_TOKEN
// and put it in the next request header AUTH_TOKEN
Service.setSessionRules({
requestHeader: 'AUTH_TOKEN',
responseHeader: 'REFRESH_AUTH_TOKEN',
startSessionHeader: 'start-auth-token-value'
});
Launch the node process like BLUECAT_DEBUG_FILE=/path/to/bluecat.log node script.js
to keep a log file of all the requests/responses information.
Launch the node process like BLUECAT_DEBUG_CONSOLE=true node script.js
to see all the requests/responses information from your console (stdout).
Licensed under the MIT
FAQs
Library for building RESTful API HTTP requests, best for generic RESTful API Test Framework
The npm package bluecat receives a total of 8 weekly downloads. As such, bluecat popularity was classified as not popular.
We found that bluecat demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.