文章架构
1.什么是关键字驱动
2.什么是数据驱动
3.数据驱动和关键字驱动的关系
4.数据驱动和关键字驱动结合进行测试的实施流程
5.案例
1.什么是关键字驱动?
关键字驱动是自动化测试框架设计的核心内容,可以解决代码冗余、可读性、维护性、代码复用性等问题。
比如,对于使用Selenium的测试框架来说相当于Selenium的二次封装。把代码封装到函数中,通过调用函数来完成指定功能,解决了代码的复用性等问题。
2.什么是数据驱动?
将代码与数据进行分离,单独由数据组成文件,再由文件来驱动关键字,最终实现整个自动化的流程。
3.数据驱动和关键字驱动的关系?
数据驱动基于关键字驱动之上。
一般是结合关键字驱动和数据驱动来设计测试框架。
4.数据驱动和关键字驱动结合进行测试的实施流程?
首先读取到数据,将基于固定格式的数据进行拼接,拼接后的内容作为关键字所需要的参数,进行传入。从而执行对应的关键字,最后将关键字执行得到的结果与预期的结果进行对比,获得单条测试用例执行是否通过的结果。
关键字驱动+UnitTest实现自动化测试
UnitTest结合DDT实现关键字驱动
环境搭建:
UnitTest(通过直接导入UnitTest包即可实现):Import unittest
主要作用在于管理测试用例和实现数据驱动。(Java中是TestNG)
class TestForkey(unittest.TestCase): #这样就生成了一个Unittest框架
框架分为三部分:
前置条件、后置条件、测试用例
quit与close的区别:
quit是关闭游览器,并且关闭ChromeDriver进程。
Close是关闭当前的标签页,不会关闭进程。
ddt数据驱动
使用方法:在类的前面加上@ddt装置器,表示这个类会使用到ddt。然后在方法前用@data([数据11,数据12],[数据21,数据22],,,,)传参数。这里用的是list集合的方式传递。
还要加@unpack:将传过来的list集合进行二次分解,送给对应的参数。
*表示基于元组的形式进行处理。
**表示字典,基于键值对的形式去获取。
一种比较通用的测试框架的模式。
自动化测试框架的设计理念和设计思路:
自动化测试框架在设计上面完全可以基于关键字驱动结合数据驱动的形式去设计。
我将所有Selenium功能块进行二次封装,将主要常用的内容封装起来形成一个类对象,将这个类对象作为一个工具提供的类然后结合unitest或者pytest来进行一个测试用例的整合,用excel或ddt去做数据驱动的文件读写,通过文件读写的方式来实现关键字的调用,去实现到一系列的流程,再通过一个写入的操作将测试用例当中执行的内容,以断言的结果作为测试用例执行通过与否的一个执行标准,这就是一套完整的测试用例框架的设计。(关键字的封装和文件的读写)
版权归原作者 学cv的崽崽 所有, 如有侵权,请联系我们删除。