Платформа автоматизации с 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.