自动化测试教程(14)使用数据驱动

简介: 本小结讲到了数据驱动,我们使用数据驱动配合读取csv文件再测试的时候不用再手动输入内容,交给自动化完成就可以了,更大的节省了测试时间。(2)在测试类前添加一个装饰器,表示这个类采用ddt代码库的方式实现数据驱动(@ddt.ddt);3.代码编写思路:首先将测试数据单独存放,然后在编写脚本时调用存放的数据,逐条进行数据的读取。我们上节课我们了解了数据驱动的基本概念以及安装,我们这一节学习一下如何使用数据驱动。2.(1)在头部导入ddt代码库:import ddt;1.安装ddt并且导入ddt。

文章目录

1.任务目标

我们上节课我们了解了数据驱动的基本概念以及安装,我们这一节学习一下如何使用数据驱动。

2.使用数据驱动前提

1.安装ddt并且导入ddt。

2.(1)在头部导入ddt代码库:import ddt;

(2)在测试类前添加一个装饰器,表示这个类采用ddt代码库的方式实现数据驱动(@ddt.ddt);

(3)在测试方法前使用@ddt.data( )指定数据来源。

3.代码编写思路:首先将测试数据单独存放,然后在编写脚本时调用存放的数据,逐条进行数据的读取。

3.任务实操

文件目录如下

读取csv文件代码

import csv
def read():
    test = r"E:\test_day\test01_day\test_03\testdata.csv"
    date = open(test, 'r')
    tat = csv.reader(date)
    list = []
    i = 0
    for row in tat:
        if i != 0:
            list.append(row)
        i += 1
    return list
if __name__ == '__main__':
    da = read()
    for row in da:
        print(row)

数据驱动代码如下

from time import sleep
import ddt
import unittest
from selenium import webdriver
#引入读取csv文件包
from test02 import rend
# 装饰ddt
@ddt.ddt
#使用unittest框架
class Data_ddt(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.implicitly_wait(3)
    stem_info = rend()
    @ddt.data(*stem_info)
    def test_id(self, list):
        self.driver.get("http://test.pandabrother.cn/gpracticef/my/login.html")
        self.driver.find_element_by_xpath('//*[@id="input-name"]').send_keys("liufengning")
        self.driver.find_element_by_xpath('//*[@id="input-password"]').send_keys("123456")
        self.driver.find_element_by_xpath('/html/body/div/div/div[1]/section/form/div[3]/button').click()
        self.driver.find_element_by_xpath('//*[@id="sidebar-menu"]/div/ul/li/a').click()
        self.driver.find_element_by_xpath('//*[@id="sidebar-menu"]/div/ul/li/ul/li[2]/a').click()
        self.driver.find_element_by_id('input-name').send_keys(list[0])
        sleep(10)
        self.driver.find_element_by_xpath('/html/body/div[1]/div/div[3]/div/div[3]/div[2]/div/form/button[1]').click()
    def tearDown(self):
        self.driver.quit()
if __name__ == '__main__':
    unittest.main()

结果如下

4.小结

本小结讲到了数据驱动,我们使用数据驱动配合读取csv文件再测试的时候不用再手动输入内容,交给自动化完成就可以了,更大的节省了测试时间。

相关文章
|
1天前
|
存储 XML 测试技术
深入理解自动化测试中的数据驱动策略
【5月更文挑战第15天】在软件测试领域,自动化测试已成为提升效率和确保质量的关键手段。数据驱动测试(DDT)作为一种高效的自动化测试方法,其通过外部数据源来控制测试用例的执行流程,实现测试逻辑与测试数据的分离。本文旨在深入探讨数据驱动策略的核心原理、实施步骤以及面临的挑战,并通过案例分析展示如何在实际项目中应用数据驱动策略以提高测试覆盖率和灵活性。
|
1天前
|
监控 安全 网络协议
社会工程渗透测试教程(一)(4)
社会工程渗透测试教程(一)
10 1
|
1天前
|
存储 安全 物联网
社会工程渗透测试教程(一)(3)
社会工程渗透测试教程(一)
8 0
|
1天前
|
安全 JavaScript 物联网
社会工程渗透测试教程(一)(2)
社会工程渗透测试教程(一)
7 0
|
1天前
|
存储 安全 网络安全
社会工程渗透测试教程(一)(1)
社会工程渗透测试教程(一)
9 1
|
1天前
|
安全 Oracle 关系型数据库
社会工程渗透测试教程(四)(4)
社会工程渗透测试教程(四)
7 1
|
1天前
|
存储 安全 网络安全
社会工程渗透测试教程(四)(3)
社会工程渗透测试教程(四)
10 1
|
1天前
|
存储 安全 网络安全
社会工程渗透测试教程(四)(2)
社会工程渗透测试教程(四)
10 2
|
1天前
|
存储 自然语言处理 安全
社会工程渗透测试教程(四)(1)
社会工程渗透测试教程(四)
10 1
社会工程渗透测试教程(四)(1)
|
1天前
|
存储 安全 网络安全
社会工程渗透测试教程(三)(4)
社会工程渗透测试教程(三)
12 2

热门文章

最新文章