About Cost Optimization Testing Tool - Gibiscus/wiki Wiki


Cost Optimization Testing tool:


Доступный и функционально неограниченный фреймворк для разработки автоматизированных тестов, который легко интегрируется с инструментами CI/CD разработки, и умеет в рамках одного тестового сценария тестировать UI / REST - API с возможностью взаимодействия с несколькими базами данных и API одновременно.

Мы разрабатываем продукт - который будет максимально покрывать ваши потребности, работая с проектами любых сложностей. Ни для кого ни секрет что качественное ПО - это продукт который максимально покрыт тестированием. С помощью нашего тестового фреймворка для <end2end> - тестирования, вы продвинетесь еще на несколько шагов вперед к разработке совершенного ПО.

Installation

In progress



Main functions

  • 🌎 High level of cross-browser
  • 📷 Take screenshots and other artifacts on exeptions
  • 📦 Consistent and clear tag structure out of the box
  • 🔀 UI/API testing, within one test scenario
  • 🔑 Custom authorization
  • 🔌 Ability to work with multiple databases and APIs using aliases
  • 📊 Reporting Tool
  • 🔧 Unlimited Integrations.

Cross Browser

COTT - может запускать тестовые скрипты в таких браузерах как:

  • Google Chrome
  • Firefox
  • Safari
  • Edge
  • Opera

Тестировать кросс-браузерность с COTT легко:

  • Удобная конфигурация кросс-браузернности
  • Запуск в 3 режимах ( Local, Remote, Docker )
  • Возможность in Docker
  • Гибкость конфигурации каждого браузера
  • Версионность
  • Поддержка capabilities and options

Структура настройки коннфигураций браузеров:

    <ui enabled="true">
        <browserSettings>
            <takeScreenshotOfEachUiCommand enable="true"/>
            <webElementAutowait seconds="5"/>
            <browsers>

                <chrome enable="true" maximizedBrowserWindow="true" headlessMode="false" browserWindowSize="800x600">
                    <browserType>
                        <localBrowser/>
                    </browserType>
                    <chromeOptionsArguments>
                        <argument>--incognito</argument>
                    </chromeOptionsArguments>
                </chrome>

                <chrome enable="true" maximizedBrowserWindow="true" headlessMode="true" browserWindowSize="1920x1080">
                    <browserType>
                        <browserInDocker browserVersion="102.0" enableVNC="true">
                            <screenRecording enable="true" outputFolder="/Users/user/e2e-testing-scenarios"/>
                        </browserInDocker>
                    </browserType>
                    <chromeOptionsArguments>
                        <argument>--disable-popup-blocking</argument>
                    </chromeOptionsArguments>
                </chrome>

                <firefox enable="false" maximizedBrowserWindow="false" headlessMode="true">
                    <browserType>
                        <remoteBrowser browserVersion="101.0" remoteBrowserURL="http://localhost:4444/"/>
                    </browserType>
                </firefox>

                <edge enable="false" maximizedBrowserWindow="false" headlessMode="true">
                    <browserType>
                        <remoteBrowser browserVersion="100.0" remoteBrowserURL="http://localhost:4444/"/>
                    </browserType>
                </edge>

Вышеперечисленное позволяет выполнять гибкий запуск тестовых сценариев, без наличия локальных браузеров



Screenshots

В файле с глобальными конфигурациями имеется тег под названием <takeScreenshotOfEachUiCommand> - функция которая фиксирует каждый шаг выполнения UI сценария.

Плюсы:

  • Фиксация скриншотов без запуска браузера
  • Фиксация скриншотов в докере
  • Автоматическая генерация в папку сценария
  • Захват exeptions

➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

screenshot.png

➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

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



Consistent and clear tag structure out of the box

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


'UI script'
<ui comment="Start UI scenario">

    <input comment="Input 'Email'"
           locatorId="locator.email"
           value="[email protected]"/>

    <input comment="Input 'Password'"
           locatorId="locator.password"
           value="Testing#1"/>

    <click comment="Click on 'Log in' button" locatorId="locator.logInButton"/>

</ui>

<postgres comment="Check all user's in system" alias="Api_Alias" file="expected_2.json">
    <query>SELECT * FROM t_user</query>
</postgres>

'HTTP - request'
 `   <http comment="Re-login to get a new JWT token" alias="SHOPIZER">`
        `<post url="/api/v1/customer/login">`
            `<response code="200" file="expected_28.json"/>`
            `<body>`
                `<from file="request_28.json"/>`
            `</body>`
        `</post>`
    `</http>`

⤵️⤵️⤵️

"The XSD schema makes working with tags even easier.
To compose a test scenario, you only need to set the necessary values ​​​​in the drop-down parameters"


UI/API testing, within one test scenario

Одна из основных фичей COTT - является то, что в рамках одного тестового сценария удобной структуры и легких для восприятия скриптов, мы можем одновременно тестировать как UI, так и производить REST - API - тестирование с использованием разнообразных подходов к тестированию таких как Data Driven Testing, Behavior Driven Development, Test Driven Development и другие, обращаться в базу данных и объявлять переменные.

"Одним словом производить end2end тестирование ПО"

Плюсы end2end - тестирования:

  • Coverage of all levels of the system
  • Regression
  • System description
  • CI/CD
  • Global testing report

"Tag's Structure - end2end script:"
   <ui comment="Start UI action">
        
        <click comment="Click on 'Add to cart' 'Spring in Action' book"
               locatorId="shopizer.addToCartSpringBook"/>
    </ui>


  <var comment="Create variable for shp_cart_code value " name="CART_CODE">
        <jpath>$.[0].content.[0].shp_cart_code</jpath>
    </var>


 <http comment="Make sure the order is added to the cart" alias="API">
        <get url="/api/v1/cart/{{CART_CODE}}">
            <response code="200" file="expected_18.json"/>
        </get>
    </http>


Custom authorization

In progress



Ability to work with multiple databases and APIs using aliases

При настройке конфигурационного файла - для каждого тега интеграции в структуре есть обязательный и уникальный параметр alias - с помощью которого происходит взаимодействие с базами данных и API в рамках тестового сценария. Каждый сервис имеет флаг: true & false

  • Сконфигурируйте нужные сервисы и легко переключайтесь между ними

Database Integrations

 <postgres alias="FIRST" enabled="true">
 <mongo alias="SECOND" enabled="true">
 <elasticsearch alias="THIRD" enabled="false">
 <mysql alias="FOURTH" enabled="false">

API Integrations

    <apiIntegration>
         <api alias="FIRST" url="http://localhost:4000/"/>
    </apiIntegration>

    <apiIntegration>
         <api alias="SECOND" url="http://localhost:8081/"/>
    </apiIntegration>

    <apiIntegration>
         <api alias="THIRD" url="http://localhost:8082/"/>
    </apiIntegration>


Reporting Tool

In progress



Unlimited Integrations.

COOT - поддерживает набор интеграций из коробки, которые вы сможете использовать для настройки конфигураций вашего проекта — если для тестирования вашего ПО нужна определенная интеграция, - добавить и использовать ее в дальнейшем не составит труда. Как вы можете предположить, мы можем автоматизировать тестирование для заданной структуры проекта.

"Интеграции из коробки:"

Integrations

  • Clickhouse
  • DynamoDB
  • Elasticsearch
  • Kafka
  • MongoDB
  • MySQL
  • Oracle
  • Postgres
  • RabbitMQ
  • Redis
  • AWS (S3, SES, SQS)
  • Sendgrid

⚠️ **GitHub.com Fallback** ⚠️