Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Selenium WD + Python. Скриншот в отчетах

screenshot
jenkins
reporting
python
webdriver
Теги: #<Tag:0x00007f7b62b126e8> #<Tag:0x00007f7b62b125a8> #<Tag:0x00007f7b62b12468> #<Tag:0x00007f7b62b12328> #<Tag:0x00007f7b62b121c0>

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

Здравствуйте, уважаемое сообщество!
У меня следующий вопрос: есть несколько автоттестов. Если они находят ошибку, то делают скрин экрана. С этим всё ясно, но можно ли по средствам jenkins или как-то ещё организовать отправку их (скринов) на почту вместе с отчетами о не успешном прохождении тестов? Сами письма с отчетами из jenkins уходят, но представляют из себя лишь программные логи ошибок и пользователям не удобно анализировать где именно произошло падение.
Спасибо заранее за ответ!


(Bolatbek) #2

Один из вариантов:
Поставить плагин Email Extension Plugin.
И в джобе настроить отправку определенных файлов - поле “Attachments”.

Can use wildcards like ‘module/dist/**/*.zip’. See the @includes of Ant fileset for the exact format. The base directory is the workspace.
http://ant.apache.org/manual/Types/fileset.html - формат


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

Такой вариант, конечно, не плох, но ведь изначально эти вложения необходимо как-то генерировать? Нашел интересный случай для генерации, но почему-то в директории с кейсами не появляется нужный файл отчета:

if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(unittest.makeSuite(ASeleniumLogin_1))
    # File
    dir = os.getcwd()
    dateTimeStamp = time.strftime('%Y%m%d_%H_%M_%S')
    buf = open(dir+"TestReport" + "_" + dateTimeStamp + ".html", 'wb')
    runner = HTMLTestRunner.HTMLTestRunner(
        stream=buf,
        title='Test the Report', 
        description='Result of tests' 
    )
    runner.run(suite)
    unittest.main()

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

Нашел ещё более просто пример для генерации отчетов:

import unittest
import xmlrunner

class TestFunctions(unittest.TestCase):
    def test_test1(self):
        pass

    def test_test2(self):
        pass

if __name__ == '__main__':
    unittest.main(testRunner=xmlrunner.XMLTestRunner(output='C:/PyTest/TestReport.html'))

Но опять сталкиваюсь с той же проблемой - в папке не появляется файл с отчетом. Помогите, пожалуйста, разобраться, в чем тут дело?


(Bolatbek) #5

Вы написал в первом посте так:

Если они находят ошибку, то делают скрин экрана. С этим всё ясно, но можно ли по средствам jenkins или как-то ещё организовать отправку их (скринов) на почту вместе с отчетами о не успешном прохождении тестов?

Я логично сделал вывод, что со скринами и отчетами все ок, но осталось организовать отправку.
Пишите точнее, что вы хотите.

Вариант у вас должен быть таким:

  • генерите всегда отчет о прохождении теста (например, этой тулзой: http://tungwaiyip.info/software/HTMLTestRunner.html)
  • если билд падает, то высылайте об этом событии письмом, как это сделать - написал выше.

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

HTMLTestRunner не работает. Перепробовал всё, но в папке файл с отчетом после прохождения теста не появился


(Bolatbek) #7
buf = open(dir+"TestReport" + "_" + dateTimeStamp + ".html", 'wb')

если заменить на

buf = open("TestReport.html", 'wb')

А вот это - убрать:

unittest.main()

Появится файл?


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

Нет, не появился. И такой вариант я тоже уже пробовал.


(Bolatbek) #9

Это странно, так как:

buf = open("TestReport.html", 'wb')

уже должен был создать пустой файл.


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

Весьма. Есть 2 предположения:

  1. Я работаю не под админом. Может быть из-за этого программа и не может создать файл, т.к. у нее нет достаточно прав? (хотя, сам я файл создаю, так что может и это не верное предположение)
  2. Ранее в самом HTMLTestRunner.py была изменена строка: from io import StringIO, в соответствии с рекомендациями в этом комментарии к похожей проблеме. Теперь в самом теле HTMLTestRunner.py наблюдаются вот такие фрагменты:

Может корень проблемы в этом?


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

Да, очевидно, что-то в этом есть, т.к. после запуска из консоли, файл, таки, создал (пустой, правда), но выдал огромное множество ошибок в файле HTMLTestRunner


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

Проблема решилась путем частичного изменения файла HTMLTestRunner.py ввиду того, что я использую Python 3.5.1
Спасибо за советы и уделенное время!
Впредь, буду внимательнее! :slight_smile: