unittest

成为OpenStack工程师

南笙酒味 提交于 2020-03-27 08:11:22
OpenStack Hacker 态度:开放、主动、沟通 影响力:能说、能写、能分享 四化:自动化、流程化、系统化、文档化 0级 掌握一些基本技能:python、c、linux、git、unittest、vim/emacs python学习 书籍: 《python参考手册》 《python基础教程》 教程: codecademy 挑战: Python Challenge 文档: Python v2.7.3 documentation 高级: The Hitchhiker’s Guide to Python! Linux环境学习 在线书籍: 鸟哥的Linux私房菜 Linux编程学习 书籍: 《Unix环境高级编程》 《UNIX系统编程》 Git学习 书籍: 《版本控制之道》 在线书籍: Pro Git GotGitHub 教程: tryGit GitImmersion 进阶: visual-git-guide a-successful-git-branching-model 最常用的git命令: Everyday GIT With 20 Commands Or So Unittest学习 教程: python unittest VIM学习 教程: vim-adventures 1级 学习openstack的基本概念 介绍 Compute管理员手册 Network管理员手册

unittest详解(一) unittest初识

為{幸葍}努か 提交于 2020-03-21 15:43:53
unittest是python内置的一个单元测试框架,在学习怎么使用它之前,我们先来了解它的一些概念和原理。 Test Case: 测试用例,一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。单元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。 Test Suite: 测试套件,就是多个测试用例集合在一起 Test Runner: 测试执行,用来执行测试用例,其中的run(test)会执行TestSuite/TestCase Test Fixture: 对一个测试用例环境的搭建和销毁,是一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。这个有什么用呢?比如说在这个测试用例中需要访问数据库,那么可以在setUp()中建立数据库连接以及进行一些初始化,在tearDown()中清除在数据库中产生的数据,然后关闭连接。注意tearDown的过程很重要,要为以后的TestCase留下一个干净的环境。 了解了概念后,我们来看一个登陆的测试脚本。 代码: # coding = utf-8 import unittest import

unittest 几个重要概念

空扰寡人 提交于 2020-03-18 15:50:48
unittest是一个python版本的junit,junit是java中的单元测试框架,unittest实现了很多junit中的概念,比如我们非常熟悉的test case, test suite等,总之,原理都是相通的,只是用不同的语言表达出来。 unittest中的4个重要的概念:test fixture, test case, test suite, test runner,我觉得只有理解了这几个概念,才能真正的理解单元测试的基本原理,下面就主要围绕这几个概念来展开这篇文章。 1、Test Case 一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代 码(run),以及测试后环境的还原(tearDown)。单元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。 2、Test Suite 一个功能的验证往往需要多个测试用例,可以把多个测试用例集合在一起执行的,就是TestSuite,TestSuit用来组装单个测试用例,可以通过addTest加载到TestCase到TestSuit中,从而返回一个TestSuit实例;而且TestSuite也可以嵌套TestSuite。

疑问:Pycharm中unittest.main()和if __name__ == '__main__': unittest.main()无法像在Sublime 中那样运行?

旧街凉风 提交于 2020-03-16 14:45:10
照着教材写了几个测试用例,分别在Pycarm和Sublime中运行的结果: Pycharm里: 为什么没有找到测试用例呢?? 把unittest.main()换成if name == ‘ main ’: unittest就可以了,可是还是没有出现书里说的每执行一个测试用例就会输出一个字符? 加了一个用例,在unittest.main()的情况下还是找不到测试用例。 把unittest.main()换成if name == ‘ main ’: unittest就又可以了,可是还是没有出现书里说的每执行一个测试用例就会输出的相应数目字符。 Sublime中两种方式都能正常运行: 所以是为什么unittest.main()和if name == ‘ main ’: unittest在Sublime 和Pycharm中运行结果会不一样呢?我该怎么改才能让在Pycarm中“正常”运行? 教材:《Python编程:从入门到实践》 来源: CSDN 作者: Deca_csdn 链接: https://blog.csdn.net/Deca_csdn/article/details/104822085

PYTHON unitest模块

余生长醉 提交于 2020-03-12 15:27:53
一、 Python 的单元测试中,一般一个测试程序文件负责测试 Python 的一个模块,或者一个模块中的一个代码文件。它们经常以 test_somemodule.py 或 testSomeModule.py 的名字命名;一般保存在被测试模块的一个子目录 tests 中,也有就保存在该模块的根目录的。 如果要编写一个测试程序,需要以 unittest. TestCase 为基类派生,这样 unittest 就可以自动找到这些测试类了。这样的一个测试类中,凡是以“test”开头的方法,都是一个测试用例。 unittest 会自动统计测试用例的个数,并在最后的测试报告中指出测试成功了几个,有那些失败。 TestCase 还有两个很有用的方法:在每个测试用例执行之前,写在 setUp 中的代码都会被执行,用来初始化测试环境;而 tearDown 中的代码则负责清除每个测试用例遗留的垃圾,恢复现场。 import unittest import commands class TSCache(object): def __init__(self): # suit initial print "case %s"%self def doRequest(self): comm = "curl -I -s -x localhost:8080 http://111111.cn/index.html"

