数据驱动测试ddt

引言:本文首先对比当执行脚本时采用for循环和采用ddt数据驱动的不同,然后讲解一下如何使用ddt。

目录

For循环读取数据

DDT数据驱动方式


For循环读取数据

代码示例:

import unittest2
from selenium.webdriver.common.by import By
from func.csvFileManager2 import reader
from test_case.BaseTestCase import BaseTestCase


class Register2Test(BaseTestCase):
    def test_register(self):
        table = reader("register_test_cases.csv")
        for row in table:
            self.driver.get("http://localhost/index.php?m=user&c=public&a=reg")
            self.driver.find_element(By.NAME, "username").send_keys(row[0])
            self.driver.find_element(By.NAME, "password").send_keys(row[1])
            self.driver.find_element(By.NAME, "userpassword2").send_keys(row[2])
            self.driver.find_element(By.NAME, "mobile_phone").send_keys(row[3])
            self.driver.find_element(By.NAME, "email").send_keys(row[4])
            

缺点:用for循环的方式,当其中任何一条测试用例执行失败,后续的测试数据将不被执行。


DDT数据驱动方式

基本流程:

  1. 导入代码库ddt
  2. 调用读取csv文件的方法
  3. 在类的上面加装饰器@ddt.ddt 表示当前类是一个数据驱动测试的类
  4. 在方法上面加装饰器@ddt.data() 用来指定测试数据源,要求数据源的格式是多个参数

代码如下:

import ddt
import unittest2
from selenium.webdriver.common.by import By
from func.csvFileManager2 import reader
from test_case.BaseTestCase import BaseTestCase

@ddt.ddt
class Register3Test(BaseTestCase):
    table = reader("register_test_cases.csv")

    @ddt.data(*table)
    def test_register(self, row):
        self.driver.get("http://localhost/index.php?m=user&c=public&a=reg")
        self.driver.find_element(By.NAME, "username").send_keys(row[0])
        self.driver.find_element(By.NAME, "password").send_keys(row[1])
        self.driver.find_element(By.NAME, "userpassword2").send_keys(row[2])
        self.driver.find_element(By.NAME, "mobile_phone").send_keys(row[3])
        self.driver.find_element(By.NAME, "email").send_keys(row[4])


if __name__ == '__main__':
    unittest2.main()

注意点:

  1.  因为table是一个列表所以在前面加上*号。
  2. 列表前面加星号的作用:举例 list=[1,2,3,4]
    1. print(list) --> [1,2,3,4]
    2. print(*list) --> 1,2,3,4
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BetterFate!

爱你哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值