zoukankan      html  css  js  c++  java
  • 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("
    ", " "), 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!

  • 相关阅读:
    Django之DB数据库优化
    whatweb运行流程详解,适用于小白
    阿里云部署Django详细过程
    web指纹识别技术
    whatweb运行原理及各文件的作用详解
    Ruby种的特殊变量
    Ruby正则练习面试题
    centos7安装升级Ruby
    Ruby中的<<和>>的作用详解
    git操作指令合集
  • 原文地址:https://www.cnblogs.com/dinghanhua/p/10263379.html
Copyright © 2011-2022 走看看