1

frisby npm パッケージで認証を取得するために、残りのエンドポイント ' http://xxxxxxx/j_spring_security_check ' をテストしようとしています。

リクエスト本文を「x-www-form-urlencoded」タブとして選択し、キー値などのアプリ資格情報を指定することで、郵便配達員で作業できます。期待どおりに機能します。しかし、frisby npm では、リクエスト本文を「x-www-form-urlencoded」として設定できません。このスクリプトでログインできません。

これまたは他の代替提案で私を助けてください。

Here is my code:



var frisby7=require('frisby');
const qs = require('qs');


describe('API reference', function() {
    var baseURL='http://xxxxxx/j_spring_security_check';

 it('Simple Test with post url-encode form body request ', function() {
console.log("**********")
        frisby7.globalSetup({
            request: {
                headers:{'Content-Type':'application/x-www-form-urlencoded'}
            // headers: { 'X-Ms-Source':'api','X-Ms-Format':'xml','Authorization':'Basic c2hyZXlhIGdveWFsOm0jbWY4cDlMZ2ZAMU1xUTg='}
            }
            });
return frisby7.post(baseURL,
    {
        form: { j_username:'xxxx@xxxxx.com', j_password:'xxxx' }
    }).then(function (res) { // res = FrisbyResponse object
        console.log('status '+res.status);
        console.log('body '+res.body);
        //return res;
      }); 
});
4

2 に答える 2

0

次のようなことを試してください:

var frisby = require("frisby");
const Joi = frisby.Joi;

var req1 = {
    method: "get",
    url: "pass url here", 
    headers : {
        "Accept": "application/json", 
        "content-type" : "application/json",
        'Authorization': 'Basic ' + Buffer.from(username + ":" + password).toString('base64') // pass username and password for //validation
    },
    body: {}
};

describe('spec file name', function () {
    it("spec file name" + dateTime, function(){
        return frisby
            .setup({ request: { headers : req1.headers } })     
            .get(req1.url)
            .expect("status", 200)
            .expect("header", "Content-Type", "application/json; charset=utf-8")
            .expect("jsonTypes", {
                "message": Joi.string()
            })  
            .then(function(res) {
                var body = res.body;
                body = JSON.parse(body);
                expect(body.message).toBeDefined();
            })
            .then(function(res) {
                var body = res.body;
                body = JSON.parse(body);

                var req2 = {
                    method: "put",
                    url: "pass url here",
                    headers : {
                        "Accept": "application/json", 
                        "content-type" : "application/json",
                        "Authorization": "JWT " + Token  // anything that you using to authenticate
                    },
                    body: {}
                };
                return frisby
                    .setup({ request: { headers : req2.headers } })
                    .put(req2.url)
                    .expect("status", 200)
                    .expect("header", "content-type", "application/json; charset=utf-8")
                    .expect("jsonTypes", {
                        "message": Joi.string()
                    })  
                    .then(function(res) {
                        var body = res.body;
                        body = JSON.parse(body);
                        expect(body.message).toBeDefined();
                    })          
            });             
    });
});
于 2019-02-09T11:32:24.883 に答える