zoukankan      html  css  js  c++  java
  • 只打开一次浏览器,生成html测试报告<小紧张中......>

    from selenium import webdriver
    import unittest
    import time
    
    class Blog(unittest.TestCase):
        """登录博客园"""
    
        # 添加@classmethod装饰器,只打开浏览器一次
        @classmethod
        def setUpClass(cls):
            """初始化"""
            cls.browser = webdriver.Chrome()
            cls.url = 'https://passport.cnblogs.com/user/signin'
            cls.browser.get(cls.url)
            cls.browser.implicitly_wait(30)
            cls.browser.maximize_window()
    
        def login(self, username, password):
            """登录帐号密码参数化"""
            self.browser.find_element_by_id('input1').send_keys(username)
            self.browser.find_element_by_id('input2').send_keys(password)
            self.browser.find_element_by_id('signin').click()
            time.sleep(3)
    
        def is_login_sucess(self):
            """判断是否获取登录后账户名称"""
            time.sleep(2)
            try:
                text = self.browser.find_element_by_id('lnk_current_user').text
                print(text)
                return True
            except:
                return  False
    
        def back_out(self):
            # 退出返回登录页面
            time.sleep(2)
            self.browser.find_element_by_xpath('//*[@id="header_user_right"]/a[5]').click()
            time.sleep(2)
            # alert方法去掉退出弹框
            s = self.browser.switch_to_alert()
            s.accept()
            time.sleep(2)
            self.browser.find_element_by_xpath('//*[@id="header_user_left"]/a[1]').click()
            time.sleep(2)
    
    
        def clear_box(self):
            """清空输入框"""
            self.browser.find_element_by_id('input1').clear()
            self.browser.find_element_by_id('input2').clear()
            time.sleep(1)
    
        def test_01(self):
            """调用login函数登录"""
            self.login('uesrname', 'password')
            result = self.is_login_sucess()
            self.assertTrue(result)
    
        def test_02(self):
            """错误的示范"""
            self.back_out()
            self.clear_box()
            self.login('1', '2')
            result = self.is_login_sucess()
            self.assertTrue(result, msg='失败了呀,没有获取登录后的账户名称呢!')
    
        @classmethod
        def tearDownClass(cls):
            cls.browser.quit()
    
    if __name__ == '__main__':
        """生成html报告"""
        import HTMLTestRunner
        # now = time.s
        now = time.strftime('%Y-%m-%d %H-%M-%S')
        report_title = '博客园登录自动化测试'
        # report_path = r'D:PythonProjectcom
    eport.html'
        report_path = 'D:\PythonProject\com\'+ now + 'report.html'
        explain = '博客园登录测试报告'
    
        test_suite = unittest.TestSuite()
        test_suite.addTest(Blog('test_01'))
        test_suite.addTest(Blog('test_02'))
    
    
        with open(report_path, 'wb') as fp:
            runner = HTMLTestRunner.HTMLTestRunner(title=report_title, stream=fp, description=explain)
            runner.run(test_suite)
            fp.close()
    愿你走出半生,归来仍是少年!
  • 相关阅读:
    routing路由模式
    MQ的订阅模式
    RabbitMq中的消息应答与持久化
    work工作消息队列Round-robin与Fair dispatch
    040 关于hive元数据的解析
    simple简单消息队列
    用户设置与virtual host配置
    Mq的介绍
    字典
    元组Tuple
  • 原文地址:https://www.cnblogs.com/changqing8023/p/6915965.html
Copyright © 2011-2022 走看看