1. 程式人生 > >python UI自動化實戰記錄七:頁面2用例編寫

python UI自動化實戰記錄七:頁面2用例編寫

使用python自帶的unittest測試框架,用例繼承自unittest.TestCase類。

1 引入介面類和頁面類

2 setUp函式中開啟頁面,定義介面物件

3 tearDown函式中關閉頁面

4 test打頭的函式都是用例。因頁面和介面的相關方法都已封裝好,所以用例會比較簡潔。

5 當一個用例需根據引數不同執行多次時,可使用ddt資料驅動,或unittest自帶的subTest。

 

# coding:utf-8
"""
頁面2的測試用例
"""

from apiclass.api_fund import Fund
from pageclass.strategy import
StrategyPage from common.launch_browser import launch_browser import unittest from ddt import ddt,data,unpack @ddt class StrategyPageTest(unittest.TestCase): @classmethod def setUpClass(cls): sso = "sso串" driver = launch_browser("chrome") cls.page = StrategyPage(driver) cls.page.open_strategy_page(sso)
# 建立頁面物件 cls.fund = Fund() # 建立介面物件 @classmethod def tearDownClass(cls): cls.page.closepage() #關閉瀏覽器 """用例""" def test01_nav(self): #淨值資料對比 self.compare_nav() def test02_trends_default(self): #組合走勢預設值驗證 self.compare_trend_default() def test03_trends(self): #
組合走勢業績表現 self.compare_trends() def test04_percents(self): # 組合漲幅資料對比 self.compare_percents() def test05_settings_default(self): # 驗證策略配置預設資料 self.compare_settings() def test06_settings(self): #策略配置資料對比 self.compare_settings_alldays() style_level = [(styleindex,levelindex) for styleindex in range(5) for levelindex in range(3)] @data(*style_level) @unpack def test07_checkallstyles(self,styleindex,levelindex): #全量驗證-選擇不同的策略,驗證資料正確性 self.page.choose_strategy(styleindex,levelindex) #選擇策略 self.assertTrue(self.page.check_chooseresult(),"所選型別與頁面顯示型別不一致") # 驗證所選策略所有的值 self.compare_nav() self.compare_trend_default() self.compare_trends() self.compare_percents() self.compare_settings() self.compare_settings_alldays() """介面與頁面資料比較""" def compare_nav(self): """淨值資料對比""" code = self.page.get_code() self.page.get_navinfo() # 頁面資料 self.fund.get_fund_latestinfo(code) # 獲取介面資料 self.assertEqual(self.page.navlist, self.fund.navlist, code+"介面和頁面的淨值不一致") def compare_trend_default(self): """組合走勢預設值驗證""" code = self.page.get_code() pattern = self.page.get_actived_pattern() peroid = self.page.get_actived_peroid() expect_result = self.fund.get_fund_trends(code, pattern, peroid) # 獲取組合走勢介面資料 actual_result = self.page.get_trends() # 獲取頁面資料 self.assertEqual(expect_result, actual_result, code+"組合走勢開始時間,業務表現資料不一致") def compare_trends(self): """組合走勢業績表現""" code = self.page.get_code() for patternindex in range(2): #兩種定投方式 self.page.choose_trends_pattern(patternindex) #點選定投列表獲取時間區間 for peroidindex in range(len(self.page.peroidlist)): with self.subTest("choose_peroid_%s"%(peroidindex+1)): self.page.choose_trends_peroid(peroidindex) #點選時間區間 expect_result = self.fund.get_fund_trends(code, self.page.pattern, self.page.peroid) # 獲取組合走勢介面資料 actual_result = self.page.get_trends() # 獲取頁面資料 self.assertEqual(expect_result, actual_result, "組合走勢資料不一致%s_%s_%s"%(code,self.page.peroid,self.page.pattern)) def compare_percents(self): """組合漲幅資料對比""" code = self.page.get_code() # 獲取策略資訊 self.fund.get_fund_latestinfo(code) # 獲取介面資料 self.page.get_percents() # 獲取頁面組合漲幅資料 self.assertEqual(self.page.percents_list, self.fund.percents_list, code+"組合漲幅資料對比不一致") def compare_settings(self): """驗證策略配置預設資料""" code = self.page.get_code() day = self.page.get_strategy_adjustdate().replace("-", '') # 當前跳轉日期 self.page.get_strategy_settings() # 獲取頁面策略配置資料 self.fund.get_fund_strategy(self.page.strategycode, day) # 獲取介面資料 self.assertEqual(self.page.memo, self.fund.memo.replace("\n", " "), code+"策略分析不一致") self.assertEqual(self.page.samples, self.fund.samples, code+"策略配置不一致") def compare_settings_alldays(self): """策略配置資料對比""" self.page.get_strategy_adjustdate() # 獲取頁面策略調倉日期 for adjustdate in self.page.adjustDatelist: with self.subTest("adjustdate_%s" % adjustdate): self.page.choose_adjustdate(adjustdate) # 選擇日期並獲取配置 self.compare_settings() if __name__ == '__main__': unittest.main()

 

the end!