Проблема в тестировании автоматизации приложений 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» - это селектор значка «залогинен», подтверждающий, что пользовательский сеанс был .. . издевались)
Фактический результат заключается в том, что после обновления поста и веб-страницы ничего не происходит