1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/UnlimitedBladeWorks_123-WinTestNG

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

WinTestNG

Автоматизированный тестовый фреймворк, основанный на TestNG, для тестирования API на платформе WinTestNG-platform-api.

Обзор

  • Подходит для HTTP-интерфейсов.
  • Тестовые данные хранятся в БД.
  • Поддерживает Redis, Mongo, Mysql и другие операции.
  • Позволяет настраивать шаблоны тестов, абстрагировать общие функции.
  • Имеет глобальные переменные.
  • Содержит утверждения (assertions).
  • Использует FreeMarker как шаблонизатор.
  • Создаёт отчёты о тестах, которые хранятся в БД.
  • Включает понятия: тест-кейс, тестовые данные, утверждение, отчёт о тестировании, автоматизированное тестирование, шаблон теста.
  • Скрипт создания таблиц: wintestng-core/src/resources/WinTestNG.sql.

Использование

  • Выполнить SQL-скрипт wintestng-core/src/main/resources/WinTestNG.sql.
  • Изменить конфигурационный файл wintestng-core/src/main/resources/application.yml.
  • Запустить файл TestNG example/src/test/resources/projectname/example.xml.

Логика выполнения тестового плана

logic

Подробные сведения о конфигурации

Ресурсы

Включает:

  • таблицу resource_config.
MySQL
{
    "url":"jdbc:mysql://xx.mysql.rds.aliyuncs.com:3306/baoxian",
    "userName":"userName",
    "password":"password"
}

Redis

{
    "host":"12.26.1.94",
    "port":3736,
    "database":8,
    "password":"D6eAtdxxxxxxsaisf"
}

Mongo

{
    "url":"mongodb://wyxx_app:xxxddd@11.40.88.39:3717,11.41.53.215:27017/wyxx_app"
}

Подготовка данных

Включает:

  • таблицу test_cases (тестовый план) с полем data_preparation_config.

Текст

{
    "showTitle":"3333-${mobile}",
    "text":"[{\"mobile\":\"15967126512\"},{\"mobile\":\"15967122137\"}]",
    "type":"text"
}

CSV

{
    "fieldNameList":[
        "id",
        "name",
        "mobile"
    ],
    "fileName":"http://xx.winbaoxian.com/xx.1csv",
    "separator":",",
    "type":"csv"
}

Ресурс

{
    "resourceId":2,
    "showTitle":"3333-${mobile}",
    "sql":"select mobile from sales_user limit 3",
    "type":"resource"
}

Шаги

Включают:

  • таблицы action_template (шаблоны тестов) с полями actions,
  • table test_cases с полями pre_action, main_actions, post_actions.

Пример:

[
    {
        "name":"Вызов APP для входа",
        "actionType":"TPL",
        "templateId":21,
        "mappings":{
            "a":"18757101098",
            "b":"0000"
        },
        "delayTimes":2000,
        "alias":"template"
    },
    {
        "name":"Обновление базы данных",
        "delayTimes":2000,
        "actionType":"RESOURCE",
        "resourceId":1,
        "sql":"update big_guy_share_info set status=0 where id=8"
    }
]

HTTP-запрос

{
    "name":"Получение данных о большом парне для обмена информацией - 20 записей",
    "actionType":"HTTP",
    "requestHeader":{},
    "requestUrl":"http://xx.winbaoxian.cn/xx/1/getBigGuyShareInfoPageList",
    "requestParams":{
        "t":1,
        "n":1,
        "u":"10608088@winbaoxian.com",
        "di":"mockDeviceId",
        "m":1,
        "s":"${template.token}"
    },
    "requestMethod":"POST",
    "requestContentType":"e/b",
    "requestBody":"{\"pageNo\": 1}",
    "delayTimes":2000
}

Операция с ресурсом

{
    "name":"Обновление базы данных",
    "actionType":"RESOURCE",
    "resourceId":1,
    "sql":"SELECT id,`name`,mobile from sales_user limit 1",
    "fetchOne":true,
    "delayTimes":2000
}

Установка констант

{
    "name":"Установка констант",
    "actionType":"SETV",
    "params":{
        "ip":"x-api.winbaoxian.cn",
        "calculate":"/api/product/data/calculate",
        "get_captcha":"/api/policy/getCaptcha",
        "pre_order":"/api/policy/pre-order"
    },
    "delayTimes":2000
}

Вызов шаблона

{
    "name":"Вызвать APP для входа",
    "actionType":"TPL",
    "templateId":21,
    "mappings":{

...

``` **Утверждение (ASSERTION):**
```json
{
    "name": "Утверждение",
    "actionType": "ASSERTION",
    "templateId": 21,
    "verifyList": [
        {
            "type": "condition",
            "value1": "${getExpirePolicyCollate.body.r.policyExpireRemindList?exists?c} == true"
        },
        {
            "type": "eq",
            "value1": "${getExpirePolicyCollate.body.r.policyExpireRemindList[0].policyUuid}",
            "value2": "5108"
        }
    ],
    "delayTimes": 2000,
    "alias": "v"
}

Группа (GROUP):

{
    "name": "Группа",
    "actionType": "GROUP",
    "stepList": [
        {
            "name": "Вызов APP для входа",
            "actionType": "TPL",
            "templateId": 21,
            "mappings": {
                "a": "18757101098",
                "b": "0000"
            },
            "delayTimes": 2000,
            "alias": "template"
        }
    ]
}

IF-условие:

{
    "name": "IF-условие",
    "actionType": "IF",
    "condition": "${res.success?c}",
    "stepList": [
        {
            "name": "Вызов APP для входа",
            "actionType": "TPL",
            "templateId": 21,
            "mappings": {
                "a": "18757101098",
                "b": "0000"
            },
            "delayTimes": 2000,
            "alias": "template"
        }
    ]
}

FOR-цикл:

{
    "name": "FOR-цикл",
    "actionType": "IF",
    "iterData": "${toJSONString(res.list)}",
    "iterAlias": "a",
    "stepList": [
        {
            "name": "Вызов APP для входа",
            "actionType": "TPL",
            "templateId": 21,
            "mappings": {
                "a": "${a.mobile}",
                "b": "0000"
            },
            "delayTimes": 2000,
            "alias": "template"
        }
    ]
}

SCRIPT:

{
    "name": "Скрипт",
    "actionType": "SCRIPT",
    "lang": "PYTHON",
    "content": "a=1+2",
    "extractVars": ["a"],
    "alias": "xx"
}

Контакты

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Основы автоматизированной тестовой инфраструктуры, разработанной на базе testNG. Развернуть Свернуть
MPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/UnlimitedBladeWorks_123-WinTestNG.git
git@api.gitlife.ru:oschina-mirror/UnlimitedBladeWorks_123-WinTestNG.git
oschina-mirror
UnlimitedBladeWorks_123-WinTestNG
UnlimitedBladeWorks_123-WinTestNG
master