20万的慢慢会实现的吧,hhh
unittest框架,我就不在介绍了,百度有很详细的介绍。
我们只要了解:
1、unittest是单元测试框架
2、它提供用例组织与执行:在实际工作中案例可能有上百条,我们就需要进行用例的组织以及规范,增强代码的可维护性等
3、它提供丰富的比较方法:相等\不相等,包含\不包含,True\False的断言方法等等
4、提供丰富的日志:例如,总执行时间、失败用例数、成功用例数等
这就是别人造好的车,我们直接开。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
unittest组成部分:
TestCase:测试用例,测试用例里面会有很多测试方法,是单元测试中最小维度的测试行为
Test Fixure:测试固件,测试固件是执行测试时的准备工作和收尾工作(打开和关闭浏览器,链接和关闭数据库等等)
TestSuite:测试套件,是测试用例的集合
TestRunner:测试运行器,运行测试用例
TestReport:将测试结果呈现给用户,生成测试报告
接下来我们一点一点的学习,上面是大概整体的了
TestCase类中定义的方法: setUp(): ------> 该方法:进行测试前的初始化工作 tearDown(): ------> 该方法:进行执行测试后的清除工作(比如关闭浏览器)
我们看下代码:
1 import unittest #导入unittest框架
2
3 class register(unittest.TestCase): #定义一个register类,并且继承unittest中的TestCase类
4
5 def setUp(self): #TestCase类中定义的方法,setUp()进行测试前的初始化工作,所以它总是第一个执行
6 print('我已经做好了准备工作')
7
8 def tearDown(self): #TestCase类中定义的方法,tearDown()进行执行测试后的清除工作,所以它总是案例执行后最后执行
9 print('已处理')
10
11 def test_001(self): #第一个测试案例
12 print('案例_001')
13
14 def test_002(self): #第二个测试案例
15 print('案例_002')
16
17 if __name__ == '__main__':
18 unittest.main(verbosity=2) ##单元测试运行需要unittest.main(),作用是将一个单元测试模块变成可以直接运行的测试脚本
verbosity是有三个值,每个值表示的测试结果信息不一样。0 (静默模式): 你只能获得总的测试用例数和总的结果 比如 总共100个 失败20 成功801 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “F”2 (详细模式):测试结果会显示每个测试用例的所有相关的信息
我们看下运行后的setup 和 tearDown两个方法的执行顺序:

我相信你已经理解我的笔记意思,接下来我们继续:
1 import unittest #导入unittest
2 import time as t #导入time 设置别名 t
3 from selenium import webdriver #导入selenium中的webdriver
4
5 class page_baidu(unittest.TestCase): #定义一个类,并继承unittest.TestCase类
6
7 @classmethod #使用 @classmethod 装饰器函数,把方法变成类方法,可以直接调用方法,不需要实例化类对象就可以调用方法
8 def setUpClass(cls): #c初始化
9 cls.driver = webdriver.Chrome() #实例化webdriver()对象
10 cls.driver.maximize_window() #打开浏览器最大化
11 cls.driver.implicitly_wait(15) #隐性等待时间设置15秒,比如页面加载打不开,我们最多等待15秒,适用于全局
12 cls.driver.get(r'http://www.baidu.com') #打开百度地址
13 t.sleep(2) #设置强制等待2秒,就是必须等待,用导入的time中的sleep方法,不是全局性,哪里需要设置到哪里,局部的
14 @classmethod
15 def tearDownClass(cls): #最后执行的工作
16 cls.driver.quit() #设置关闭浏览器
17
18 def test_baidu_news(self): #案例一
19 self.driver.find_element_by_link_text('新闻').click() #点击百度页面,超链接【新闻】两个字
20 t.sleep(2) #设置强制等待2秒,就是必须等待,用导入的time中的sleep方法,不是全局性,哪里需要设置到哪里,局部的
21
22 if __name__ =='__main__':
23 unittest.main(verbosity=2) #单元测试运行需要unittest.main(),作用是将一个单元测试模块变成可以直接运行的测试脚本

明天继续,主要看unittest相关的setUp和tearDown 一定注意区分大小写!!!!!
明天继续