热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3.6+selenium_使用外部数据的数据驱动

#!usrbinenvpython#-*-coding:utf-8-*-#@Time:2018122611:05#@File:unittest_test8
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/12/26 11:05
# @File : unittest_test8_2.py

#通过CSV获取数据
import csv,unittest
from ddt import ddt,data,unpack
from selenium import webdriver

def get_data(file_name):
    #创建一个空的列表用来存储行数据
    rows = []
    data_file = open(file_name,'r')
    #读取文件并返回csv文件中每行的列表,将每行读取的值作为列表返回
    reader = csv.reader(data_file)
    #跳过标题
    next(reader,None)
    #把每行数据添加到列表中
    for row in reader:
        rows.append(row)
        return rows
@ddt
class SearchCsvDDT(unittest.TestCase):
    #初始化浏览器和url
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.driver.maximize_window()
        self.driver.get("https://www.baidu.com/?tn=78000241_12_hao_pg")

    #创建一个测试用例
    @data(*get_data("C:\\testdata.csv"))
    @unpack
    def test_search(self,search_value,expected_count):     #参数值和期望结果
        self.search_file = self.driver.find_element_by_name('wd')
        self.search_file.clear()
        self.search_file.send_keys(search_value)
        self.search_file.submit()
        product = self.driver.find_element_by_xpath('//*[@id="1"]/h3/a')
        p = [product,]
        self.assertEqual(expected_count,len(p))

    #清理所有的 初始化值
    def tearDown(self):
        self.driver.quit()

#运行测试,传递verbosity参数,以便使详细的测试总量显示在控制台
if __name__=='__main__':
    unittest.main(verbosity=2)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/12/26 16:56
# @File : unittest_test8_3.py

#通过Excel获取数据
import xlrd,unittest
from ddt import ddt,data,unpack
from selenium import webdriver

def get_data(file_name):
    #创建一个空的列表用来存储行数据
    rows = []
    book = xlrd.open_workbook(file_name)
    #读取文件并返回csv文件中每行的列表,将每行读取的值作为列表返回
    sheet = book.sheet_by_index(0)
    #把每行数据添加到列表中
    for row_idx in range(1,sheet.nrows):
        rows.append(list(sheet.row_values(row_idx,0,sheet.ncols)))
        return rows
@ddt
class SearchCsvDDT(unittest.TestCase):
    #初始化浏览器和url
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.driver.maximize_window()
        self.driver.get("https://www.baidu.com/?tn=78000241_12_hao_pg")

    #创建一个测试用例
    @data(*get_data("TestData.xlsx"))
    @unpack
    def test_search(self,search_value,expected_count):     #参数值和期望结果
        self.search_file = self.driver.find_element_by_name('wd')
        self.search_file.clear()
        self.search_file.send_keys(search_value)
        self.search_file.submit()
        product = self.driver.find_element_by_xpath('//*[@id="1"]/h3/a')
        p = [product,]
        self.assertEqual(expected_count,len(p))

    #清理所有的 初始化值
    def tearDown(self):
        self.driver.quit()

#运行测试,传递verbosity参数,以便使详细的测试总量显示在控制台
if __name__=='__main__':
    unittest.main(verbosity=2)

 


推荐阅读
author-avatar
四木子1982
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有