Автор оригинала: FreeCodeCapm Team.
Джойз
Команда QA ведет ловушку, но ручное тестирование не масштабируемо, когда ваша компания занимает больше проектов. Поскольку моя компания отправляет сборку каждые две недели, команда QA хочет проверить каждую сборку, прежде чем передать их нашим клиентам.
Чтобы улучшить QA, я помог изменить процессы управления проектами, набрал команду разведочных тестеров и построил автоматизированные инструменты тестирования для непрерывной интеграции в качестве инженера QA. Большинство инструментов, которые я строит, используйте открытые источники или бесплатные библиотеки.
Ниже приведен руководство для моего открытого источника Github Repo С 100 000+ Docker Image тянет, чтобы помочь командам развития и внештатные разработчики создали свои собственные автоматизированные тесты.
Наша задача
Мы пройдем по шаговому процессу, чтобы увидеть, как настроить тест с Селен , что автоматически автоматизирует браузеры для выполнения тестов. В этом примере мы будем использовать без головы без головы, чтобы загрузить наш веб-сайт и выполнить простой щелчок на кнопке, которую мы хотим проверить на сайте.
Настройка безголового хрома
Запуск браузера Chrome в Docker, чтобы запустить тест Selenium, занимает всего минуту. Как только он работает, он работает с любыми автоматическими сборками CI. Вот пример: сначала откройте свой терминал и перейдите в рабочий каталог.
$ cd [your working directory]
Затем потяните и запустите этот документ Docker из Joyzoursky/Python-Chromedriver Отказ Мы запустим тест Selenium внутри контейнера Docker.
$ docker run -it -v $(pwd):/usr/workspace joyzoursky/python-chromedriver:3.6-alpine3.7-selenium shUnable to find image 'joyzoursky/python-chromedriver:3.6-alpine3.7-selenium' locally3.6-alpine3.7-selenium: Pulling from joyzoursky/python-chromedriverff3a5c916c92: Pull complete471170bb1257: Pull completed487cc70216e: Pull complete9358b3ca3321: Pull complete78b9945f52f1: Pull complete66eb40d9fb29: Pull complete36cb996dbd54: Pull complete8e6f0ca23b1a: Pull completed5a3895f190c: Pull completeDigest: sha256:c51c240f1a472b0f252e96cd39678c7d039b757b83e46bf8ed182e95caaf02e7Status: Downloaded newer image for joyzoursky/python-chromedriver:3.6-alpine3.7-selenium
Теперь контейнер готов. Давайте перейдем к рабочему пространству и попробуйте код.
/ # cd /usr/workspace/
Теперь мы можем сценарию наш тест
Давайте начнем Python.
/usr/workspace # pythonPython 3.6.4 (default, Jan 10 2018, 05:20:21)[GCC 6.4.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>
Перед тем, как попробовать код, импортируйте Webdriver Selenium из предварительно установленного пакета.
>>> from selenium import webdriver
Тогда давайте начнем безголовый хром. Некоторые варианты необходимы для передачи водителя, чтобы избежать разбивания во время запуска.
>>> chrome_options = webdriver.ChromeOptions()>>> chrome_options.add_argument('--no-sandbox')>>> chrome_options.add_argument('--window-size=1420,1080')>>> chrome_options.add_argument('--headless')>>> chrome_options.add_argument('--disable-gpu')>>> driver = webdriver.Chrome(chrome_options=chrome_options)
Теперь браузер уже открыт в контейнере, но мы не видим его. Давайте попробуем перейти на этот сайт и проверьте внутренний текст верхней правой кнопки.
>>> driver.get('https://www.oursky.com/')>>> el = driver.find_element_by_class_name('btn-header')>>> el.text'START YOUR PROJECT'
Давайте найдем элемент, с которым мы хотим взаимодействовать, например, кнопку в заголовке «BTN-Header». Понятно! Теперь, давайте попробуем запустить щелчок на кнопке.
>>> el.click()>>> driver.current_url'https://oursky.com/enquiry/general/'
Успех! Драйвер идет к ожидаемому URL после нажатия кнопки. Теперь вы можете запустить ваши сценарии в контейнере или использовать изображение в сценарии сборки CI. Вы также можете создать свое собственное изображение с большим количеством пакетов PIP, поэтому вы можете автоматизировать более мощные тесты. Наслаждаться! Вы можете найти Репозиторий GitHub Image Docker Здесь с настройкой среды тестирования настроен.
Также посмотрите на полное Пример сценария Selenium Python Таким образом, вы можете настроить его в свой собственный тест.
Я работаю на компанию разработки программного обеспечения Гонконг и Тайвань Орский Отказ Мы строим цифровые продукты для клиентов и Инструменты разработчика Как наша опериция Баас, Skygear, Что помогает разработчикам строить приложения быстрее.