unittest是python自带的一个单元测试框架,也是python里面最基本的单元测试框架.存放在Python安装目录下的lib目录下,项目中使用unittest框架来为我们组织测试用例
unittest核心的四个概念:
test case 测试用例
test fixture 测试夹具
test runner 测试执行
test suite 测试套件
selenium IDE
是selenium的一个集成开发环境,作为chrome和firefox的扩展实现,可以用来进行selenium脚本的开发,录制,调试等工作.
安装步骤
打开火狐浏览器,选择扩展插件
输入selenium
点击页面上出现的 selenium IDE 添加到火狐浏览器扩展内
unittest的书写规则
1.测试文件必须以 test 开头 如:test_01_unittest入门脚本.py
2.测试类必须继承 unittest.TestCase 类
3.测试类必须以 Test 开头 如:class TestLogin(unittest.TestCase)
4.测试方法,最好以 test 开头 如:def test_01_login(self)
5.在测试的py文件里面去执行代码 unittest.main()
6.在测试类里面 可以有普通方法,但是普通的方法需要被测试方法调用
直接上代码
1.测试夹具分为方法级别、类级别
方法级别:
setup()
#在每一个测试方法执行之前执行 setup 的代码
teardown()
#在每一个测试方法执行之后执行 teardown 的代码
类级别:
setupclass()
#在每一个测试类执行之前执行的方法 需要使用@classmethod装饰
teardownClass()
#在每一个测试类执行之后执行的方法需要使用aclassmethod装饰
2.用例执行顺序
在unittest里面,用例的执行顺序默认是按照 ASCII 码的顺序
自定义测试用例的执行顺序:给每一条用例加上执行的序号
3.断言
概念:
判断预期结果和实际结果是否符合
self.assertEqual(a,b,msg='错误描述') #判断 a==b成立则测试用例通过
self.assertTrue(x,msg='错误描述') #判断 表达式x 是否为true,为true通过测试
self.assertIn(a,b,msg='错误描述') #判断 a in b成立则测试通过
4.跳过测试
概念
1.当我们写的部分用例,在某些情况下不需要执行的时候可以跳过
2.当系统更新之后,部分的测试用例失效,但是不确定后面是否还会再改回来,就直接跳过
#装饰器实现的跳过测试用例
@unittest.skip(原因) #没有条件,直接跳过
@unittest.skipIf(表达式,原因) #表达式为真跳过测试
@unittest.skipUnless(表达式,原因) #表达式为假跳过测试
5.数据驱动
概念:
有的用例只是参数不一样,其他代码完全一样,就可以通过改变测试
参数来实现一条用例方法执行多种不同的测试场景.在unittest里面需
要使用 ddt 来提供参数化的功能
pip install ddt 安装
#ddt可以参数化读取列表嵌套列表或者列表嵌套字典的数据
#列表嵌套列表读取:
先在类前面加上:@ddt.ddt
在方法前面加上:@ddt.data(*列表嵌套列表) @ddt.unpack
#列表嵌套字典读取:
先在类前面加上:addt.ddt
在方法前面加上:@ddt.data(*列表嵌套列表)
在方法里面使用一个形式参数来接收