Python3+Selenium3自动化测试框架——③po模型设计_u011282197的博客-CSDN博客通过设计po模型,对页面定位和页面操作进行分离封装,实现多用例的测试。总体结构:case(用例)→business(业务层)→handle(操作层)→page(页面层)→base(公用)
https://blog.csdn.net/u011282197/article/details/122852471
用unittest框架结合之前的PO模型
一、使用操作
①case的方法名最前面需要有“test”
②setUp方法和tearDown方法分别是case执行的前置条件和后置条件
③setUpClass方法和tearDownClass方法分别是所有case执行前后的前置条件和后置条件
# coding = utf-8
import unittest
class FirstCase01(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("所有case执行之前的前置")
@classmethod
def tearDownClass(cls):
print("所有case执行之后的后置")
def setUp(self):
print("这个是case的前置条件")
def tearDown(self):
print("这个是case的后置条件")
def testfirst01(self):
print("这是第一个case")
def fitst02(self):
print("这是第二个case")
if __name__ == '__main__':
unittest.main()
执行结果:
所有case执行之前的前置
这个是case的前置条件
这是第一个case
这个是case的后置条件
所有case执行之后的后置
④使用TestSuite,用容器管理case执行
if __name__ == '__main__':
# unittest.main()
suite=unittest.TestSuite()
suite.addTest(FirstCase01('testfirst01'))
unittest.TextTestRunner().run(suite)
⑤case运行的默认顺序是按照test后的名称(数字0-9>大小写>字母顺序a-z)
容器管理case会按照addTest的添加顺序运行
⑥使用@unittest.skip()跳过case,可以添加判断条件
⑦同时运行多个py文件的case
# coding=utf-8
import unittest
import os
class RunCase(unittest.TestCase):
def test_case01(self):
case_path = os.path.join(os.getcwd(), 'case') # 当前项目路径下的case文件夹
suite = unittest.defaultTestLoader.discover(case_path, 'unittest_*.py') # 文件路径以及各个py文件的命名格式
unittest.TextTestRunner().run(suite)
if __name__ == '__main__':
unittest.main()
⑧使用assert判断用例是否成功
⑨使用HTMLTestRunner
下载地址: