Платформа автоматизации с Node js, JavaScript, Mocha, Chai, схемой JOI

Предварительные требования, которые необходимо знать перед написанием базовых тестов: базовые знания кодирования javascript.

Позвольте мне пояснить каждое из приведенных выше ключевых слов

  • Node.js - это не язык программирования, это среда выполнения JavaScript.
  • Mocha - это среда тестирования, такая как Test Ng в java.
  • Chai - это структура утверждений, как и концепция утверждений в Test Ng.
  • Схема JOI - это библиотека проверки схемы, которая помогает получить действительный ответ API вместо проверки атрибутов в Single, мы можем использовать схему JOI для проверки ответа JSON в целом.

Повестка дня.

  • Возможность повторного использования кода.
  • Подготовка тестового случая.
  • Формирование отчета.
  • Конфигурации.

Предварительные требования для установки в вашей системе.

Примеры любых редакторов JavaScript: - Код Atom, IntelliJ, Netbeans, Visual studio. Https://www.jetbrains.com/idea/download/#section=windows

Пакет Node с последней версией .

console.log("let's begin");

Давайте поговорим о наших пунктах повестки дня

Повторное использование кода:

Возникает вопрос, как это сделать.

Создайте в своем проекте файл с именем utilities.js и убедитесь, что здесь указан только общий код для Ex:

Utilities.js

Функция для вызова Http POST API

"function callPostApi (server, url, token, request, statusCode) {
     var array = token.split(':')
       return new Promise(function (resolve, reject) {  
       server.post(url)
       .set('Content-Type', 'application/json')
       .set('Accept', 'application/json')
       .set('Authorization', array[0] + ' ' + array[1])
       .send(JSON.stringify(request))
.then(response => {
if (response && response.status == statusCode) {
      resolve(response)
} else {
      reject(response)
}})})
}

Функция для вызова Http PUT API

function callPutApi (server, url, request, statusCode) {
return new Promise(function (resolve, reject) {
     server.put(url)
    .set('Content-Type', 'application/json')
    .send(request)
    .then(response => {
if (response && response.status == statusCode) {
    resolve(response)
} else {
    reject(response)
}})})
}

Давайте разберемся, что делает приведенный выше код

  • call POST API выполняет пост-вызов с переданными параметрами и возвращает объект обещания.
  • call PUT API выполняет вызов put с переданными параметрами и возвращает объект обещания.

Следовательно, мы называем это универсальным кодом. аналогично, любой общий код может быть написан в utilities.js и улучшит вашу структуру.

Подготовка тестового случая:

Давайте разберемся, как мы пишем тестовый пример, используя среду тестирования мокко.

описать: - это ключевое слово в мокко, которое говорит о том, что тестовый пример запущен. description - это что-то вроде Testsuite в testNg

before: - это блок кода, который выполняется до начала выполнения тестового примера.

it: - это ключевое слово в mocha, которое означает, что в описании есть тестовый пример. тестовый пример всегда будет записан внутри блока описания.

файл test.js

let getSchemas = require('./schemas')
describe('Create and Verify ', function () {
this.timeout(10 * 1000) // TIMEOUT for test case execution.
before( async () => {
// before executes as first block before any test case is executed.
// Any code which needs to be executes before any test case starts should be kept here.
})
it('POST Create ', async function () {
var Create = await utilities.callPostApi(server, createUrl, 'Bearer:' + basicToken, create, 201)
// Refer to the code re-usability block which shows how post call is used with parameter
var result = Joi.validate(Created.body, getSchemas.Schema()) // expected schema validation from response of creation
//JOI schema validation
assert.isNull(result.error, 'there was no error, creation is succesfull')
// Assertions on JOI validation.
})

Пример файла schema.js

const Joi = require('joi')
// Response schema
let Schema = function getSchema () {
return {
createdBy: Joi.string().allow(''),
}}

Создание отчета:

Давайте обсудим, как создать отчет о выполнении нашего тестового примера и как выполнить тестовый пример.

Убедитесь, что блок сценария в файле package.json содержит следующую команду.

"scripts": {
  "test": "node_modules/.bin/mocha --reporter mochawesome --reporter-options enableCode=false,autoOpen=true"
},
mochawesome is a plugin which generates report on execution of our test case.