课程回顾:
关键字驱动+数据驱动的测试框架作业讲解。
作业:基于命令行来运行测试框架,实现自动化测试
在实际运行时出现有包找不到的异常。
当需要通过命令行来运行工程,实现执行,就必须要将执行文件放在根路径下
问题:如果要多次不同数据对一一个流程进行测试,那每一次都需要写一套完整的测试用例
测试用例的管理一般基于UnitTest/PyTest来进行管理, 会更为的高效简洁
UnitTest:
是目前应用占据大半壁江山的一套测试框架,最初是用于单元测试,随着自动化测试发展,到现在成为自动化测试技术的主流应用,尤其是接口自动化。
因为UnitTest中封装有非常多的内容,且可以和其他模块进行完美cp组合,所以在用例管理上和代码管理上会有更加大的便利四大特色:
1.测试用例管理
2.测试套件和运行器,能够更有效地针对业务来进行用例管理,包括测试报告的集成
3. Setup和Teardown,前置与后置条件
4.断言机制,你只需要通过self即可直接调用
环境部署:
1. UnitTest是一个测试用例框架
2. python安装时默认会有一个builtin模块, UnitTest框架是默认集成在python中的。意味着只要安装了python就有UnitTest
3.只需要通过import unittest即可实现调用
UnitTest测试框架应用:
1.类名继承unittest. TestCase
2.测试用例:所有的测试用例,都是以函数的形式存在,函数的名称必须以test开头
3.用例加载顺序:UnitTest中有默认的用例加载顺序:0-9,A-Z,a-z
4.所有的前置后置条件都有等级存在:class级别,method级别:所有的前置与后置函数有且只有一次
5.cls对象只在class级别前后置中进行定义,而调用则还是通过self进行调用
6.修改cls对象的值,在全局生效,需要通过类名.对象进行赋值操作才可以生效,而通过self.对象进行赋值只能够在当下函数中生效
Method级别前置后置:每一条用例执行前都会执行前置,运行后都会执行后置
Class级别前置后置:setUpClass和tearDownClass,比如说所有的配置
1.必须定义装饰器@classmethod
2.前置是在所有内容运行前运行一次,后置是所有内容运行结束后运行一次
#导入UnitTest模块
import unittest
#如何真正意义上应用UnitTest框架:必须在类名继承unittest. TestCase
class UnitDemo (unittest . TestCase):
#前置条件
#后置条件
#测试用例:所有的测试用例,都是以函数的形式存在,函数的名称必须以test开头def test. Login(self):
print('这是测试用例1' )
def test deLete(self):
print('这是测试用例ss')
#要运行测试用例
if __name__ = =' __ main__ ' :
# UnitTest执行测试用例的行为
unittest . main( )
@classmethod
def setUpClass(cls) -> None:
cls. driver = webdriver . Chrome() I
cls. driver . get( 'http:/ /www. baidu. com')
# classmethod
def tearDownClass(cls)-> None:
cls . driver. quit()