Я хочу создать файл json / процесс запроса и ответа, который будет использоваться для создания пользовательской сессии, и внедрить его в сценарий Nightwatch.js. - PullRequest
0 голосов
/ 18 апреля 2019

Проблема в тестировании автоматизации приложений SaaS заключается в том, что мне приходится каждый раз создавать и регистрировать новых пользователей, подтверждать их учетную запись по электронной почте, а затем приобретать определенные услуги, чтобы протестировать функциональность службы, доступную только для платных клиентов. Этот шаблон тестирования (регистрация учетной записи, подтверждение и покупка услуг и т. Д.) Действительно занимает много времени только для тестирования одной функциональности, а иногда и ломается, в основном из-за того, что не работает одноразовый почтовый хостинг с открытым исходным кодом или служба на основе подписки, которая обрабатывает закупки закрыты на техническое обслуживание, что приводит к ошибочным результатам.

Я хотел бы создать конечную точку только для разработки, которая принимает полезную нагрузку конфигурации JSON пользователя и создает сессию пользователя в соответствии с ней, так что мне не нужно создавать пользователя, а затем покупать сервисы для тестирования с нуля.

В настоящее время файл json и конечная точка разработки уже реализованы и работают вручную, просто вставив содержимое файла json в приглашение консоли Chrome, разместив и обновив веб-страницу. Что не работает, так это выполняется автоматически с помощью Nightwatch.js и HTTP-клиента на основе обещаний axios для браузера и node.js

/**
 * Mock user creation for Nightwatch.js
 *
 * > it performs a POST method with the persona characteristics in key:value pairs and creates tailor-made user personas for automation
 *   
**/

let globals = require('../globals')

module.exports = {
    "axios": async function (browser) {

        process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; // for UNABLE_TO_VERIFY_LEAF_SIGNATURE fix

        const axios = require('axios');
        const fs = require('fs');

        let rawdata = fs.readFileSync('config.json');
        let config = JSON.parse(rawdata);

        browser
            .url('https://uat.mywebsite.com', function (result) {

            browser
            .windowMaximize()
                axios(config).then(function (response) {

                    console.log(response.headers)

                }).catch(function (error) {

                    console.log('ERROR:', error);
                })
            })

        browser
            .refresh()
            .waitForElementVisible('button#user-logggin')
            .closeWindow() //close curent window
            .end(); //end session
    }
};

Ожидаемый результат состоит в том, что после запроса на публикацию и обновления страницы я должен видеть, что пользователь вошел в систему (кнопка «user-logggin» - это селектор значка «залогинен», подтверждающий, что пользовательский сеанс был .. . издевались) Фактический результат заключается в том, что после обновления поста и веб-страницы ничего не происходит

...