`

unittest 单元测试框架(一)

 
阅读更多

先上代码:

baidusousuo.py代码如下:

#coding=utf-8
from selenium import webdriver
import time,unittest
class baidu(unittest.TestCase):
    "百度"
    def setUp(self):
        self.driver=webdriver.Firefox()
        self.verificationErrors = []
        self.accept_next_alert = True
    def test_baidu_search(self):
        "百度搜索"
        self.driver.get("http://www.baidu.com/")
        self.driver.find_element_by_id("kw").clear()
        self.driver.find_element_by_id("kw").send_keys("自动化测试")
        self.driver.find_element_by_id("su").click()
        time.sleep(2)
        title=self.driver.title
        print(title,self.driver.find_element_by_xpath("//div[@class='nums']").text)
        self.driver.close()
    def tearDown(self):
        self.driver.quit()
        self.assertEquals([],self.verificationErrors)

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

 loginyf.py代码如下:

# coding=utf-8
from selenium import webdriver
import time,unittest
print("python")
class login_yf(unittest.TestCase):
    "眼防"
    def setUp(self):
        self.driver=webdriver.Firefox()
        self.verificationErrors = []
        self.accept_next_alert = True
    def test_login_yf(self):
        "眼防登录"
        self.driver.get("http://10.X.X.187:8085/epd/login")
        self.driver.find_element_by_id("username").clear()
        self.driver.find_element_by_id("username").send_keys("zhangjiang")
        self.driver.find_element_by_id("password").clear()
        self.driver.find_element_by_id("password").send_keys("123456")
        time.sleep(2)
        self.driver.find_element_by_id("submitId").click()
        self.driver.get_screenshot_as_file("d:/img/lod.png")
        print("title:",self.driver.title)
        name=self.driver.find_element_by_xpath("//div[@class='content_right_link']/a[1]").text
        print(name)
        if name == "退出登录" :
            print("登录成功!")
        else:
            raise NameError("user name error !")
        self.driver.close()
    def tearDown(self):
        self.driver.quit()
        self.assertEquals([],self.verificationErrors)
if __name__=="__main__":
    unittest.main()

 test_all.py代码如下:

#coding=utf-8
import unittest
import HTMLTestRunner
import baidusousuo
import loginyf

testunit=unittest.TestSuite()

#将测试用例加入测试容器(套件)中
testunit.addTest(unittest.makeSuite(loginyf.login_yf))
print("test")
testunit.addTest(unittest.makeSuite(baidusousuo.baidu))

#执行测试套件
# runner=unittest.TextTestRunner()
# runner.run(testunit)

#定义一个报告存放路径,支持相对路径
filename="d:\\img\\result.html"
fp=open(filename,'wb')

runner=HTMLTestRunner.HTMLTestRunner(
    stream=fp,
    title='测试报告',
    description='用例执行情况'
)
# 执行测试用例
runner.run(testunit)

 

baidusousuo.py和loginyf.py是两个Test_case,all_test.py是执行测试用例,执行结果如下:



 此例子还需要有很多地方的优化:

1,文件结构改进,Test_case文件夹,Data数据,all_test等。

2,用例的读取改进,discover

3,自动发送测试报告邮件

4,多线程/分布式执行测试用例

5,定时任务

6,管理自动化测试项目(git/svn/jenkins)

 

 

------------------------------------更新:增加时间戳命名测试报告文件-------------------------------------

每次run的时候生成的测试报告都会把之前的给覆盖掉,那么历史的测试报告就看不到了,对此,文件名称加上时间戳,就可以解决这个问题了。

首先获取到当前时间,也就是生成测试报告的当前时间,然后格式化,再添加到文件名称里面去。

代码如下:

now = time.strftime("%Y-%m-%d_%H:%M:%S",time.localtime(time.time()))
    filename="d:\\img\\"+now+"result.html"

 

  • 大小: 36.7 KB
分享到:
评论

相关推荐

    unittest单元测试框架.pdf

    unittest是Python标准库中的一个单元测试框架,它提供了一套结构化的、易于使用的API来编写和组织测试代码。以下是对unittest框架的详细说明: 1. **导入unittest模块**:使用`import unittest`引入unittest框架,...

    php-php单元测试框架-unitTest.zip

    在`unittest`这个上下文中,我们可能指的是一个基于PHP的单元测试实现,尽管它不是最常用的名称,但我们可以假设这是一个用于PHP的简单单元测试框架。 使用PHP单元测试框架,开发者可以创建测试用例,每个用例包含...

    unittest框架做单元测试的简单实现

    unittest是Python标准库中的一个模块,用于编写和运行单元测试。单元测试是对代码的最小可测试部分进行验证,确保它们按预期工作。在本篇中,我们将深入探讨如何使用unittest框架来实现单元测试。 首先,我们需要...

    python3+selenium3单元测试框架(unittest)使用介绍

    总的来说,单元测试框架unittest为Python的自动化测试提供了强大的支持,它使得测试过程结构化、易于管理和扩展。掌握unittest框架对于Python开发者和测试工程师来说是一个基本且重要的技能。通过合理运用unittest...

    cpp-UnitTest一个轻量级的C的单元测试框架

    `cpp-UnitTest` 是一个专为C++编程语言设计的轻量级单元测试框架,它为开发者提供了一种方便、高效的方式来验证代码的各个模块是否按照预期工作。单元测试是软件开发过程中的重要组成部分,通过编写针对代码各个部分...

    python unittest自动化接口测试框架

    Python的unittest库是用于编写单元测试的标准库,而将其应用到接口测试上则可以构建一个高效的自动化测试框架。以下将详细介绍如何利用unittest实现Python接口自动化测试框架,并讨论相关的知识点。 首先,unittest...

    Python3+unittest+requests+excel实现接口自动化测试框架

    unittest是Python内置的一个单元测试框架,它提供了编写测试用例、组织测试套件和运行测试的基本结构。 unittest框架允许我们定义测试类和测试方法,每个方法以`test_`开头,代表一个测试用例。我们可以为每个接口...

    自动化冒烟测试:Unittest vs Pytest框架

    在 Python 中,有两种常用的自动化冒烟测试框架:Unittest 和 Pytest。本文将详细介绍 Unittest 和 Pytest 框架的使用方法,并比较两者的异同。 一、Unittest 框架 Unittest 是 Python 自带的测试框架,提供了丰富...

    unittest框架(单元测试)py代码示例+文字教程

    unittest框架(单元测试)py代码示例+文字教程,当谈到单元测试时,unittest 是 Python 中最常用和最受欢迎的测试框架之一。 unittest 提供了一组用于编写和运行测试的类和方法,并且易于使用。unittest 提供了许多...

    Python unittest单元测试框架及断言方法

    总的来说,Python的unittest单元测试框架提供了全面的工具和概念,帮助开发者构建可靠、高效的测试,确保代码的稳定性和可靠性。通过深入理解和熟练运用unittest,可以大大提高软件开发的质量和效率。

    Android unitTest 按键单元测试项目

    在Android应用开发中,单元测试是一项至关重要的任务,它能够帮助开发者确保代码的质量,提高软件的稳定性和可维护性。本项目聚焦于Android中的按键单元测试,特别是针对按钮(button)点击事件的测试。以下是对这个...

    UnitTest_测试代码框架_

    `UnitTest_测试代码框架` 提供了一种组织和执行单元测试的方法,帮助开发者有效地验证代码的各个部分是否按预期工作。这个框架允许您为不同的模块下载特定的测试代码,以便对各个功能进行独立验证。 `UT_UTEntry.c`...

    Python unittest单元测试框架实现参数化

    Python的unittest单元测试框架是标准库中的一个模块,用于编写和组织单元测试。然而,与TestNG等其他测试框架相比,unittest自身并不直接支持参数化测试。参数化测试允许我们用一套测试用例来覆盖多种输入情况,而...

    Python unittest单元测试框架的使用

    Python的unittest单元测试框架是Python内置的一个强大的测试工具,它为编写和组织单元测试提供了标准结构。unittest框架的使用能够确保代码的质量,特别是在大型项目中,通过自动化测试能有效地检查代码的功能是否...

    fortran-并行化fortran单元测试框架-UnitTest.zip

    `UnitTest`框架填补了这一空白,为Fortran开发者提供了一种结构化的单元测试方法。它支持创建测试套件、定义测试用例和断言,以检查代码的正确性。 使用`UnitTest`框架,你可以按照以下步骤组织和执行单元测试: 1...

Global site tag (gtag.js) - Google Analytics