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

OSCHINA-MIRROR/TommyLemon-UnitAuto

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 19:50 852908d

UnitAuto

Платформа для машинного обучения с нулевым кодом для тестирования юнитов.

Тестирование правильности, доступности и производительности методов и функций без написания кода. Поддерживает языки Java, Kotlin, Go, Python, C++ и Android.

Особенности и преимущества

По сравнению с JUnit, JTest, Mockito, Mockk и другими инструментами для компиляционного тестирования:

  • другим инструментам требуется писать большое количество тестового кода для каждого метода, что приводит к дополнительным затратам на разработку, ошибкам в тестовом коде и необходимости синхронизировать изменения в бизнес-коде и тестовом; UnitAuto не требует написания кода, автоматически считывает атрибуты методов, автоматически вводит параметры, получает возвращаемые значения и переменные класса-члена, а также использует машинное обучение для автоматической проверки.
  • UnitAuto — это инструмент тестирования во время выполнения, который не требует фиктивных сред (приложений, контекстов и т. д.), устраняет необходимость в фиктивном окружении для связанных классов, которые невозможно эффективно смоделировать, или сторонних служб входа, которые не поддерживают фиктивные функции, и может тестировать методы, удовлетворяющие хотя бы одному из следующих условий: наличие возвращаемого значения, наличие интерфейса обратного вызова или изменение переменной поля класса.

Инструмент для тестирования с нулевым кодом и практические примеры его использования были представлены в следующих подразделениях Tencent: отдел платежей WeChat, группа разработки инструментов IEG, группа финансовых платежей CDG, платформа игр IEG для ПК.

Был проведён технический разговор о качестве и эффективности без аналогов в онлайн-технологиях — практика использования инструментов интеллектуального тестирования с нулевым кодом.

Принцип работы

Для тестируемого проекта не нужно писать какой-либо код для модульного тестирования (логику, аннотации и т.д.), UnitAuto автоматически генерирует тестовые параметры и выполняет методы, получая возвращаемые значения для проверки. Автоматическое моделирование универсальных шаблонов, интерфейсов и асинхронное выполнение методов с автоматической записью обратных вызовов — всё это делается без написания какого-либо кода.

UnitAuto-Admin похож на APIAuto и представляет собой инструмент для машинного обучения и тестирования с нулевым кодом (просмотр, загрузка, выполнение и тестирование методов в серверных проектах и т. д.). UnitAuto-Java предоставляет возможность сканирования всех методов и выполнения определённого метода через два API (основным является класс MethodUtil.java, который уже реализован).

С помощью сканирования доступных пакетов, классов и методов в проекте создаются и импортируются тестовые случаи. Демо-приложение

DemoApplication

Android-клиент App

  1. Зависимость UnitAuto-Apk Поместите UnitAuto-Apk в ваш проект app module, settings.gradle:

    include ':UnitAuto-Apk'

    В каталоге app module, build.gradle:

    dependencies {
        api project(':UnitAuto-Apk')
    }
  2. Инициализация UnitAuto В методе Application onCreate:

    @Override
    public void onCreate() {
        super.onCreate();
        UnitAutoApp.init(this);
    }
  3. Предоставление UnitAuto управления интерфейсом входа В AndroidManifest.xml зарегистрируйте UnitAutoActivity:

    <manifest ... >
        <application ... >
           
            <activity
                android:name="unitauto.apk.UnitAutoActivity"
                android:launchMode="singleInstance">
            </activity>
            
         </application>
     </manifest>

    Можно добавить кнопку или другой вход в любом интерфейсе вашего проекта, который будет отображаться только в режиме DEBUG:

     <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:onClick="onClickUnit"
         android:text="UnitAutoActivity"
         android:textAllCaps="false"
         />

    См. layout/activity_main. Нажмите на этот вход, чтобы перейти к UnitAutoActivity:

    public void onClickUnit(View v) {
        startActivity(UnitAutoActivity.createIntent(this));
    }

    См. MainActivity.

  4. Настройка классов среды и пользовательской логики обработки В методе Application onCreate настройте, см. Java серверная часть Server 4. Настройка классов среды и пользовательская логика обработки.

Развертывание бэкэнд-инструмента управления

Можно напрямую скачать исходный код, распаковать его и открыть UnitAuto-Admin/index.html с помощью браузера. Рекомендуется использовать Chrome или Firefox (Safari, Edge, IE могут иметь проблемы с совместимостью). Также можно напрямую получить доступ к веб-сайту через http://apijson.cn/unit или http://apijson.cn:8081.

