# 把bbs论坛 自动化的代码进行封装# from selenium import webdriver# from time import sleep# class Bbs:# def __init__(self): #创建一个构造函数# self.driver =webdriver.Chrome()# self.driver.get('http://192.168.202.145/bbs/forum.php')# self.driver.maximize_window()# self.driver.implicitly_wait(10)## def login(self): #定义一个实例方法# self.driver.find_element_by_id('ls_username').send_keys('admin')# self.driver.find_element_by_id('ls_password').send_keys('654321')# self.driver.find_element_by_css_selector('.pn').click()## def mange_center(self): #封装一个管理中心# self.driver.find_element_by_link_text('管理中心').click()# if __name__ == '__main__':# b = Bbs() #创建对象 b 来引用类,及调用实例方法# b.login()# unittest框架介绍# import unittest## class Test(unittest.TestCase):## @classmethod# def setUpClass(cls) -> None:# print('类开始')## @classmethod# def tearDownClass(cls) -> None:# print('类结束')## def setUp(self) -> None:# print('方法开始')## def tearDown(self) -> None:# print('方法结束')## def test_002(self):# print(222)## def test_001(self):# print(111)## def test_a(self):# print(333)## def testA(self):# print(444)## def care(self):# print(555)## if __name__ == '__main__':# unittest.main() #运行unittest单元测试框架里面的所有代码,函数的入口# 1、在unittest框架里面写的用例名称必须以 test 开头# 2、用例运行顺序执行ASCII码 0-9,A-Z,a-z# 3、方法开始和方法结束在每个用例运行之前和结束都会运行一次# 4、类开始和类结束在所有用例运行前和后 只运行一次# 自动化测试用例运行方法,及测试报告输出# 第一种import unittestfrom selenium import webdriverfrom time import sleepfrom lesson1.HTMLTestRunner3_New import HTMLTestRunnerclass Test_baidu(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get('https://www.baidu.com') self.driver.maximize_window() self.driver.implicitly_wait(10) def tearDown(self): sleep(3) self.driver.quit() def test001(self): self.driver.find_element_by_id('kw').send_keys('selenium') def test002(self): self.driver.find_element_by_id('kw').send_keys('python')# def all_case(): '''封装一个套件,套件就是用来装用例的,想当于是一个容器''' # suite = unittest.TestSuite() #创建一个suite对象,用来添加需要运行的用例 # suite.addTest(Test_baidu('test001')) #把test001这条用例添加到套件里 # suite.addTest(Test_baidu('test002')) # suite.addTests([Test_baidu('test001'),Test_baidu('test002')]) # return suiteif __name__ == '__main__': '''第一种方法,运行了上面封装的所有用例''' # unittest.main() '''第二种方法(运行了套件里面添加的部分用例)''' # runner = unittest.TextTestRunner() #穿件一个对象来运行用例方法 # runner.run(all_case()) #运行上面定义的套件里面的用例# 第三种方法:通过模糊匹配用例运行 start_dir = r'D:\project\dcs8\lesson1' #模糊匹配lesson1这个目录下面需要运行的用例 discover = unittest.defaultTestLoader.discover(start_dir=start_dir,pattern='ui_*.py') # print(discover) # 打印出来显示运行到的那些用例 filename = r'D:\project\dcs8\lesson1' + '\\' +'_ui_report.html' # print(filename) #打印出来文件的绝对路径 'D:\project\dcs8\lesson1\_ui_report.html f = open(filename,'wb') #wb是用二进制的方法去写入到filename这个文件里 runner = HTMLTestRunner(stream=f, title='UI自动化报告', description='用例执行如下', tester='毛家林') # 生成测试报告的固定写法 runner.run(discover) #运行模糊匹配出来的用例 f.close() #关闭文件对象
|
|