python多文件项目调试方法_Python+Selenium框架版(六)- 一个类文件多个测试方法情况下测试固件的写法...

目标:在同一个类中,多个测试函数时候,测试固件如何写。

首先,我们先看一下如果存在两个测试函数的时候,程序是怎么执行的

test1.py

import time

import unittest

from framework.browser_engine import BrowserEngine

from pageobjects.baidu_homepage import HomePage

class BaiduSearch(unittest.TestCase):

def setUp(self):

"""

测试固件的setUp()代码,主要是测试的前提工作

:return:

"""

browse = BrowserEngine(self)

self.driver = browse.open_browser(self)

def tearDown(self):

"""

测试结束后的操作,这里基本上都是关闭浏览器

:return:

"""

self.driver.quit()

def test_baidu_search(self):

"""

这里一定要test开头,

把测试逻辑代码封装到一个test开头的方法里

:return:

"""

homepage = HomePage(self.driver)

homepage.type_search('selenium')# 调用页面对象中的方法

homepage.send_submit_btn() #调用页面对象类中的点击搜索按钮方法

time.sleep(2)

homepage.get_window_img() # 调用基类截图方法

try:

assert 'selenium' in homepage.get_pape_title()

# 调用页面对象继承基类中的获取页面标题方法

print('Test Pass.')

except Exception as e:

print('Test Fail.',format(e))

def test_search2(self):

homepage = HomePage(self.driver)

homepage.type_search('python') # 调用页面对象中的方法

homepage.send_submit_btn() # 调用页面对象类中的点击搜索按钮方法

time.sleep(2)

homepage.get_window_img() # 调用基类截图方法

if __name__ == '__main__':

unittest.main()

运行结果:浏览器启动和关闭了两次,是不是这个问题?原来,没执行一次test开头的函数,都要执行一次测试固件,也就是说执行setUp()和tearDown()一次,如果有N个test开头的函数,测试固件就执行N次,我们到底有没有,只需要执行一次测试固件,支持执行多次测试函数。

然后,测试中,肯定需要,打开一个页面,然后测试这个页面的多个用例,才关闭这个页面,去测试其他页面,在unittest是有相关测试固件方法去支持这种行为。

加上这两个调整,开始和结束就只执行一次了。

test2.py

import time

import unittest

from framework.browser_engine import BrowserEngine

from pageobjects.baidu_homepage import HomePage

class BaiduSearch(unittest.TestCase):

@classmethod # 加上这个后只执行一次

def setUpClass(self):

"""

测试固件的setUp()代码,主要是测试的前提工作

:return:

"""

browse = BrowserEngine(self)

self.driver = browse.open_browser(self)

@classmethod # 加上这个后只执行一次

def tearDownClass(self):

"""

测试结束后的操作,这里基本上都是关闭浏览器

:return:

"""

self.driver.quit()

def test_baidu_search(self):

"""

这里一定要test开头,

把测试逻辑代码封装到一个test开头的方法里

:return:

"""

homepage = HomePage(self.driver)

homepage.type_search('selenium')# 调用页面对象中的方法

homepage.send_submit_btn() #调用页面对象类中的点击搜索按钮方法

time.sleep(2)

homepage.get_window_img() # 调用基类截图方法

try:

assert 'selenium' in homepage.get_pape_title()

# 调用页面对象继承基类中的获取页面标题方法

print('Test Pass.')

except Exception as e:

print('Test Fail.',format(e))

def test_search2(self):

homepage = HomePage(self.driver)

homepage.type_search('python') # 调用页面对象中的方法

homepage.send_submit_btn() # 调用页面对象类中的点击搜索按钮方法

time.sleep(2)

homepage.get_window_img() # 调用基类截图方法

if __name__ == '__main__':

unittest.main()

总结:项目中基本采用这种方法来执行同一个功能不同测试用例的编写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值