自动化测试之不同的数据驱动代码执行相同的测试场景应该怎么操作

本文介绍了如何通过Python的ddt模块实现数据驱动测试,包括数据驱动的步骤、环境准备、测试步骤、数据存储方式,如直接在脚本中、从json文件和xml文件读取数据,并分析了各种方式的优缺点。
摘要由CSDN通过智能技术生成

前言

网盗概念^-^相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离, 这样的测试脚本设计模式称为数据驱动。(网盗结束)当我们测试某个网站的登录功能时,我们往往会使用不同的用户名和密码来验证登录模块对系统的影响,那么如果我们每一条数据都编写一条测试用例,这无疑是增加了代码量,代码重复,且显得那么臃肿(谁不喜欢身材好的呢?你懂的),这时候我们可以使用不同数据驱动代码执行相同的用例测试不同的场景。

一、实施数据驱动步骤

我们再来说说实施数据驱动测试的步骤:

1.创建/准备测试数据

2.封装读取数据的方法,保留测试脚本调用的接口/属性(我们需要传递给脚本什么参数)

3.编写自动化测试脚本

4.脚本中调用封装好的处理数据文件的模块并引入测试数据

5.执行测试脚本并分析测试结果

二、数据驱动测试环境准备

1.安装python3.x开发环境(能看到此文章的应该都有这个环境,没有的自行百度吧)

2.安装数据驱动模块ddt

安装方式1:cmd下执行命令 pip install ddt

安装方式2:
https://pypi.org/simple/ddt/ 下载 并解压任意目录,cmd 运行命令python setup.py install

3.验证安装 pycharm 新建python文件并输入 import ddt 运行无报错信息既表示安装成功或者cmd 命令依次输入python回车 import ddt回车 无保存信息表示安装成功

4.unittest框架和ddt进行数据驱动

三、测试步骤

1.访问地址:https://mail.sohu.com/fe/#/login

2.输入用户名和密码

3.点击登录按钮

4.判断是否登录成功

四、数据存储

数据存在当前脚本中

数据准备

我们要实现的是用户登录的操作,所以用户名和密码是必须有的,期望结果可以有也可以没有。数据类型看源代码!

五、实例代码 

 1 from selenium import webdriver
 2 from ddt import ddt, data, unpack
 3 import unittest
 4 import time
 5 from selenium.common.exceptions import NoSuchWindowException
 6 '''
 7 简单数据驱动测试
 8 '''
 9 @ddt
10 class ddtTest(unittest.TestCase):
11     # 数据 可以是元祖, 列表, 字典(可迭代对象)
12     value = [['12691569846@sohu.com', 'xiacha11520','https://mail.sohu.com/fe/#/homepage'],
13              ['12691569844@sohu.com', 'xiacha11520','https://mail.sohu.com/fe/#/homepage']]
14     # value = [{'uname':'******@sohu.com', 'password':'xiacha11520','expected':'https://mail.sohu.com/fe/#/homepage'},
15     #          {'uname':'******@sohu.com', 'password':'xiacha11520','expected':'https://mail.sohu.com/fe/#/homepage'}]
16     def setUp(self):
17         self.testUrl = 'https://mail.sohu.com/fe/#/login'
18         self.driver = webdriver.Firefox()
19         self.driver.get(self.testUrl)
20 
21     @data(*value) # * 解析数据
22     @unpack# 用来解包, 将每组数据的第一个数据传递给uname依次类推, 当数据为字典时,形参需和字段的key值相同
23   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值