python关键字数据驱动_【08篇】python+selenium实现Web自动化:数据驱动框架,ddt,关键字驱动框架...

本文介绍了Python+Selenium实现Web自动化测试中的数据驱动和关键字驱动框架。通过DDT库实现数据驱动,简化了测试用例的编写和管理,强调了unittest与DDT结合的优势。同时,探讨了关键字驱动模型,展示了如何构建关键词类和关键词模型测试用例,以及如何读取Excel数据。文章最后提到了行为驱动测试,但未详细展开。
摘要由CSDN通过智能技术生成

一、前言

最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新!

这是python+selenium实现Web自动化第八篇博文

二、Selenium之-数据驱动框架

那么问题来了,什么是数据驱动呢?就是,数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变,也就是参数的应用化。

这里对于数据驱动测试,总结起来就是,数据驱动绝非读取文件(excel、csv、xml)中数据进行参数的赋值测试,因为采用的这种方式的测试,工作重心反而变成了如何读写文件,而对于自动化测试中关心的执行结果统计、断言结果反而不是那么容易去实现。尤其是测试页面结构发生大的调整时,文件类的字段调整获取也要发生较大的修改,所以文件数据驱动测试也是可以的,但是并不是最优解。

那么什么才是最优的数据驱动测试呢?是的,用单元测试 unittest 结合 ddt 库。使用单元测试可以很方便的解决两个问题:(1)断言。利用单元测试的断言机制,我们可以方便的进行预期结果和实际结果的对比;

(2)数据统计。执行完测试用例后,一共执行了多少条用例,执行成功多少,失败多少,失败的用例错误在哪里?单元测试框架会帮我们统计展示。

1. DDT 入门

Python 的 unittest 没有自带数据驱动功能,如果使用 unittest, 同时又想使用数据驱动,就用 DDT 吧。奉上 ddt 官方文档 《DDT 官方文档》。DDT 的使用方法:

(1) ddt.ddt --- 装饰类,也就是继承自 TestCase 的类;

(2) ddt.data --- 装饰测试方法,参数是一系列的值。

(3) ddt.file_data --- 装饰测试方法,参数是文件名。文件可以是 json 或 yaml 类型,除.yaml结尾的文件,其他文件均会作为json文件处理。

(4) ddt.unpack --- 传递的是复杂的数据结构是使用。如:元组或列表。添加到 unpack 上之后,ddt 会自动把元组或者列表对应到多个参数上。

(5) 测试用例方法名生成规则 ---

#!/usr/bin/env python

# -*- encoding: utf-8 -*-

"""@Time : 2020/4/17@License : (C)Copyright 2017-2019, Micro-Circle@Desc : None"""

import unittest

import ddt

@ddt.ddt

class DDTExample(unittest.TestCase):

@classmethod

def setUpClass(cls) -> None:

print(cls.__name__)

@classmethod

def tearDownClass(cls) -> None:

print('...end...')

@ddt.data(

[1, 2],

[3, 4],

[5, 6]

)

@ddt.unpack

def test_add(self, a, b):

print(a + b)

if __name__ == "__main__":

unittest.main()

2. 实践应用

将 ddt 引入到自动化测试中。

#!/usr/bin/env python

# -*- encoding: utf-8 -*-

"""@Time : 2020/4/17@License : (C)Copyright 2017-2019, Micro-Circle@Desc : None"""

import ddt

from page_object_model.register_business impor

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值