UI自动化—如何使用csv+ddt做数据驱动测试

针对用户注册,使用ddt做数据驱动测试:
测试数据文件register_test1.csv内容:
在这里插入图片描述
封装的文件读取模块:

# 1、导入代码库
import csv
import os
def reader(filename):
    # 2、指定csv文件所在的路径
    base_path=os.path.dirname(__file__)   #代表当前文件所在路径
    path=base_path.replace("fun","test_data/"+filename)   #置换成csv文件所在路径
    # 3、打开这个csv文件
    list = []
    with open(path) as file:
        # 4、读取csv文件中的内容
        table = csv.reader(file)
        # 5、返回文件中的内容
        i=0
        for row in table:
            if i==0:
                pass
            else:
                list.append(row)
            i+=1
        return list

测试模块:

import ddt
import unittest2
from fun.csvFileManager2 import reader
from test_case.BaseTestCase import BaseTestCase
@ddt.ddt
class register3_test(BaseTestCase):
    table=reader("register_test1.csv")
    @ddt.data(*table)
    def test_register(self,row):
        self.driver.get("http://192.168.0.181/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])
        self.driver.find_element_by_class_name("reg_btn").click()
if __name__ == '__main__':
    unittest2.main()

@ddt,表示当前类是一个数据驱动测试的类。在方法上面加装饰器@ddt.data(*table),用来指定测试数据源,要求数据源的格式是多个参数。这么做的效果是把一整个表的多组数据分离开来,每组数据形成一个单独的测试用例,各个用例的执行互不影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值