做过自动化测试的朋友经常听说过 数据驱动 (或者面试的时候被问到过)。
什么是数据驱动?
如果有一批测试用例,具有 相同的测试步骤 ,只是 测试参数数据不同 。
自动化测试时,把测试数据从用例代码中 分离 开来,以后增加新的测试用例,只需要修改数据。
这就是数据驱动,通俗点也叫参数化。

举个例子:
某系统 登录功能的测试,有一批测试用例,其执行的步骤几乎都是一样的,只是使用的测试参数不同。
比如:
不输入用户名,输入正确密码
输入比正确用户名后面少一个字符,输入正确密码
输入比正确用户名后面多一个字符,输入正确密码
输入比正确用户名前面少一个字符,输入正确密码
输入比正确用户名前面多一个字符,输入正确密码
输入正确用户名,不输入密码
输入正确用户名,输入比正确密码后面多一个字符
这种情况可以使用 hytest用例 的 数据驱动格式,只需如下定义即可
class c00001:
# ddt_cases 里面每个字典元素 定义一个用例的数据 # 其中: name是该用例的名称, para是用例的参数 ddt_cases = [
{
'name' : '登录 - 00001',
'para' : ['user001','888888']
},
{
'name' : '登录 - 00002',
'para' : ['user0012','888888']
},
{
'name' : '登录 - 00003',
'para' : ['ser001','888888']
}
]
# 调用时, # hytest 框架执行时,会自动创建出3份用例实例 # 并且在调用 teststeps时,把每个用例的参数设置在 self.para 中 # 用例代码 可以直接从 self.para 中获取参数
defteststeps(self):
username, password = self.para # 取出参数
这样,我们就不需要定义那么多的测试用例类了, 而且测试数据也可以集中存放。
项目python文件格式
class DD0002:
name= '测试用例 DD0002'
def setup(self):
open_browser()
wd= GSTORE['wd']
mgr_login()
def teardown(self):
INFO('清除初始化')
def teststeps(self):
STEP(1, '添加警情')
wd= GSTORE['wd']

网友评论