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

OSCHINA-MIRROR/azhengzz-WebUIAutoTest

Клонировать/Скачать
README.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 10:37 aa94e0c

Selenium WebUI автоматизация тестирования фреймворк

Использование Python, Selenium и сторонних библиотек для реализации фреймворка автоматизации тестирования WebUI.

Введение

Проект включает в себя следующие каталоги:

  • AutoIt — плагин для работы с пользовательским интерфейсом;
  • Config — конфигурационный файл;
  • Data — тестовые данные;
  • Drivers — браузерные драйверы;
  • Elements — элементы страницы;
  • Log — каталог для хранения журналов тестирования во время выполнения;
  • Report — каталог для сохранения отчётов после завершения тестирования;
  • src — исходный код проекта;
  • TestCases — каталог, содержащий наборы тестов и данные для генерации тестов (используются при сравнении данных во время теста);
  • .flaskenv — конфигурация среды Flask;
  • export_package_info.bat — скрипт для экспорта информации о всех сторонних библиотеках;
  • package_info.txt — информация о всех сторонних библиотеках в текущей среде;
  • requirements.txt — список зависимостей от сторонних библиотек;
  • automation.data — данные для автоматического тестирования;
  • runtest.bat — запуск и выполнение кейсов (запускает runtest.py);
  • runtest.py — скрипт запуска;
  • stoptest.bat — остановка выполнения кейсов (запускает stoptest.py);
  • stoptest.py — стоп-скрипт;
  • runserver.bat — веб-стартовый скрипт (запускает webserver.py);
  • webserver.py — веб-стартовый скрипт.

Как запустить

  1. В качестве примера рассмотрим кейс из каталога TestCases\test_кейс_1.py. Этот кейс реализует посещение сайта Baidu (www.baidu.com) и поиск по слову «Python». Детали можно найти в методе test_1_байдy_поиск_теста() файла.
  2. Не забудьте поместить все кейсы в каталог TestCases. Здесь будут храниться все автоматизированные тесты.
  3. Запустите веб-сервис. На веб-странице можно управлять кейсами и выполнять сборку.

Запуск

— 1. Нажмите runserver.bat, чтобы запустить веб-сервер. — 2. После входа на веб-страницу перейдите на страницу редактирования. Перетащите нужные кейсы из левого списка «Каталог кейсов» в правый список «План выполнения», где вы можете управлять порядком выполнения кейсов. Только отмеченные кейсы будут выполнены. Затем сохраните план выполнения. (Кейсы детализированы до уровня методов.) — 3. Перейдите на страницу сборки и выполните сборку.

Редактирование кейсов

— Дважды щёлкните по нужному кейсу на странице сборки, и вы автоматически перейдёте на страницу кодирования. Здесь можно выполнить лёгкое редактирование кейса.

Отчёт о тестировании

— После завершения выполнения будет представлен отчёт.

Уведомления через DingTalk

— Робот DingTalk будет отправлять уведомления группе.

Электронная почта

— Вы получите электронное письмо с отчётом о тестировании.

Главная страница с графиками

— Графики показывают количество последних сборок, выполненных пользователем.

В будущем будет добавлено больше графиков.

Установка и развёртывание

— Рекомендуется использовать Python версии 3.5.4 или выше. — Используйте команду pip install -r requirements.txt для установки сторонних библиотек (файл requirements.txt находится в каталоге проекта). — Поместите соответствующие драйверы браузера в каталог Drivers (например, chromedriver.exe для Google Chrome и geckodriver.exe для Firefox). — Файл .flaskenv. При развёртывании в производственной среде необходимо установить FLASK_ENV=production и FLASK_DEBUG=0. Для тестирования установите FLASK_ENV=development и FLASK_DEBUG=1.

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

— Начальные учётные данные: admin/admin. Можно сразу войти в систему. Информация о пользователе хранится в базе данных WebUIAutoTest\src\web\app\app.db в таблице main.user. Пароль зашифрован с использованием алгоритма, предоставленного werkzeug.security.generate_password_hash. Открытый текст пароля не будет проверен. — Если вы используете функцию регистрации для создания новой учётной записи, сначала настройте SMTP-адрес электронной почты администратора в файле Config/config.ini в разделе EMAIL. Затем при регистрации будет отправлена регистрационная информация по этому адресу электронной почты. Соответствующие настройки включают (smtp_login_name, smtp_login_passwd, sender_address, smtp_server_address, smtp_port, smtp_ssl, smtp_tls). — Журналы веб-сервиса находятся в WebUIAutoTest\src\web\app\logs\webserver.log. Здесь вы можете просмотреть журналы ошибок. Журналы автоматического построения находятся в каталоге Log. Их также можно просмотреть через веб-интерфейс.

Расширенные функции

1. GUI-операции

— Поддерживаются основные операции с мышью (перемещение мыши, перетаскивание, щелчок левой кнопкой мыши, правой кнопкой мыши и средней кнопкой мыши, прокрутка колеса мыши). — Поддерживается работа с окнами Windows (получение дескриптора окна, закрытие окна, проверка существования окна, определение того, является ли окно активным, активация указанного окна). — Можно вызывать скрипты .au3. Пример:

from src import Operate
from src import run_autoit

Operate.mouse_move(100, 100)  # Переместить мышь в указанную позицию
run_autoit("UpLoadFile.au3")  # Выполнить скрипт "Файл загрузки.au3"
2. Сравнение данных

— Сравнение данных после выполнения определённого сценария. — Поддержка MySQL и Oracle. Пример: см. WebUIAutoTest\TestCases\test_dbcheck_demo.py. После выполнения декорированного сценария будет выполнена эта команда для сравнения данных. Ожидаемые данные.xlsx и результаты выполнения.xlsx находятся в текущем каталоге кейсов. После сравнения будет создан файл результатов сравнения. Кроме того, если сравнение не удастся, в отчёте будет указано об этом. Обратите внимание, что при первом выполнении, поскольку ожидаемых данных нет, сравнение не будет успешным. Вы можете переименовать файл результатов первого выполнения в ожидаемые данные (результаты выполнения в ожидаемые данные). При втором выполнении вы можете использовать его как ожидаемые данные для сравнения. Пример кода:

...
from src import test_dbcheck
...
class DBCheckDemo(TestCaseMore):
@classmethod
def setUpClass(cls):
    pass
@classmethod
def tearDownClass(cls):
    pass

@test_dbcheck(sql="select * from dbuser.tablename;")
def test_1_dbcheck(self):
    pass
    # do something
...
3. Управление данными

— Данные управляют выполнением сценариев. Пример: см. WebUIAutoTest\TestCases\test_datadriver_demo.py. Пример данных (data.csv):

工号,姓名,年龄
1001,张三,21
1002,李四,28
1003,王五,24

Пример кода:

...
from src import DataDriver 
...
class DataDriverDemo(TestCaseMore):
    def test_datadriver(self):
        # Вызов метода do_something(), который управляется данными. Данные будут автоматически переданы в параметры в соответствии со столбцами.
        self.do_something()

    @DataDriver.run_date_from_csv(path=Config.projectDir + r"\Data\data.csv")
    def do_something(self, 工号, 姓名, 年龄):
        # Выполнение
        pass
...    
4. Параллельное выполнение

[Информация отсутствует]

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/azhengzz-WebUIAutoTest.git
git@api.gitlife.ru:oschina-mirror/azhengzz-WebUIAutoTest.git
oschina-mirror
azhengzz-WebUIAutoTest
azhengzz-WebUIAutoTest
master