Python Selenium : Generating the HTML Test Report and Screenshot feature.

Python Selenium : HtmlTestRunner and Screenshot feature.

Introduction

HtmlTest runner
HtmlTest runner is a unittest test runner that save test results in Html files, for human readable presentation of results.

Screenshots
In automation, it is mandatory to take the screenshot for verification so that can prove also that your test case has covered certain functionality or not. Screenshots help you a lot when your test case will fail so that you can identify what went wrong in your script or in your application.

1. HtmlTestRunner Installation

You can install and read more about HtmlTestRunner from the Github..
HtmlTestRunner Github Page
Using pip, you can install selenium like this:
pip install html-testRunner

2. Sample Selenium Test

create pythonorg-sample.py

import unittest
import HtmlTestRunner
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


class PythonOrgSearch(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()

    def test_search_in_python_org(self):
        driver = self.driver
        driver.get("http://www.python.org")

        # take screen shot
        self.driver.save_screenshot("python-org.png")

        elem = driver.find_element_by_name("q")
        elem.send_keys("pycon")
        elem.send_keys(Keys.RETURN)

        # take screen shot after search
        self.driver.save_screenshot("python-org-after-search.png")

        assert "No results found." not in driver.page_source

    def test_error(self):
        """ This test should be marked as error one. """
        raise ValueError

    def test_fail(self):
        """ This test should fail. """
        self.assertEqual(1, 2)

    def tearDown(self):
        self.driver.close()


if __name__ == "__main__":
    unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='report'))

3. Run Selenium Test

python pythonorg-sample.py

4. Screenshots

HtmlTestRunner
Console Log

Running tests...
----------------------------------------------------------------------
 This test should be marked as error one. ... ERROR (1.961452)s
 This test should fail. ... FAIL (1.838222)s
 test_search_in_python_org (__main__.PythonOrgSearch) ... OK (12.246906)s

======================================================================
ERROR [1.961452s]: This test should be marked as error one.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "pythonorg-sample.py", line 31, in test_error
    raise ValueError
ValueError

======================================================================
FAIL [1.838222s]: This test should fail.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "pythonorg-sample.py", line 35, in test_fail
    self.assertEqual(1, 2)
AssertionError: 1 != 2

----------------------------------------------------------------------
Ran 3 tests in 0:00:16

FAILED
 (Failures=1, Errors=1)

Generating HTML reports...

0 Comments:

Post a Comment