首页 > 编程语言 > 详细

【python+selenium-02】关键字驱动结合ddt

时间:2021-01-31 10:37:54      阅读:36      评论:0      收藏:0      [点我收藏+]

unittest是python自动化测试的框架,里面集成了很多好用的方法。

我们先来看下下面的一段代码(实现了3个测试用例)

import unittest
from selenium import webdriver
from time import sleep


class TestDemo01(unittest.TestCase):
    # 前置条件
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.get("http://www.baidu.com")

    # 后置条件
    def tearDown(self):
        sleep(2)
        self.driver.quit()

    def test_01(self):
        self.driver.find_element_by_id("kw").send_keys("python")
        self.driver.find_element_by_id("su").click()

    def test_02(self):
        self.driver.find_element_by_id("kw").send_keys("java")
        self.driver.find_element_by_id("su").click()

    def test_03(self):
        self.driver.find_element_by_id("kw").send_keys("mysql")
        self.driver.find_element_by_id("su").click()

if __name__ == __main__:
    unittest.main()

我们发现一个什么问题?

相同的操作,只是输入的内容不同,代码冗余,这个时候ddt就出现了。

import unittest
from selenium import webdriver
from time import sleep
from ddt import ddt, data


@ddt()
class TestDemo01(unittest.TestCase):
    # 前置条件
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.get("http://www.baidu.com")

    # 后置条件
    def tearDown(self):
        sleep(2)
        self.driver.quit()

    @data(python, java, mysql)
    def test_04(self, text):
        self.driver.find_element_by_id("kw").send_keys(text)
        self.driver.find_element_by_id("su").click()


if __name__ == __main__:
    unittest.main()

通过ddt的 @ddt 和 @data注解,让代码"瘦身"了!

 

最后怎么让关键字驱动与ddt结合呢?

import unittest
from time import sleep
from ddt import ddt, data, unpack
from auto.tool.webui_autotest import *


@ddt()
class TestDemo02(unittest.TestCase):
    # 前置条件
    def setUp(self):
        self.driver = WebUIInit("firefox", "http://www.baidu.com")

    # 后置条件
    def tearDown(self):
        sleep(2)
        self.driver.quit()

    @data((id, kw, su, python), (id, kw, su, java))
    @unpack
    def test_05(self, locator_type, locator, locator1, text):
        self.driver.send_keys(locator_type, locator, text)
        self.driver.click(locator_type, locator1)


if __name__ == __main__:
    unittest.main()

是不是觉得好简单?

 

【python+selenium-02】关键字驱动结合ddt

原文:https://www.cnblogs.com/yunren/p/14351554.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!