建设局网站首页,58同城最新招聘,秦皇岛做网站汉狮网络,企业网站建设的核心是设计模式的重要原则就是#xff1a;高内聚、低耦合#xff1b;通常程序结构中各模块的内聚程度越高#xff0c;模块间的耦合程度就越低。
数据驱动测试#xff1a;Data Driven Testing#xff0c;简称DDT#xff1b;
数据驱动指的是从数据文件#xff08;如数据库、Ex…设计模式的重要原则就是高内聚、低耦合通常程序结构中各模块的内聚程度越高模块间的耦合程度就越低。
数据驱动测试Data Driven Testing简称DDT
数据驱动指的是从数据文件如数据库、Excel文件、Csv文件等中读取输入数据并将数据以参数的形式输入脚本测试这些变量被用作传递(输入/输出)用来验证应用程序的测试数据。不同的测试用例使用不同类型的数据文件。数据驱动模式实现了数据和脚本分离相对于录制与回放测试技术数据驱动测试极大地提高了脚本利用率和可维护性但是对于界面变化较大的情景不适合数据驱动测试。
数据驱动的设计步骤
编写测试脚本脚本需要支持程序对象、文件或数据库读入测试数据
将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中
运行脚本循环调用存储在外部介质的测试数据。
验证所有的测试结果是否符合期望结果
如pytest 测试框架快速搭建 的 搜索接口测试实例就是数据驱动设计模式。
数据驱动测试的多行测试数据对应一个测试脚本或者说对应于一个关键字的实现例如登录功能的测试可以有用户名长度、密码长度、密码字符类型、大小写等多条测试用例但是都是对应登录一个关键字然后用不同的测试数据反复运行脚本即每一行数据的处理逻辑是一样的。如果需要做不同类型的测试需要新增测试脚本往往意味着新的测试数据格式或者沿用同一个测试脚本但是要做逻辑判断来确定执行哪一种测试。
核心就是让测试与数据分离。
关键字驱动测试Keyword Driven Testing简称KDT
关键字驱动的自动化测试(也被称为表驱动测试或基于动作词的测试)是数据驱动自动化测试的变种关键字驱动的自动化测试框架建立在数据驱动手段之上表中包含指令(关键词)而不只是数据。这些测试被开发成使用关键字的数据表它们独立于执行测试的自动化工具。关键字驱动的自动化测试是对数据驱动的自动化测试的有效改进和补充关键字驱动将数据域与脚本分离、界面元素与内部对象分离测试过程与实现细节分离。关键字驱动的测试逻辑为按照关键字进行分解得到数据文件常用的关键字主要包括三类被操作对象Item、操作Operation和值value用面向对象形式可将其表现为Item.Operation(Value)将测试逻辑按照这些关键字进行分解形成数据文件。测试框架低层负责解释这些关键字并完成相应的指令操作。
将测试用例的步骤(元素)和用例分离。关键字驱动表示把项目中的一些逻辑封装成关键字(一个函数名)。例如login、 register、点击、打开浏览器、等待、输入进行设置变量, 调用不同的关键字组合实现不同的业务逻辑从而驱动测试用例的执行。
关键字驱动的框架基本工作是将测试用例分成4个不同的部分测试步骤、测试对象、测试对象执行的动作、测试数据。
示例
testCasetestName#正确地注册用户pretcstep:open http://localhost:8080/registerclick idreginput idusername valuezhangsaninput idpassword valueabcdefginput idcheckpass valueabcdefgclick classregbuttonexpected: #预期结果code 200message 注册成功
KDT
关键字Item.Operation(Value)
Operationinput、click、drag、move等
Item元素的标签、元素的定位方式
value数据
本质是面向对象编程思维的一种体现其实就是将代码基于业务的实际使用场景通过合理的封装然后基于封装好的函数通过调用这些函数驱动业务的执行。没有固定形式
页面对象模式Page Object Model简称POM
selenium在测试一个web页面时通常是针对一个个页面进行测试的基于此前提我们可以把一个页面中的对象和操作进行封装这就是POM不难理解POM本质就是将页面对象和操作进行封装作为一个对象库而存在这样在测试脚本中直接调用方法来进行相关操作并传递相应的参数即可。
核心就是让操作与元素分离。
单例模式大力魔兽指在程序的生命周期中只做一次实例化只分配一块内存空间以确保所有操作和调用在同一块内存空间发生。例如selenium的webdriver每实例化一次都会打开一个新的浏览器如果要对多个模块进行测试不可能把所有的测试脚本放到同一个类中因此需要使用单例模式。
单例模式代码示例
from selenium import webdriverclass utility:driver None #定义类级变量#单例模式确保只有一个实例在运行#classmethoddef get_webdriver(cls,borwserchrome):#如果没有被实例化则实例化否则直接返回传参数做浏览器兼容if cls.driver is None:if browserchromecls.driver webdriver.chrome()return cls.driver
基于组件的测试Component Based Testing简称CBT
业务流程测试Business Process Testing简称BPT
同时在这我为大家准备了一份软件测试视频教程含面试、接口、自动化、性能测试等就在下方需要的可以直接去观看。 【2025最新版】字节大牛讲的最全最细的自动化测试全套教程永久白嫖拿走不谢全程干货无废话逼自己15天内学完从软件测试基础到项目实战一套全通关