自动化测试:数据驱动和POM

Posted 软件测试小dao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试:数据驱动和POM相关的知识,希望对你有一定的参考价值。

本章节主要内容

数据驱动(ddt)

页面对象模型POM

数据驱动

数据驱动:从数据文件读取输入数据,而后将测试数据传入测试脚本,不同的数据对应不同的测试用例,达到数据和脚本分离的效果。

▲ 优点:

数据与测试脚本分离,从而可以在不修改测试脚本的情况下通过更新测试数据完成对测试用例的增加、更改和删除;
通过变量的参数化,将测试数据传入测试脚本,不同的数据文件对应不同的测试用例;
提高了测试脚本的灵活性,增加测试覆盖面,以及提高应对测试对象变更的能力;

数据驱动-ddt

  1. ddt装饰器装饰测试类;

  2. data、file_data,、uppack装饰器装饰测试方法

  3. 测试数据通过data或file_data装饰器传输给测试方法

  4. 运行时需要运行整个测试类

▲ 示例:

@ddt
class Test112(unittest.TestCase):
data0=[(1,1),(3,4),(5,6)]
@data(*data0)
@unpack
def test11(self, data1,data2):
self.assertEquals(data1,data2)
左右拉动查看完整代码

POM页面对象模型

Page Object设计模式是一种面向对象的设计模式,将测试对象及单个的测试步骤封装在每个page类中,以页面为单位进行管理。

页面对象与用例分离,使得我们更好的复用对象;
可复用的页面方法代码会变得更加优化;
业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰
更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素

页面基类:封装页面类公共的方法和属性;
页面类:继承页面基类,并管理当前页面的元素及操作;
测试类:继承TestCase类,实现测试用例的组织;

▲ 示例:

BasePage:百度网站各页面通用的操作等;
SearchPage:管理搜索页面的元素和操作;
TestSearchPage:对搜索页面进行测试;

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

以上是关于自动化测试:数据驱动和POM的主要内容,如果未能解决你的问题,请参考以下文章

走进Java接口测试之测试框架TestNG数据驱动(入门篇)

Python3+Selenium2完整的自动化测试实现之旅:自动化测试框架Python面向对象以及POM设计模型简介

自动化设计之POM初识

自动化设计之POM初识

Java接口自动化测试 — 使用Excel做数据驱动

Web 自动化测试全面提升之 Pytest