zoukankan      html  css  js  c++  java
  • 008 selenium html报告

    '''
    时间:2018/12/06
    功能:html报告
    目录:
        一: 工程结构
        二: 测试报告 - 一般 
        三: 测试报告 - HTMLTestRunner
    '''

    一: 工程结构

    1 :  一级目录 : 工程名称 - web_auto_test

    2 :  二级目录 : 测试用例 - case

    3 :  二级目录 : 公共模块 - common

    4 :  二级目录 : 测试报告 - report

    5 :  二级文件 : 运行文件 - run_all.py

    # coding:utf-8
    import unittest
    
    class IntegerArithmeticTestCase(unittest.TestCase):
        def testAdd(self):  # test method names begin with 'test'
            self.assertEqual((1 + 2), 3)
            self.assertEqual(0 + 1, 1)
        def testMultiply(self):
            self.assertEqual((0 * 10), 0)
            self.assertEqual((5 * 8), 40)
    
    if __name__ == '__main__':
        unittest.main()

    1 :  test001_case_count.py

    # coding:utf-8
    from selenium import webdriver
    import time
    import unittest
    
    class LoginTest(unittest.TestCase):
        '''登录类的案例'''
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Firefox()
    
        @classmethod
        def tearDownClass(cls):
            cls.driver.quit()   # 编辑器问题
    
        def setUp(self):
            self.driver.get("http://127.0.0.1/zentao/user-login-L3plbnRhby8=.html")
    
        def tearDown(self):
            self.is_alert_exist()
            self.driver.delete_all_cookies() # 退出登录
            self.driver.refresh()
    
        def get_login_username(self):
            try:
                t = self.driver.find_element_by_css_selector("#userMenu>a").text
                print(t)
                return t
            except:
                return ""
    
        def is_alert_exist(self):
            '''判断alert是不是在'''
            try:
                time.sleep(2)
                alert = self.driver.switch_to.alert
                text = alert.text
                alert.accept() # 用alert 点alert
                return text
            except:
                return ""
    
        def test_01(self):
            '''登录成功的案例'''
            time.sleep(2)
            self.driver.find_element_by_id("account").send_keys("admin")
            self.driver.find_element_by_name("password").send_keys("123456")
            self.driver.find_element_by_id("submit").click()
            # 判断是否登陆成功
            time.sleep(3)
            t = self.get_login_username()
            print("获取的结果:%s"%t)
            self.assertTrue("admin" == t)
    
        def test_02(self):
            '''登录失败的案例'''
            time.sleep(2)
            # 错误账号和密码
            self.driver.find_element_by_id("account").send_keys("admin1112")
            self.driver.find_element_by_name("password").send_keys("")
            self.driver.find_element_by_id("submit").click()
            # 判断是否登陆成功
            time.sleep(3)
            t = self.get_login_username()
            print("登录失败,获取结果:%s"%t)
            # self.assertTrue("" == t)
            self.assertTrue(False == True)  # 断言失败截图
    
    if __name__ == "__main__":
        unittest.main()

    1 :  test002_case_login_chandao.py

    二: 测试报告 - 普通 

    # coding:utf-8
    import unittest
    import os
    
    
    # 路径兼容 - windows/mac
    cur_path = os.path.dirname(os.path.realpath(__file__))  # 获取路径 - 当前脚本
    cur_path = os.path.join(cur_path, "case")           # 拼接路径
    
    # 显示结果 - unnitest
    pattern = "test*.py"    # 匹配文件
    discover = unittest.defaultTestLoader.discover(start_dir = cur_path, pattern = pattern)
    print(discover)
    
    runner = unittest.TextTestRunner()
    runner.run(discover)
    D:ProgramToolsPythonpython.exe "D:/ProgramTools/PyCharm 5.0.4/PycharmProject/web_auto_test/run_all.py"
    ..<unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<test001_case_count.IntegerArithmeticTestCase testMethod=testAdd>, <test001_case_count.IntegerArithmeticTestCase testMethod=testMultiply>]>]>, <unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<test002_case_login_chandao.LoginTest testMethod=test_01>, <test002_case_login_chandao.LoginTest testMethod=test_02>]>]>]>
    admin
    获取的结果:admin
    .登录失败,获取结果:
    F
    ======================================================================
    FAIL: test_02 (test002_case_login_chandao.LoginTest)
    登录失败的案例
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "D:ProgramToolsPyCharm 5.0.4PycharmProjectweb_auto_testcase	est002_case_login_chandao.py", line 67, in test_02
        self.assertTrue(False == True)  # 断言失败截图
    AssertionError: False is not true
    
    ----------------------------------------------------------------------
    Ran 4 tests in 24.103s
    
    FAILED (failures=1)
    
    Process finished with exit code 0


    三: 测试报告 - HTMLTestRunner

    # coding:utf-8
    import unittest
    import os
    from common import HTMLTestRunner_cn
    
    
    # 路径兼容 - windows/mac
    cur_path = os.path.dirname(os.path.realpath(__file__))  # 获取路径 - 当前脚本
    cur_path = os.path.join(cur_path, "case")           # 拼接路径
    
    # 显示结果 - unnitest
    pattern = "test*.py"    # 匹配文件
    discover = unittest.defaultTestLoader.discover(start_dir = cur_path, pattern = pattern)
    print(discover)
    
    
    # 路径兼容 - windows/mac
    cur_path = os.path.dirname(os.path.realpath(__file__))  # 获取路径 - 当前脚本
    report_path = os.path.join(cur_path, "report", "report.html")
    
    # 显示结果 - HTMLTestRunner
    fp = open(report_path, "wb")
    runner = HTMLTestRunner_cn.HTMLTestRunner(stream = fp,                      # 报告路径
                                              title = "接口测试用例报告",       # 报告标题
                                              description = "测试用例详情报告", # 报告描述
                                              retry = 1,                        # 错误重写执行
                                              verbosity = 2)                    # 注释显示
    runner.run(discover)
    fp.close()

    1 :  run_all.py

    1 :  全部运行通过的测试报告

    1 :  运行失败的测试报告

  • 相关阅读:
    hdu 5723 Abandoned country 最小生成树 期望
    OpenJ_POJ C16G Challenge Your Template 迪杰斯特拉
    OpenJ_POJ C16D Extracurricular Sports 打表找规律
    OpenJ_POJ C16B Robot Game 打表找规律
    CCCC 成都信息工程大学游记
    UVALive 6893 The Big Painting hash
    UVALive 6889 City Park 并查集
    UVALive 6888 Ricochet Robots bfs
    UVALive 6886 Golf Bot FFT
    UVALive 6885 Flowery Trails 最短路
  • 原文地址:https://www.cnblogs.com/huafan/p/10079543.html
Copyright © 2011-2022 走看看