Как сделать почтовый запрос с данными в тест-кафе? - PullRequest
3 голосов
/ 03 июня 2019

Я новичок в API-тестировании, я использую test-cafe, и я написал тест для выполнения GET запроса с использованием RequestHook , который работает нормально, я смог получить данные, но когда я пытаюсь сделать запрос POST, используя тот же RequestHook , и я не могу отправить данные при выполнении запроса, поскольку он должен иметь тип буфера.

Я не могу преобразовать данные типа JSON в буфер. Делая запрос POST. Я хочу знать, является ли это правильным способом сделать запрос POST с использованием RequestHook или нам нужно использовать RequestLogger , чтобы сделать запрос POST? Если оба метода не верны, можете ли вы рассказать мне о каких-либо руководствах по API-тестированию с использованием test-cafe!

class MyRequestHook extends RequestHook {
    constructor (requestFilterRules, responseEventConfigureOpts) {
        super(requestFilterRules, responseEventConfigureOpts);
        // ...
    }
   async onRequest (event) {
        const userData = {
            name: "Avinash",
            gender: "male",
            year : 1984,
            month: 12,
            day : 12,
            place : "Bengaluru, Karnataka, India"
        };
        const bufferedData = Buffer.from(JSON.stringify(userData));
        // the above code can't convert the data of type json to buffer type and the console stucks here, not able to print anything past this.
        event.requestOptions.body = bufferedData;
   }

   async onResponse (e) {
        console.log(e.body);
    }
}

const myRequestHook = new MyRequestHook(url: 'http://localhost:3000/user/details', {
    includeHeaders: true,
    includeBody: true
});

fixture `POST`
    .page('http://localhost:3000/user/details')
    .requestHooks(myRequestHook);

test('basic', async t => {
    /* some actions */
});

Ожидаемым результатом будет то, что он должен дать статус 200 после успешного выполнения запроса post, но в настоящее время он не может вызвать вышеупомянутую конечную точку API, поскольку не может преобразовать данные JSON в буфер.

1 Ответ

3 голосов
/ 04 июня 2019

RequestHook был создан для проверки или регистрации запросов на тестирование, но не для создания запросов.Если вы хотите отправить запрос и получить ответ от сервера, используйте модуль request или request-prom * .

...