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