数据驱动ddt 示例,数据在代码中
admin
2023-07-20 07:02:15
0
#coding=utf-8
from selenium import webdriver
import unittest,time
import logging,traceback
import ddt
from selenium.common.exceptions import NoSuchElementException

logging.basicConfig(
    #日志级别
    level = logging.INFO,

    #日志格式
    #时间、代码所在文件名、代码行号、日志级别、日志信息
    format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',

    #打印日志的时间
    datefmt = '%a, %d %b %Y %H:%M:%S',

    #日志存放文件
    filename = 'report.log',

    #日志打开方式
    filemode = 'w'

)
#使用ddt数据驱动
@ddt.ddt
class TestDemo(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome(executable_path = "e:\\chromedriver")

    #定义测试数,元组的元素是列表
    @ddt.data([u"测试开发",u"测试开发"],
              [u"疯狂动物城",u"古德温"],
              [u"光荣之路",u"光荣之路"])

    #解包测试数据,每个列表的数据分别对应下面的testdat、expectdata,每个数据会执行一次测试脚本
    @ddt.unpack
    def test_dataDriven(self,testdata,expectdata):
        url = "https://www.baidu.com"

        self.driver.get(url)

        #隐式等待
        self.driver.implicitly_wait(10)
        try:
            self.driver.find_element_by_id("kw").send_keys(testdata)

            self.driver.find_element_by_id("su").click()

            time.sleep(3)

            self.assertTrue(expectdata in self.driver.page_source)

        except NoSuchElementException,e:
            logging.error(u"查找的页面元素不存在,异常:" +str(traceback.format_exc()))

        except AssertionError,e:
            logging.info(u"搜索 %s ,期望%s,失败"  %(testdata,expectdata))

        except Exception,e:
            logging.error(u"错误信息: " + str(traceback.format_exc()))

        else:
            logging.info(u"搜索 %s ,期望%s,通过"  %(testdata,expectdata))

    def tearDown(self):
        self.driver.quit()

if __name__ == "__main__":
    unittest.main()

相关内容

热门资讯

AI观察|世界模型成AI新赛道... 人民网记者 赵竹青 一群猪能在天上和飞机一起飞吗?现实世界不行,但视频生成模型可以。 “因为视频生成...
DeepSeek新功能认不出梁... 近日,多位网友发现,DeepSeek已面向更多用户开放“识图模式”。 据了解,今年4月底,Deep...
24岁以色列人质泪诉遭性侵,勒... 6 月 18 日消息,24 岁的以色列男子盖伊・吉尔博亚・达拉尔,在 2023 年 10 月 7 日...
风声|各地血库告急,为何公众反... 作者丨王晨光原协和医学院教授近日,《半月谈》发文,直指“无偿献血困境”,从“伤元气”的健康疑虑,到最...
消息人士:因以军持续袭击黎巴嫩... 当地时间18日,一名知情人士称,由于以色列持续袭击黎巴嫩南部,伊朗谈判代表团已推迟其前往瑞士的行程。...
万斯:60天谈判期限18日起算... 新华社华盛顿6月18日电(记者黄强 徐剑梅)美国副总统万斯18日在白宫记者会上说,美国和伊朗谅解备忘...
小熊电器获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示小熊电器(002959)新获得一项实用新型专利授权,专利名为“...
【工作动态】共赴数智未来 20... 万数奔腾,浪潮激荡。当前,大数据、人工智能等新技术加速迭代,新业态、新模式持续涌现,为经济社会高质量...
伊朗:60天内商船可免费通过霍... △霍尔木兹海峡(资料图)当地时间18日,伊朗国家最高安全委员会发表声明称,60天内,不收取申请通过霍...
知名国际学校,新校区不到一年宣... 一个去年8月开办的新校区,在今年6月初突然宣布关停。6月5日晚,北京市昌平区的清香未来城学校(即北京...