zoukankan      html  css  js  c++  java
  • unittest实现批量处理测试集

    批量执行测试集

    #coding=utf-8
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    import unittest, time, re
    class Baidu(unittest.TestCase):
    def setUp(self):
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(30)
    self.base_url = "http://www.baidu.com/"
    self.verificationErrors = []
    self.accept_next_alert = True
    #百度搜索用例
    def test_baidu_search(self):
    driver = self.driver
    driver.get(self.base_url + "/")
    driver.find_element_by_id("kw").send_keys("selenium webdriver")
    driver.find_element_by_id("su").click()
    time.sleep(2)
    driver.close()
    #百度设置用例
    def test_baidu_set(self):
    driver = self.driver
    #进入搜索设置页
    driver.get(self.base_url + "/gaoji/preferences.html")
    #设置每页搜索结果为 100 条
    m=driver.find_element_by_name("NR")
    m.find_element_by_xpath("//option[@value='100']").click()
    time.sleep(2)
    #保存设置的信息
    driver.find_element_by_xpath("//input[@value='保存设置']").click()
    time.sleep(2)
    driver.switch_to_alert().accept()
    def tearDown(self):
    self.driver.quit()
    self.assertEqual([], self.verificationErrors)
    if __name__ == "__main__":
    unittest.main()
    

     虽然已经实例了多个用例一起跑,但这样仍然不合理,几个用例一起执行还好,如果几十个、几百个的用例的话,这个文件将变得无比庞大,不利于维护。

    所以,做合理的做法是一个例一个文件,把所文件放一个文件夹下,通过单独的脚本控制所有用例的执行,将脚本的执行结果输出到一个 log 文件中。

    初步把框架走通了。

    单个用例他们整理一下放到一个文件夹下,然后编写执行用例集

    的脚本:

    test_case_.py
    #-*-coding=utf-8 -*-
    import os
    #列出某个文件夹下的所有 case,这里用的是 python,所在 py 文件运行一次后会生成一个 pyc
    的副本
    caselist=os.listdir('D:\selenium_use_case\test_case')
    for a in caselist:
    s=a.split('.')[1:][0] #选取所要执行的用例
    if s=='py':
    #此处执行 dos 命令并将结果保存到 log.txt
    os.system('D:\selenium_use_case\test_case\%s 1>>log.txt 2>&1'%a)
    

      查看 log.txt 文件:

    ..
    ----------------------------------------------------------------------
    Ran 2 tests in 32.469s
    OK
    ..
    ----------------------------------------------------------------------
    Ran 2 tests in 27.016s
    OK

  • 相关阅读:
    SQL Server系统表sysobjects介绍
    tofixed方法 四舍五入
    (function($){})(jQuery);
    DOS批处理命令-字符串操作
    IF ERRORLEVEL 和 IF %ERRORLEVEL% 区别
    Gpupdate命令详解
    DOS批处理中%cd%和%~dp0的区别
    SetACL 使用方法详细参数中文解析
    Lazarus 1.6 增加了新的窗体编辑器——Sparta_DockedFormEditor.ipk
    Lazarus 1.44升级到1.6 UTF8处理发生变化了
  • 原文地址:https://www.cnblogs.com/101718qiong/p/7412294.html
Copyright © 2011-2022 走看看