unittest框架

本文介绍了使用Python进行单元测试的实践,通过unittest模块模拟浏览器操作,测试'百度搜索'对于不同关键词的响应。测试用例包括搜索'熊猫'、'狗'和'猪',展示了setUp和tearDown方法的设置及驱动器的管理。
摘要由CSDN通过智能技术生成
import unittest
import time
from selenium import webdriver
import os


class test_baidu1(unittest.TestCase):
    def setUp(self):
        # 获取驱动器路径
        current_path = os.path.dirname(__file__)  # 获取当前路径
        driver_path = os.path.join(current_path, '../../../driver/chromedriver.exe')  # 把当前路径+chromedriver路径相连

        self.driver = webdriver.Chrome(executable_path=driver_path)
        self.driver.get('https://www.baidu.com')
        self.driver.maximize_window()

    def tearDown(self):
        time.sleep(1)
        self.driver.quit()

    def test_cat(self):
        self.driver.find_element_by_name('wd').send_keys('熊猫')
        self.driver.find_element_by_id('su').click()
        time.sleep(1)
        self.assertEqual(self.driver.title, "熊猫_百度搜索")

    def test_dog(self):
        self.driver.find_element_by_name('wd').send_keys('狗')
        self.driver.find_element_by_id('su').click()
        time.sleep(1)
        self.assertEqual(self.driver.title, "狗_百度搜索")

    def test_pig(self):
        self.driver.find_element_by_name('wd').send_keys('猪')
        self.driver.find_element_by_id('su').click()
        time.sleep(1)
        self.assertEqual(self.driver.title, "猪_百度搜索")


def suite():
    suite = unittest.TestSuite()  # 创建套间对象
    suite.addTest(test_baidu1('test_cat'))  # 类名(方法名)
    suite.addTest(test_baidu1('test_dog'))  # 类名(方法名)
    suite.addTest(test_baidu1('test_pig'))  # 类名(方法名)
    return suite


if __name__ == '__main__':
    unittest.main(defaultTest='suite')    # 只会执行套件内的方法

import unittest
import time
from selenium import webdriver
import os


class test_baidu2(unittest.TestCase):
    def setUp(self):
        # 获取驱动器路径
        current_path = os.path.dirname(__file__)  # 获取当前路径
        driver_path = os.path.join(current_path, '../../../driver/chromedriver.exe')  # 把当前路径+chromedriver路径相连

        self.driver = webdriver.Chrome(executable_path=driver_path)
        self.driver.get('https://www.baidu.com')
        self.driver.maximize_window()

    def tearDown(self):
        time.sleep(1)
        self.driver.quit()

    def test_cat(self):
        self.driver.find_element_by_name('wd').send_keys('虫子')
        self.driver.find_element_by_id('su').click()
        time.sleep(1)
        self.assertEqual(self.driver.title, "虫子_百度搜索")

    def test_dog(self):
        self.driver.find_element_by_name('wd').send_keys('狗熊')
        self.driver.find_element_by_id('su').click()
        time.sleep(1)
        self.assertEqual(self.driver.title, "狗熊_百度搜索")

    def test_pig(self):
        self.driver.find_element_by_name('wd').send_keys('土家猪')
        self.driver.find_element_by_id('su').click()
        time.sleep(1)
        self.assertEqual(self.driver.title, "土家猪_百度搜索")


def suite():
    suite = unittest.TestSuite()  # 创建套间对象
    suite.addTest(test_baidu2('test_cat'))  # 类名(方法名)
    suite.addTest(test_baidu2('test_dog'))  # 类名(方法名)
    suite.addTest(test_baidu2('test_pig'))  # 类名(方法名)
    return suite


if __name__ == '__main__':
    unittest.main(defaultTest='suite')    # 只会执行套件内的方法

# 运行主入口,执行test_case 下所有模块
import os

# 获取目录下所有的文件名
current_path = os.path.dirname(__file__)  # 获取本地路径
case_path = os.path.join(current_path, 'unittest_case')  # 本地路径进入 unittest_case 文件
file_name = os.listdir(case_path)  # 查找unitest_case 下.py 的文件 ['dome01.py', 'dome02.py', '__init__.py']
print(file_name)
# 执行所有 .py结尾的文件
for file in file_name:  # 遍历 file_name 文件
    f = file.split('.')[-1]  # 切割  ['dome01', 'py']  ['dome02', 'py'] ['__init__', 'py']

    if f == 'py':
        os.system('python ' + case_path+'/'+file+'  1>>log.txt 2>&1')


import os, unittest, datetime
import HTMLTestRunner

current_path = os.path.dirname(__file__)   # 获取当前地址
case_path = os.path.join(current_path,'unittest_case')

# 读取目录下所有模块中测试方法【此方法必须用test开头的方法名】
discover = unittest.defaultTestLoader.discover(start_dir=case_path,
                                               pattern='dome*.py',
                                               top_level_dir=None)
# print(discover)

# 创建总套间
main_suite = unittest.TestSuite()
main_suite.addTests(discover)

# now = datetime.now()
# report_file = current_path + "/test_report/time_report_{}.html".format(now)
report_file = current_path+ "/test_report/report.html"
print(report_file)
report_ojb = open(report_file, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=report_ojb,
                                       title="百度搜索测试报告",
                                       description="用例执行情况")
# 执行整个测试套件
runner.run(main_suite)
# if __name__ == '__main__':
#   unittest.main(defaultTest='main_suite')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值