Objective
Selenium multi-threaded running use case, this previous article has been solved, how to produce a test report this is the difficulty, just on GitHub on a big God to share the Beautifulreport, perfect combination, you can generate reports.
Environment Essentials:
- Python3.6:beautifulreport not supported 2.7
- Tomorrow:pip Install tomorrow Installation
- Beautifulreport:github downloaded and placed in the/lib/site-packages/directory
Beautifulreport
1.beautifulreport:beautifulreport
2. Download method:
- Method one will use Git to download the git directly to the local
git clone https://github.com/TesterlifeRaymond/BeautifulReport
- Method two point clone or Download button, Download zip can be downloaded to local
3. After downloading, put beautifulreport entire package into Python's/lib/site-packages/directory
How to use
1. Project structure:
The. Py use case script at the beginning of cases test
Report-Generated HTML reports
run_all.py for executing all scripts
2. Single test script test_a.py reference
# coding:utf-8import unittestfrom selenium import webdriverimport timeclass Testaa(unittest.TestCase): u'''测试用例a的集合''' @classmethod def setUpClass(cls): cls.driver = webdriver.Firefox() def setUp(self): self.driver.get("https://www.cnblogs.com/yoyoketang/") def test_01(self): u'''用例1:用例1的操作步骤''' t = self.driver.title print(t) self.assertIn("悠悠", t) def test_02(self): u'''用例2:用例2的操作步骤''' t = self.driver.title print(t) self.assertIn("悠悠", t) def test_03(self): u'''用例3:用例3的操作步骤''' t = self.driver.title print(t) self.assertIn("悠悠", t) @classmethod def tearDownClass(cls): cls.driver.quit()if __name__ == "__main__": unittest.main()
3.run_all Code
# coding=utf-8import unittestfrom beautifulreport import beautifulreportimport osfrom tomorrow Import threads# Get path Curpath = Os.path.dirname (Os.path.realpath (__file__)) Casepath = Os.path.join (Curpath, "case") if not Os.path.exists (Casepath): Print ("The test case must be placed in the ' case ' file directory") Os.mkdir (casepath) Reportpath = Os.path.join (Curpath, "Report" If not os.path.exists (Reportpath): Os.mkdir (Reportpath) def add_case (Case_path=casepath, rule= "test*.py"): " Load all test Cases ' ' Discover = Unittest.defaultTestLoader.discover (Case_path, Pattern=rule, Top_level_dir=none) return Discover@threads (3) def run (t Est_suit): result = Beautifulreport (test_suit) result.report (filename= ' report.html ', description= ' Test deafult report ', Log_ Path= ' report ') if __name__ = = "__main__": # use Case Collection cases = Add_case () print (cases) for I in Cases:print (i ) Run (i)
4. Reporting
Note: Beautifulreport is a great God on GitHub shared frame, here jiehuaxianfo, more ways to use the reference address: Https://github.com/TesterlifeRaymond/BeautifulReport
Selenium+python Automated 91-unittest multithreaded Generation report (Beautifulreport)