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
andoptions
Структура настройки коннфигураций браузеров:
<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
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Так же данная функция легко позволяет просмотреть шаг сценария на котором произошла ошибка, так как делает фиксацию 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