python之web自动化测试框架

Posted Balllyh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 

以上是关于python之web自动化测试框架的主要内容,如果未能解决你的问题,请参考以下文章

Python之Scrapy安装

python自动化web自动化:7.测试框架实战三之并发执行用例

python自动化web自动化:6.测试框架实战二之页面page类用例编写失败截图及测试报告

Pytest 可视化测试报告之 Allure

Web 自动化测试全面提升之 Pytest

Selenium3与Python3实战 Web自动化测试框架