zoukankan      html  css  js  c++  java
  • python3.6+selenium_使用ddt执行数据驱动测试

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2018/12/26 10:42
    # @File : unittest_test8_1.py
    '''
    使用ddt执行数据驱动测试,其中我们在测试类上使用@ddt修饰符,在测试方法上用@data装饰符,可以把参数当测试数据,
    参数可以是单个值,列表,数组,字典,对于列表,需要用@unpack装饰符把元组和列表解析成多个参数
    注:运行的时候光标的位置放在 test_search 方法里面会报错,将光标放到外面,则运行通过
    '''
    import unittest
    from ddt import ddt,data,unpack
    from selenium import webdriver
    @ddt
    class SearchDDT(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(("phones",1),("salt shaker",1))
        @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_elements_by_xpath('//*[@id="1"]/h3/a')
            #p = [product,]
            self.assertEqual(expected_count,len(product))
    
        #清理所有的 初始化值
        def tearDown(self):
            self.driver.quit()
    
    #运行测试,传递verbosity参数,以便使详细的测试总量显示在控制台
    if __name__=='__main__':
        unittest.main(verbosity=2)
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2019-06-11 11:00
    # @Author : zhouyang
    # @File : testdataIn.py
    
    '''测试数据为多个字典的list类型,不是引入外部文件'''
    import ddt
    import unittest
    #测试数据
    testData=[{'username':'zhangsan','psw':'123456q'},
              {'usernamr':'lisi','psw':'123456w'},
              {'username':'wangwu','psw':'123456e'}
              ]
    @ddt.ddt
    class Test(unittest.TestCase):
        def setUp(self):
            print('start')
        def tearDown(self):
            print('end')
        @ddt.data(*testData)
        def test_ddt(self,data):
            print(data)
    
    if __name__ == '__main__':
        unittest.main
    View Code
  • 相关阅读:
    React Native配置和使用
    使用ES6语法重构React代码
    git 起点
    Win32API程序中自建按钮
    C语言中数组与指针
    我的第一个博客
    Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)
    Solr6.5在Centos6上的安装与配置 (一)
    PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制
    MariaDB+Keepalived双主高可用配置MySQL-HA
  • 原文地址:https://www.cnblogs.com/xiuxiu123456/p/10435918.html
Copyright © 2011-2022 走看看