{ "info": { "author": "Prashant Pawar", "author_email": "prashantpawar7090@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "htmllogger\n=====================\n\nPython library provides customized Test Report for selenium or any other automation framework\n\nIntroduction.\n============\n\n* A htmllogger is designed inorder to provide customized logs for autumated tests.\n* So user can able to write step log and test case details.\n\n \n\nMain Features:\n=============\n\n* Create an interactive html report for automation suite.\n* It can be easily integrated with unit testing frameworks eg. unittest,pytest\n* It provides three methods inorder to generate report for tests.\n* It combines execution result of all tests which are executed in batch.\n\nInstallation\n=============\npip install:\n\n```shell\n> pip install htmllogger\n```\nPre-Requisite\n=============\n1) You will have to initialise htmllogger object to start use of reporting functions.\n2) At the start of each test you have to use 'assert_testcase_log(\"Test_Case_name\")',\n3) Inorder to detailing of testcase steps you will have to use 'assert_step_log('Test_step_details')'\n4) To handle failures you will write your test in 'Try Except' block and in except block call \n 'assert_step_fail_log(driver, str(e))' pass First argument as driver object to capture screenshot of failure.\n second argument is except object converted in string format.\n\t\nFollow below examples for more understanding...\t\n\t\nExamples\n=============\n1. Python - Unittest\n\n```python\nimport unittest\nfrom selenium import webdriver\nfrom htmllogger.Htmllogger import HTMlLogger\nfrom selenium.webdriver.firefox.firefox_binary import FirefoxBinary\n\nclass InputFormsCheck2(unittest.TestCase):\n\n # Opening browser.\n def setUp(self):\n self.logger = HTMlLogger('Path of folder where we need to create report')\n binary = FirefoxBinary('Binary Path for your browser')\n self.driver = webdriver.Firefox(firefox_binary=binary,\n executable_path=r\"/geckodriver.exe\")\n\n # Testing Single Input Field.\n def test_singleInputField(self):\n self.logger.assert_testcase_log(\"Test Single Input Field\") # ****Writting Test case Name\n try:\n pageUrl = \"http://www.seleniumeasy.com/test/basic-first-form-demo.html\"\n driver = self.driver\n driver.maximize_window()\n driver.get(pageUrl)\n\n # Finding \"Single input form\" input text field by id. And sending keys(entering data) in it.\n eleUserMessage = driver.find_element_by_id(\"user-message\")\n eleUserMessage.clear()\n eleUserMessage.send_keys(\"Test Python\")\n self.logger.assert_step_log(\"Entered text [Test Python] in [user-message] EditBox.\") # ****Writting step log\n # Finding \"Show Your Message\" button element by css selector using both id and class name. And clicking it.\n eleShowMsgBtn = driver.find_element_by_css_selector('#get-input > .btn')\n eleShowMsgBtn.click()\n self.logger.assert_step_log(\"Clicked on [Show Message] Button.\") # ****Writting step log\n # Checking whether the input text and output text are same using assertion.\n eleYourMsg = driver.find_element_by_id(\"display\")\n assert \"Test Python\" in eleYourMsg.text\n except Exception as e:\n self.logger.assert_step_fail_log(driver, str(e)) # Capturing failure\n\n # Closing the browser.\n def tearDown(self):\n self.driver.close()\n\n\n# This line sets the variable \u201c__name__\u201d to have a value \u201c__main__\u201d.\n# If this file is being imported from another module then \u201c__name__\u201d will be set to the other module's name.\nif __name__ == \"__main__\":\n unittest.main()\n```\n2. Python - Pytest\n\nInside test_Login.py\n```python\nimport pytest\nfrom selenium import webdriver\nfrom htmllogger.Htmllogger import HTMlLogger\nfrom selenium.webdriver.firefox.firefox_binary import FirefoxBinary\n\n@pytest.fixture()\ndef setup(request):\n print(\"initiating driver\")\n logger = HTMlLogger('Path of folder where we need to create report')\n binary = FirefoxBinary('C:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe')\n driver = webdriver.Firefox(firefox_binary=binary,executable_path=r\"D:/SeleniumTest/SeleniumTest/MainResources/drivers/geckodriver.exe\")\n request.instance.driver = driver\n request.instance.logger = logger\n driver.get(\"http://seleniumeasy.com/test\")\n driver.maximize_window()\n\n yield driver\n driver.close()\n\n@pytest.mark.usefixtures(\"setup\")\nclass TestExample:\n def test_title(self):\n try:\n self.logger.assert_testcase_log(\"Testcase :Testing Title\") # ****Writting Test case Name\n print(\"Verify title...\")\n assert \"Selenium Easy\" in self.driver.title\n self.logger.assert_step_log(\"Successfully verified title\") # ****Writting step log\n except Exception as e:\n self.logger.assert_step_fail_log(self.driver, str(e))\n def test_content_text(self):\n self.logger.assert_testcase_log(\"Testcase : Testing Content\")\n try:\n print(\"Verify content on the page...\")\n centerText = self.driver.find_element_by_css_selector('.tab-content .text-center').text\n self.logger.assert_step_log(\"Verify content on page\")\n assert \"WELCOME TO SELENIUM EASY DEMO\" == centerText\n except Exception as e:\n self.logger.assert_step_fail_log(self.driver, str(e)) #****Capturing failure\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PrashantP9070/htmllogger", "keywords": "selenium,page object model,pom,pages,page factory,htmllogger,html report", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "htmllogger", "package_url": "https://pypi.org/project/htmllogger/", "platform": "", "project_url": "https://pypi.org/project/htmllogger/", "project_urls": { "Homepage": "https://github.com/PrashantP9070/htmllogger" }, "release_url": "https://pypi.org/project/htmllogger/0.1/", "requires_dist": null, "requires_python": "", "summary": "Python library provides interactive test report for selenium", "version": "0.1" }, "last_serial": 5945138, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "5e11c7f2eaaaf1e3680d307fc403c972", "sha256": "a47ac5178daf0710788e4f8a2c932f906c90880faaadbc41932036cd2f9390cd" }, "downloads": -1, "filename": "htmllogger-0.1.tar.gz", "has_sig": false, "md5_digest": "5e11c7f2eaaaf1e3680d307fc403c972", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61088, "upload_time": "2019-10-08T14:36:12", "url": "https://files.pythonhosted.org/packages/77/5e/de04e698d3c52582dcfdb88af8ed2b14dff7c9d81237f5c1da9414c5decc/htmllogger-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5e11c7f2eaaaf1e3680d307fc403c972", "sha256": "a47ac5178daf0710788e4f8a2c932f906c90880faaadbc41932036cd2f9390cd" }, "downloads": -1, "filename": "htmllogger-0.1.tar.gz", "has_sig": false, "md5_digest": "5e11c7f2eaaaf1e3680d307fc403c972", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61088, "upload_time": "2019-10-08T14:36:12", "url": "https://files.pythonhosted.org/packages/77/5e/de04e698d3c52582dcfdb88af8ed2b14dff7c9d81237f5c1da9414c5decc/htmllogger-0.1.tar.gz" } ] }