unittest

左心房为你撑大大i 提交于 2020-03-08 04:33:13
今天开始研究python的unittest模块,为我们当前做的项目定制测试方案,包括unittest和自动化流程测试。 python的unittest的基本使用方法如下: 1.import unittest 2.定义一个继承自unittest.TestCase的测试用例类 3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。 4.定义测试用例,名字以test开头。 5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。 6.调用unittest.main()启动测试 7.如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。 第一个unittest程序代码: 1)code1.py #!/usr/bin/env python #encoding: utf-8 ######################################################################## class myclass: """""" #---------------------------------------------------------------------- def _

关于《Selenium3自动化测试实战--基于python语言》

我是研究僧i 提交于 2020-03-05 17:27:28
2016年1月,机缘巧合下我出版了《Selenium2自动化测试实战--基于python语言》这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目中使用Selenium,几乎离不开编程语言和单元测试框架,难道你只用Selenium IDE去录制/回放脚本么? 没想到受到许多测试人员的欢迎,我会时常去看网上的书评。大多是感谢的留言,书的销量也印证了这一点,当然,也有批评和建议。在此,表示感谢。 随着,我对Selenium自动化技术的理解,越来越发现《Selenium2自动化测试实战--基于python语言》书中有许多不足之处。 2017年的时候,我就有萌生了要重写一版的想法,当时能想到的改动的地方不多。只是一定未开始动笔。知道2018年下半年,我才开始重新写这本书。 接下来,我将简单的向你介绍以下新书的章节,以及我的改动。 第一章: 不讲什么是软件测试,以及测试的分类这些过于基础的东西了。快速的帮助你对自动化测试,以及Selenium、appium有一个认识。 第二章: 搭建环境。 第三章: python基础,修改了部分列子,以及我认识上的错误,比如,我把 list/列表 称为 数组 ,这其实源于我学C/Java语言,就把他们的叫法照搬了过来。显然,是不太合适的。随着对python的语言的使用,也有了更多的认识。如果你还不会python

pyHamcrest

爱⌒轻易说出口 提交于 2020-02-28 16:51:56
概念 Hamcrest是用于编写匹配器对象的框架。他提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活。Hamcrest还有很好的可扩展性,能够创建自定义的匹配器。 支持语言 Hamcest支持多种语言,在Hamcest 官网便可以看到: http://hamcrest.org/JavaPython Ruby Objective-C PHP Erlang Swift 示例 from hamcrest import * import unittest class BiscuitTest(unittest.TestCase): def testEquals(self): theBiscuit = 'Ginger' myBiscuit = 'Ginger' assert_that(theBiscuit, equal_to(myBiscuit)) if __name__ == '__main__': unittest.main() assert_that函数是用于测试断言的语句。 在如上示例中,theBiscuit 是第一个方法参数,第二个方法参数是对象的匹配器,这里使用的是Python中 ==运算符检查一个对象与另一个对象相等。 Hamcres API 在python中pyHamcrest属于第三方库,使用时需要安装。

python+selenium+unitest测试脚本

蓝咒 提交于 2020-02-28 12:46:02
百度为例 from selenium import webdriver import unittest import time import os class baidutest(unittest.TestCase): def setUp(self): chromedriver = "C:/Users/LX/AppData/Local/Google/Chrome/Application/chromedriver.exe" os.environ["webdriver.chrome.driver"] = chromedriver self.browser = webdriver.Chrome(chromedriver) self.browser.get("http://www.baidu.com") def test_baidu(self): self.browser.find_element_by_id("kw").send_keys("selenium") self.browser.find_element_by_id("su").click() time.sleep(3) title = self.browser.title self.assertEqual(title,u"selenium_百度搜索") def tearDown(self): self.browser.quit

python unittest单元测试方法和用例

Deadly 提交于 2020-02-27 10:01:46
python内部自带了一个单元测试的模块,pyUnit也就是我们说的: unittest 先介绍下unittest的基本使用方法: 1.import unittest 2.定义一个继承自unittest.TestCase的测试用例类 3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。 4.定义测试用例,名字以test开头。 5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。 6.调用unittest.main()启动测试 7.如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。 下面是unittest模块的常用方法: assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) bool(x) is True assertFalse(x) bool(x) is False assertIs(a, b) a is b 2.7 assertIsNot(a, b) a is not b 2.7 assertIsNone(x) x is None 2.7 assertIsNotNone(x) x is not None 2.7