1. 程式人生 > 實用技巧 >PO模型(轉)

PO模型(轉)

PO是什麼

Page Object(PO):頁面物件模式來解決,po能讓我們的測試程式碼變得可讀性更好,可維護性高,複用性高

1、頁面物件模型(PO)是一種設計模式,用來管理維護一組web元素的物件庫 2、在PO下,應用程式的每一個頁面都有一個對應的page class 3、每一個page class維護著該web頁的元素集和操作這些元素的方法 4、page class中的方法命名最好根據對應的業務場景進行,例如通常登入後我們需要等待幾秒鐘, 我們可以這樣命名該方法:waitingForLoginSuccess()。 PO的優勢
1、PO提供了一種業務流程與頁面元素操作分離的模式,這使得測試程式碼變得更加清晰。 2、頁面物件與用例分離,使得我們更好的複用物件。 3、可複用的頁面方法程式碼會變得更加優化 4、更加有效的命名方式使得我們更加清晰的知道方法所操作的UI元素。例如我們要回到首頁, 方法命名為:gotoHomePage(),通過方法名即可清晰的知道具體的功能實現。 生成測試報告
from
log.user_log import UserLog import HTMLTestRunner import unittest import os if __name__ == '__main__': file_path = os.path.join(os.getcwd()+"/report/"+"first_case.html") f = open(file_path,'wb') suite = unittest.TestSuite() suite.addTest(FirstCase('test_login_success')) #suite.addTest(FirstCase('test_login_code_error'))
suite.addTest(FirstCase('test_login_email_error')) suite.addTest(FirstCase('test_login_username_error')) #unittest.TextTestRunner().run(suite) #suite = unittest.TestLoader().loadTestsFromTestCase(FirstCase) runner = HTMLTestRunner.HTMLTestRunner(stream=f,title="This is first123 report
",description=u"這個是我們第一次測試報告",verbosity=2) runner.run(suite)
HTMLTestRunner

生成日誌

import logging

            #檔名字
            base_dir = os.path.dirname(os.path.abspath(__file__))
            log_dir = os.path.join(base_dir,"logs")
            log_file = datetime.datetime.now().strftime("%Y-%m-%d")+".log"
            log_name = log_dir+"/"+log_file
            print(log_name)
            #檔案輸出日誌
            self.file_handle = logging.FileHandler(log_name,'a',encoding='utf-8')
            self.file_handle.setLevel(logging.INFO)
            formatter = logging.Formatter('%(asctime)s %(filename)s--> %(funcName)s %(levelno)s: %(levelname)s ----->%(message)s')
            self.file_handle.setFormatter(formatter)
            self.logger1.addHandler(self.file_handle)
log