【Python + Selenium3】之DDT数据驱动

完整代码:

import unittest
from time import sleep
from selenium import webdriver
from ddt import ddt,data,file_data,unpack
from selenium.webdriver.common.by import By

@ddt
class TestBaiduSearch(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome()
        cls.url = "https://baidu.com"

    def baidu_search(self,keys):
        self.driver.get(self.url)
        self.driver.find_element(By.CSS_SELECTOR,"#kw").send_keys(keys)
        self.driver.find_element(By.CSS_SELECTOR,"#su").click()
        sleep(5)

    # 参数化例1
    @data(["case1","selenium3"],["case2","python3"],["case3","百度"])
    @unpack
    # @unittest.skip
    def test_baiduSearch01(self,case,data_key):
        print("第一组测试用例:"+case)
        self.baidu_search(data_key)
        self.assertEqual(self.driver.title,data_key + "_百度搜索",msg="标题不正确!")

    # 参数化例2:json
    @file_data("./data/ddt_data_file.data")
    def test_baiduSearch02(self,keys):
        print("第二组测试用例:",keys)
        self.baidu_search(keys)
        self.assertEqual(self.driver.title, keys + "_百度搜索", msg="标题不正确!")

    # 参数化例3:yaml
    @file_data("./data/ddt_data_file.yaml")
    @unpack
    def test_baiduSearch03(self,**kwargs):
        keys = kwargs[‘data1‘][1][‘keys‘]
        print("第三组测试用例:",keys)
        self.baidu_search(keys)
        self.assertEqual(self.driver.title, keys + "_百度搜索", msg="标题不正确!")

    @classmethod
    def tearDownClass(cls):
        print("用例结束!")
        cls.driver.quit()

if __name__ == ‘__main__‘:
    unittest.main(verbosity=2)

json文件:ddt_data_file.data

{
  "case1":{"keys":"11"},
  "case2":{"keys":"12"},
  "case3":{"keys":"13"}
}

yaml文件:ddt_data_file.yaml

用例1:
  data1:
    - keys: "yaml01"
    - keys: "yaml02"
  data2:
    - keys: "yaml03"
    - keys: "yaml04"
用例2:
  data1:
    - keys: "yaml05"
    - keys: "yaml06"
  data2:
    - keys: "yaml07"
    - keys: "yaml08"
用例3:
  data1:
    - keys: "yaml09"
    - keys: "yaml10"
  data2:
    - keys: "yaml11"
    - keys: "yaml12"

yaml转换数组:

list = [{   ‘case1‘:   { ‘data1‘: [ { ‘keys‘: ‘yaml01‘ }, { ‘keys‘: ‘yaml02‘ } ],     ‘data2‘: [ { ‘keys‘: ‘yaml03‘ }, { ‘keys‘: ‘yaml04‘ } ] },  ‘case2‘:   { ‘data1‘: [ { ‘keys‘: ‘yaml05‘ }, { ‘keys‘: ‘yaml06‘ } ],     ‘data2‘: [ { ‘keys‘: ‘yaml07‘ }, { ‘keys‘: ‘yaml08‘ } ] },  ‘case3‘:   { ‘data1‘: [ { ‘keys‘: ‘yaml09‘ }, { ‘keys‘: ‘yaml10‘ } ],     ‘data2‘: [ { ‘keys‘: ‘yaml11‘ }, { ‘keys‘: ‘yaml12‘ } ] } }]

原文地址:https://www.cnblogs.com/Owen-ET/p/11799335.html

时间: 2024-11-11 07:15:15

【Python + Selenium3】之DDT数据驱动的相关文章

python接口自动化--ddt数据驱动

一.安装 pip install ddt 二.数据驱动需在类名上加@ddt.ddt,在测试用例上加@ddt.data(*data) ,data为准备的数据 1 import unittest 2 import ddt 3 4 #测试需要准备的数据 5 data = [ 6 {"user":"admin1","pwd":"111111","expect":"True"}, 7 {"

Unittest框架+ddt数据驱动+HTMLTestRunner+sendmail(自动发送测试报告)+git+Jenkins

本次写的是针对有代码基础的,没基础建议先去学基础,以下所有描述内容都是我已经在公司项目实践成功的!仅供参考 整体思路: 1.接口自动化用的是Python中unittest框架 2.所有的测试数据用例存放Excel表 3.封装一套读取和写入的Excel方法 4.重写request方法(为了从Excel读取数据后对数据作分析和判断并在测试报告生成相关信息) 5.通过HTMLTestRunner运行测试用例生成网页版报告 6.将自动化脚本放到公司git上,方便其他人员获取你的代码进行编写脚本,后面会具

参数化之ddt数据驱动框架

要使用ddt首先先安装ddt模块:pip install ddt.ddt数据驱动只能适用于unittest子类的类装饰器. 单个参数参数化: from ddt import ddt,data,unpack import unittest from selenium import webdriver import time search_data = ('selenium', 'pytest', 'python') #单个参数 @ddt class testDDT(unittest.TestCas

python webdriver 测试框架-数据驱动DDT的例子

先在cmd环境 运行 pip install ddt 安装数据驱动ddt模块  脚本: #encoding=utf-8 from selenium import webdriver import unittest,time import logging,traceback import ddt from selenium.common.exceptions import NoSuchElementException #初始化日志对象 logging.basicConfig( #日志级别 leve

Selenium3+Python3_15:数据驱动ddt+excel

安装ddt:pip install ddt 安装xlrd:pip install xlrd 数据驱动的基本思路: 1.import ddt 2.从excel读取测试数据,给到变量名,如testdata (可封装readexcel.py,调用其以读取数据) 读取数据: 不在同一个文件夹下,需要用os.path获取userinfo.xlsx的路径,传参ExcelUtil(path) dd = ExcelUtil("userinfo.xlsx", sheetName="Sheet1

python ddt数据驱动框架

import unittestfrom ddt import  ddt, data, unpack @ddtclass MyTestCase(unittest.TestCase): @data((1, 2), (2, 3)) #多个数据项    @unpack #两个或超过两个需要使用@unpack    def test_something(self, value1, value2):        print value1, value2        self.assertEqual(va

selenium python自动化测试 ddt数据驱动

安装ddt  pip install ddt 直接上代码: 1 # coding:utf-8 2 import ddt 3 import time 4 import excelunit 5 import unittest 6 from selenium import webdriver 7 8 # 测试数据 9 data = excelunit.ExcelUtil("test.xlsx", "sheet1") 10 testData = data.dict_data

Python ddt数据驱动

import unittestfrom time import sleep import ddt# 导入ddt模块from selenium import webdriver @ddt.ddt# 声明使用ddtclass MyTestCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.base_url = "https://www.baidu.com/" self.driver

python+selenium九:ddt数据驱动

读取excel内容 import xlrdclass ExcelUtil(): def __init__(self, excelPath, sheetName): #def __init__(self, excelPath, sheetName): self.data = xlrd.open_workbook(excelPath) self.table = self.data.sheet_by_name(sheetName) # 获取第一行作为key值 self.keys = self.tabl