• python之web自动化测试框架


    梳理下搭建web自动化框架的流程:

    创建目录:

    cases:存放测试用例,unittest框架要求用例名必须以test开头,所以命名test_case.py

    test_case.py代码如下:继承unittest.TestCase类下面的方法setupclass(),teardownclass()。然后把用例放进去。每个页面作为一个用例

    '''这里写业务的用例  用例要用到page unittest'''
    from page.basePage import Page
    import unittest
    
    class UiTester(unittest.TestCase):#继承unittest.TestCase类下面的方法setup(),teardown()
        # def setUp(self):#每条测试用例执行之前,先执行它
        #     pass
        # def tearDown(self):#每条测试用例执行之后,执行它
        #     pass
        @classmethod
        def setUpClass(cls):#类里面的函数执行之前,最先执行它(所有用例执行之前,执行一次)
            cls.page=Page()#实例化,打开浏览器
            cls.page.open()#打开url网页
    
        def test_a_login(self):#这是case,每个页面里的功能点,用例与数据源分离,方便维护
            self.page.send_username()
            self.page.send_passwd()
            self.page.login()
            self.assertTrue(self.page.check_login())
        def test_b_creatbug(self):
            self.page.clickbug()  # 进入到bug页面
            self.page.mentionbug()  # 点击提bug按钮,进入到提bug页面
            self.page.selectmodule()  # 选择所属模块
            self.page.bugtype()  # 选择bug类型
            self.page.os()  # 选择操作系统
            self.page.browser()  # 选择浏览器
            self.page.version()  # 选择影响版本
            self.page.assignto()  # 选择分配人
            self.page.deadline()  # 选择截止日期
            self.page.bugtitle()  # bug标题
            self.page.context()  # bug步骤
            self.page.mailto()  # 超送人
            self.page.file()
            self.page.save()
            self.assertTrue(self.page.check_creatbug())
        @classmethod
        def tearDownClass(cls):#类里面的所有测试用例执行之后,最后执行它(所有用例执行之后,执行一次)
            cls.page.quit()

    lib目录:

    pyse.py文件主要存放操作元素的方法比如:click(),send_keys(),double_click(),drag_and_drop()等等

    page目录:basepage.py,根据PO思想,将每个页面作为一个类,每个页面的功能点作为这个类的一个函数。将所有页面写出来

    在用例文件test_case.py中调用上面的函数,每个页面作为一个用例,调用每个页面的函数

    bin:start.py写运行用例的流程:

    创建测试集合,找到测试用例,将每个测试用例加到测试集合中,运行用例,产生报告。

     from lib.logger import logger
    from lib.path import WEBCASEPATH,REPORTPATH
    from lib.HTMLTestRunner import HTMLTestRunner
    import unittest
    from lib.tool import Tool
    class Main(object):
        def run(self):
            Tool().clear_picture()
            suite = unittest.TestSuite()
            cases = unittest.defaultTestLoader.discover(WEBCASEPATH)
            print(cases)
            for case in cases:
                print(case)
                suite.addTest(case)
            f = open(REPORTPATH,'wb')#打开一个报告文件
            runner = HTMLTestRunner(f,verbosity=1,title=u'测试报告', description=u'用例执行情况:')
            runner.run(suite)
            f.flush()
            f.close()
  • 相关阅读:
    RTT startup.c 代码学习
    [RTT例程练习] 1.2 静态线程除初始化与脱离
    linux 下生成核心文件
    [RTT例程练习] 2.3 信号量检测按键(同步) (信号量互斥)
    [RTT例程练习] 1.6 线程优先级反转原理
    [RTT例程练习] 1.7 优先级翻转之优先级继承
    extern int Image$$RW_IRAM1$$ZI$$Limit
    [RTT例程练习] 1.1 动态线程创建,删除
    [RTT例程练习] 1.3 线程让出
    Linux操作系统下三种配置环境变量的方法
  • 原文地址:https://www.cnblogs.com/balllyh/p/10409936.html
Copyright © 2020-2023  润新知