Щелкните правой кнопкой мыши на верхнем правом углу настроек «Адрес сервера проекта URL», измените базовый адрес на адрес вашего хоста (например, http://192.168.0.102:8080).

В правом верхнем углу войдите в систему с учётными данными администратора по умолчанию 13000082001 и паролем 123456. Затем нажмите правой кнопкой мыши верхний правый угол настроек «Просмотр и синхронизация методов документации», убедитесь, что тестируемый проект запущен, а затем импортируйте методы проекта одним щелчком мыши. После завершения он автоматически отобразит список тестовых случаев, нажмите на элемент списка, чтобы просмотреть детали и вручную протестировать, или автоматически выполнить регрессионное тестирование всех методов/функций одним щелчком мыши.

Если вы тестируете Android/iOS приложение, убедитесь, что телефон/планшет и компьютер, использующий веб-страницу UnitAuto-Admin, подключены к одной локальной сети. Если используется Android/iOS эмулятор, они должны быть в одной локальной сети и доступны через http://localhost:порт.

Автоматическое управление тестовыми случаями требует развёртывания APIJSONBoot, см. https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server.

Добавление тестового случая

Вы можете использовать следующие методы:

  1. Удаленное сканирование метода. https://github.com/TommyLemon/UnitAuto/blob/master/README.md#%E8%BF%9C%E7%A8%8B%E6%89%AB%E6%8F%8F%E6%96%B9%E6%B3%95

  2. Вызов /delegate прокси-интерфейса для записи информации о запросе, параметрах, ответе и т. д. Интерфейсные инструменты, машинное обучение, нулевое кодирование, тестирование, генерация кода и статическая проверка, генерация документации и всплывающих комментариев-подсказок, комплексное управление документацией, тестированием и моками в едином интегрированном опыте.

SQLAuto (https://github.com/TommyLemon/SQLAuto) — интеллектуальный инструмент для автоматизации тестирования SQL-запросов с нулевым кодированием. Он позволяет быстро и эффективно проверять результаты выполнения SQL-операторов, предоставляя удобный способ создания тестовых данных.

UIGO (https://github.com/TommyLemon/UIGO) — платформа для быстрой и точной записи и воспроизведения пользовательского интерфейса мобильных приложений. Она автоматически адаптируется к различным разрешениям экрана и точно ожидает сетевые запросы, обеспечивая быстрое и стабильное воспроизведение.

apijson-doc (https://github.com/vincentCheng/apijson-doc) — официальная документация APIJSON, предлагающая чёткую и удобную для поиска презентацию контента, включая дизайн-гайдлайны и текстовые руководства.

APIJSONdocs (https://github.com/ruoranw/APIJSONdocs) — англоязычная документация APIJSON, обеспечивающая чёткое представление контента, включая подробное введение, дизайн-стандарты и инструкции по использованию.

Apijson.org (https://github.com/APIJSON/apijson.org) — официальный сайт APIJSON, предоставляющий обзор функций APIJSON, регистрацию пользователей, информацию об авторах и вкладчиках, а также ссылки на связанные ресурсы.

APIJSON.NET (https://github.com/liaozb/APIJSON.NET) — версия APIJSON на C#, поддерживающая MySQL, PostgreSQL, SQL Server, Oracle и SQLite.

apijson-go (https://github.com/glennliao/apijson-go) — версия APIJSON на Go, основанная на Go (>=1.18) + GoFrame2, поддерживающая запросы, операции с одной таблицей (вставка, удаление, изменение), управление правами доступа и другие функции.

apijson-go (https://gitee.com/tiangao/apijson-go) — версия APIJSON на Go, поддерживающая запросы к одной таблице, массивам, запросы между несколькими таблицами с отношением один к одному и один ко многим.

apijson-hyperf (https://github.com/kvnZero/hyperf-APIJSON.git) — PHP-версия APIJSON, основанная на Hyperf и поддерживающая MySQL.

APIJSON-php (https://github.com/xianglong111/APIJSON-php) — PHP-версия APIJSON, основанная на ThinkPHP и поддерживающая MySQL, PostgreSQL, SQL Server и Oracle.

apijson-php (https://github.com/qq547057827/apijson-php) — PHP-версия APIJSON, основанная на ThinkPHP и поддерживающая MySQL, PostgreSQL, SQL Server и Oracle.

apijson-node (https://github.com/kevinaskin/apijson-node) — Node.ts-версия APIJSON от инженеров ByteDance, предоставляющая демоверсии с использованием nestjs и typeorm, а также бэкенд-администрацию.

uliweb-apijson (https://github.com/zhangchunlin/uliweb-apijson) — Python-версия APIJSON, поддерживающая MySQL, PostgreSQL, SQL Server, Oracle, SQLite и другие базы данных.

apijson-practice (https://github.com/vcoolwind/apijson-practice) — библиотека аннотаций для проверки параметров APIJSON и соответствующие демо от BAT Technology Expert.

Android-ZBLibrary (https://github.com/TommyLemon/Android-ZBLibrary) — фреймворк для быстрого создания MVP-приложений для Android с подробной документацией и простым использованием.

1
https://api.gitlife.ru/oschina-mirror/TommyLemon-UnitAuto.git
git@api.gitlife.ru:oschina-mirror/TommyLemon-UnitAuto.git
oschina-mirror
TommyLemon-UnitAuto
TommyLemon-UnitAuto
master