- 单元测试
#coding=utf-8
import unittest
def add(a,b):
c=a+2*b
return c
if __name__=="__main__":
print(add(2,3))
- 测试框架
注意:1.用例之间不要存在依赖关系,每个用例都能单独运行
2.用例不要互相调用,需要调用的公共方法可以写成方法去调用
#coding=utf-8
from selenium import webdriver
import unittest
import time
'''注意:
1.测试类,继承单元测试TestCase这个类
2.(非必须)setUp(),无操作直接写pass
3. .(非必须) tearDown(),无操作直接写pass
4.测试用例必须以test开头
5.用例执行顺序是按ascii码顺序
'''
#创建一个测试用例类
class baidu(unittest.TestCase):
#前置条件
def setUp(self):
#打开火狐浏览器
self.driver=webdriver.Firefox()
#打开百度网页
self.driver.get("https://www.baidu.com")
#第1条用例
def test_001(self):
#点击输入框
self.driver.find_element_by_name("wd").click()
#第2条用例
def test_002(self):
#在输入框输入123
self.driver.find_element_by_name("wd").send_keys("123")
#后置条件
def tearDown(self):
time.sleep(20)
#退出浏览器
self.driver.quit()
if __name__=="__main__":
unittest.main()
- 装饰器@classmethod
#coding=utf-8
import unittest
import time
#setUpClass只打开一次浏览器,必须要加@classmethod修饰
class Test1(unittest.TestCase):
'''测试类,是多个测试用例的集合,可以把一些相同的操作写成一个类'''
@classmethod
def setUpClass(cls):
print(123)
def test_01(cls):
print(11111111)
@classmethod
def tearDownClass(cls):
print(456)
if __name__=="__main__":
unittest.main
- 断言assert
assert是用来检查一个条件,如果它为真,就不做任何事。
如果它为假,则会抛出AssertError并且包含错误信息
def test_01(cls):
a=1
b=1
#1.返回值是否相等
print(cls.assertEqual(a,b))#判断a==b
print(cls.assertNotEqual(a, b) )#判断a!=b
#2.返回值是布尔值
print(cls.assertTrue(a==b))#判断布尔值a==b
print(cls.assertFalse(a==b) )#判断布尔值a!=b
#3.返回值是否为空
print(cls.assertIsNone(None))#判断是否为空
print(cls.assertIsNotNone("1") )#判断是否不为空
#返回值是否包含某值
print(cls.assertIn(a,b))#判断a在b里面
print(cls.assertNotIn(a, b))#判断a不在b里面