Python+Selenium. Запуск тестов в Jenkins выдает ошибки

python
selenium
jenkins
Теги: #<Tag:0x00007fedbc04d308> #<Tag:0x00007fedbc04d1c8> #<Tag:0x00007fedbc04d088>

(Максим Неверный) #1

Здравствуйте, уважаемые участники АТ! Я новичок в автоматизации тестирования. Столкнулся тут с такой проблемой: при запуске тестов из PyCharm всё проходит отлично, но если начать сборку в jenkins - валятся ошибки. При всём при том, браузер не запускается, но тут, как я уже понял нужна установка selenium-server-standalone. Подскажите, в чем может быть проблема?


(Bolatbek) #2

Покажите лог ошибок.


(Виталий Коряков) #3

Много неизвестных факторов.
Что это за файл, который вы запускаете
Какой браузер, если хром - установен ли хромдрайвер
Если юниттест, может файл необходимо запускать как модуль.
Что за ошибки валятся
и т д
Надо больше инфы


(Максим Неверный) #4

Прошу прощения, но тест лога огромен. Есть ли способ выложить его сюда файлом?


(Bolatbek) #5

Так весь лог не нужен.
Глазками пробежитесь - найдете основные моменты.

Но сначала ответьте на вопросы выше от Виталия.


(Максим Неверный) #6

Файл test_5LoginPassTest.py представляет собой маленький юниттест на проверку правильности введения логина/пароля пользователя.

import time
import unittest
global str

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Firefox()
driver.get("http://test.000.ru/")
driver.maximize_window()
wait = WebDriverWait(driver, 10)

class ASeleniumLogin(unittest.TestCase):
    def test_1Login(self):
        assert "Login" in driver.title
        _ = wait.until(EC.element_to_be_clickable((By.ID, 'LoginForm_username')))
        elem = driver.find_element_by_id("LoginForm_username")
        elem.click()
        elem = driver.find_element_by_id("LoginForm_password")
        elem.click()
        elem.send_keys(Keys.RETURN)

    def test_2NoSendLogPass(self):
        assert "Login" in driver.title
        ErrTextLogin = driver.find_element_by_id('LoginForm_username_em_').text == 'Логин'
        ErrTextPassw = driver.find_element_by_id('LoginForm_password_em_').text == 'Пароль'
        time.sleep(4)

    def test_3SendIncorrectLogPass(self):
        assert "Login" in driver.title
        _ = wait.until(EC.element_to_be_clickable((By.ID, 'LoginForm_username')))
        elem = driver.find_element_by_id("LoginForm_username")
        elem.send_keys('123')
        elem = driver.find_element_by_id("LoginForm_password")
        elem.send_keys('123')
        elem.send_keys(Keys.RETURN)
        time.sleep(3)
        ErrMsg = driver.find_element_by_id('LoginForm_password_em_').text == 'Неправильно указан логин или пароль'

        if __name__ == '__main__':
            unittest.main()

Браузер - firefox.
Ошибки в Jenkins говорят о том, что он пытается запустить все автотесты, хотя я, вроде, указал, что запускать только один тест:


(Виталий Коряков) #7

python -m unittest test_5LoginPassTest


(Максим Неверный) #8

Большое спасибо Вам!
теперь всё правильно


(Виталий Коряков) #9

Пожалуйста )
Рад помочь