signals-garasu-cli v1.0.46
Garasu
Test Project
A valid project folder should look like
project
|
| garasu.json
|-- test1
| |- index.js
|-- test2
|- index.js
The project is defined by garasu.json
garasu.json
{
tasks: [{
name: "Test 1",
// relative path to the executable script
main: "test2/test1.js"
},{
name: "Test 2",
main: "test2/index.js"
}]
}
Credential
There are two different credential locations;
- ~/.garasu
- or use -u -p -d in the command line
Three different format
{
user: string,
password: string,
domain: string,
}
{
key: string,
token: string,
domain: string
}
/*The APIKey string downloaded from Signals web*/
You are responsible to protect your credential!
Command Line
Install
npm -g install signals-garasu-cli
Setup Test Project
mkdir MyTest
cd MyTest
garasu init
vi test.js
Run Rest Project
# Run test in the garasu.json under current dir
garasu -u <user> -p <password> -d <domain> -r <signals|beta|alpha|zh|zh-2>
# Run test with specific config file
garasu -c <configFile> -u <user> -p <password> -d <domain> -r <signals|beta|alpha|zh|zh-2>
# Run test with scripts
garasu -u <user> -p <password> -d <domain> -r <signals|beta|alpha|zh|zh-2> script1.js script2.js ...
HTML Report
garasu -html
Test script
Garaus will load the Mocha+Chai env for you, and inject global instance: Signals, chai, assert, expect. Help you to focus on the test it self.
create a .babelrc under your project dir if you want to use es6
{
"presets": [
["env", { "targets": { "node": 6 }, "useBuiltIns": true }],
"stage-2",
"es2015"
],
"plugins": ["transform-es2015-modules-commonjs"],
"env": {
"production": {
"plugins": ["babel-plugin-dev-expression"]
},
"development": {
"plugins": [
"transform-class-properties",
"transform-es2015-classes"
]
}
},
"sourceMaps": "false"
}
/*
Signals, assert, expect are automatically injected into global scope by garasu.
*/
let schema = {
title: 'Signals Response Schema',
type: 'object',
required: [ 'replied','request','version','message', 'payload' ],
properties: {
replied: {
type: 'array',
minItems: 1,
items: { type: 'number' }
},
request: { type: 'string' },
message: { type: 'array' },
version: { type: [ 'null', 'number' ] },
payload: {
$ref: "#definition/paging-item-payload"
}
},
definitions: {
'paging-item-payload': {
type: 'object',
required: [ 'items', 'total' ],
properties: {
total: { type: 'number' },
items: {
type: 'array',
items: { $ref: "#definition/job-status" }
}
}
},
"job-status": {
type: 'object',
required: [ 'name', 'source', 'user', 'version', 'fid', 'current', 'status' ],
properties: {
name: { type: 'string' },
user: { type: 'user' },
version: { type: 'number' },
fid: { type: 'string' },
current: { type: 'boolean', pattern: '^true$' },
status: {
type: 'object',
required: [ 'code', 'detail' ],
properties: {
code: {
type: 'number',
minimum: 40,
maximum: 40
},
detail: { type: 'string' }
}
}
}
}
}
}
describe('/user/jobs', () => {
describe('filters', () => {
it('Should get a list of fninished jobs', (done) => {
var filters = { "status.code": 40, current: 1 }
Signals.APIGet('/user/jobs?filters='+
encodeURIComponent(JSON.stringify(filters)),
(error,json,response) => {
assert.ifError(error, 'Error in the request');
assert.jsonSchema(json, schema );
// must be called for async test
done();
}
);
});
});
});
Track Resources Created during Tests
Use Garaus.track( type, fid ) to track resouce created during test. The system will send delete call automatically even the test script break.
The type can be jobs / dashboards / taxonomies / sentimentlists / stopwordslists / tokenslists / stopdocslists. For other objects, use the url as the type.
The system sends delete calls to the address url/fid after all tests get done.
// how to track a job
Garasu.track( 'jobs', jobId );
Selenium Web Driver
Checkout oAuth test for detail
driver = Garasu.openBrowser();
driver.get(kFEHost+'/blank.html');
Reference
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago