一、UnitTest模块是Python标准库中的模块,提供了很多类和方法处理测试工作。
l 测试用例-testase
l 测试固件-testfixture
l 测试套件-testsuit
l 测试运行器-testrunner
这四个东西的关系:测试用例-testcase是最底层的,测试用例可以组合成测试套件-testsuit,而测试固件-testfixture则是测试中固定的代码,是代码的固定部分,测试运行器-testrunner则是用例运行测试用例输出测试结果。
二、UnitTest模块是通过继承TestCase类进行构建单元测试用例,具体语法如下:
class 测试类名 (unittest.TestCase):
测试用例1
测试用例2
测试用例3
.............
那么问题来了,测试用例是通过什么来判断是否通过?
通过TestCase类断言进行判断测试是否通过,比如以下的断言
assertEqual(预期值,实际值)
assertNotEqual(预期值,实际值)
assertTrue(表达式)
assertFalse(表达式)
代码例子:
代码语言:javascript复制#!/usr/bin/env python
#coding=utf-8
import unittest
from selenium import webdriver
import time
class TestBaidu(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
url="http://www.baidu.com"
self.driver.get(url)
def test_baiduPage(self):
title=self.driver.title
self.assertLessEqual("百度一下,你就知道",title)
def test_search_selenium(self):
inputElement= self.driver.find_element_by_id("kw")
inputElement.clear()
inputElement.send_keys("selenium")
buttonElement=self.driver.find_element_by_id("su")
buttonElement.clear()
title=self.driver.title
self.assertEqual("selenium_百度搜索",title)
def tearDown(self):
self.firefoxBrower.quit()
def suit():
test_baidu=unittest.TestSuite()
test_baidu.addTest(test_baidu("test_baiduPage"))
test_baidu.addTest(test_baidu("test_search_selenium"))
return test_baidu
if __name__ =="main":
runner=unittest.TextTestRunner()
runner.run(suit)
PS:Python selenium 官方帮助文档地址:
https://selenium-python.readthedocs.io/getting-started.html
,没有