UnitAuto
Платформа для машинного обучения с нулевым кодом для тестирования юнитов.
Тестирование правильности, доступности и производительности методов и функций без написания кода. Поддерживает языки Java, Kotlin, Go, Python, C++ и Android.
Особенности и преимущества
По сравнению с JUnit, JTest, Mockito, Mockk и другими инструментами для компиляционного тестирования:
Инструмент для тестирования с нулевым кодом и практические примеры его использования были представлены в следующих подразделениях Tencent: отдел платежей WeChat, группа разработки инструментов IEG, группа финансовых платежей CDG, платформа игр IEG для ПК.
Был проведён технический разговор о качестве и эффективности без аналогов в онлайн-технологиях — практика использования инструментов интеллектуального тестирования с нулевым кодом.
Принцип работы
Для тестируемого проекта не нужно писать какой-либо код для модульного тестирования (логику, аннотации и т.д.), UnitAuto автоматически генерирует тестовые параметры и выполняет методы, получая возвращаемые значения для проверки. Автоматическое моделирование универсальных шаблонов, интерфейсов и асинхронное выполнение методов с автоматической записью обратных вызовов — всё это делается без написания какого-либо кода.
UnitAuto-Admin похож на APIAuto и представляет собой инструмент для машинного обучения и тестирования с нулевым кодом (просмотр, загрузка, выполнение и тестирование методов в серверных проектах и т. д.). UnitAuto-Java предоставляет возможность сканирования всех методов и выполнения определённого метода через два API (основным является класс MethodUtil.java, который уже реализован).
С помощью сканирования доступных пакетов, классов и методов в проекте создаются и импортируются тестовые случаи. Демо-приложение
Android-клиент App
Зависимость UnitAuto-Apk Поместите UnitAuto-Apk в ваш проект app module, settings.gradle:
include ':UnitAuto-Apk'
В каталоге app module, build.gradle:
dependencies {
api project(':UnitAuto-Apk')
}
Инициализация UnitAuto В методе Application onCreate:
@Override
public void onCreate() {
super.onCreate();
UnitAutoApp.init(this);
}
Предоставление 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.
Настройка классов среды и пользовательской логики обработки В методе 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.
Вы можете использовать следующие методы:
Удаленное сканирование метода. 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
Вызов /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 с подробной документацией и простым использованием.
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.