unittest

第一个unittest例子

感情迁移 提交于 2019-11-30 00:00:24
#模板 import unittest class Test_Firstcase(unittest.TestCase): def setUp(self): pass def test_one(self): pass def test_second(self): pass def tearDown(self) : pass if __name__ == '__main__': unittest.main() 注意事项: 1、一定要先导入unittest包 2、用例一定要以test开头 3、setUp和tearDown在每个测试方法运行时被调用 接下来,开始第一个实例。。。。。。 import unittest class Test_ClassOne(unittest.TestCase): def setUp(self): print('开始测试') def test_one(self): print('这是第一个测试用例') def test_second(self): print('这是第二个测试用例') def tearDown(self): print('结束测试') if __name__ == '__main__': unittest.main() 现在来看看执行结果 来源: https://blog.csdn.net/lala_yanzi/article/details

Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记

雨燕双飞 提交于 2019-11-29 15:19:17
背景 最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习。所以本文几乎没有实践内容,大多都是概念和工具的 mark,后续若有实践,我会来补充的。 一、软件测试 分类 1、根据项目流程阶段划分 需求分析 设计 编码 单元测试 集成测试 系统测试 验收测试 2、白盒测试、黑盒测试、灰盒测试 白盒测试的意义:有时候输出是正确的,但内部其实已经错误了,这种情况非常多。 灰盒测试的意义:如果每次都通过白盒测试来操作,效率会很低,黑盒又太过笼统,因此折中的灰盒测试比较适合。 3、功能测试与性能测试 功能测试 主要检査实际功能是否符合用户的需求。 功能测试又可以细分为很多种:逻辑功能測试、界面测试、易用性测试、安装测试、兼容性测试等。 性能测试 主要有 时间性能 和 空间性能 两种。 时间性能:主要是指软件的一个具体的响应时间。 空间性能:主要指软件运行时所消耗的系统资源。 4、手工测试与自动化测试 自动化测试不能完全地替代手工测试 ,自动化测试的目的仅仅在于让测试人员从烦琐重复的测试过程中解脱出来,把更多的时间和精力放到更有价值的测试中, 例如探索性测试。而自动化测试更多的是用来进行冒烟测试和回归测试。 自动化测试是本文要探讨的重点。 5、冒烟测试、回归测试、随机测试、探索性测试和安全测试 冒烟测试

Unittest--断言:for循环与asserEqual可兼得

吃可爱长大的小学妹 提交于 2019-11-29 08:19:14
脚本需求: 遍历检查一组数据是否符合条件 ,抛出不符合条件数据。 错误实践: for i,Information in enumerate(List_AMls): self.assertEqual(self.List_AMls,0,msg = "{}信息错误".format(Information)) 执行脚本,当某一个数据不符合条件后,直接抛出了异常,之后的数据就验证不到了! 原因分析: 首先出现这个问题,在于对assertEqual方法实现原理不清晰导致的。好吧,如果你也遇到这种问题,请跟着笔者的错误脚本走下去吧~ 想知道一个方法实现的什么功能?那还不简单,看代码! ctrl+鼠标左键:点击asserEqual,可以看到这个代码对应的内容 def assertEqual(self, first: Any, second: Any, msg: Any = ...) -> None: ... 好吧,这个是真的没看懂,看代码,算了,好好的看文档吧 。 https://docs.python.org/3/library/unittest.html Unittest单元测试框架说明 asserEqual,被归类在了Debug方法之一,用于检查并报告故障。所以,推测方法的功能:符合条件的通过,不符合条件的报错!报的和其他系统错误相同。 原因总结:assertEqual

unittest 报告——HTMLTestRunner

岁酱吖の 提交于 2019-11-29 03:30:18
1. HTMLTestRunner.py 代码(python3)如下: python2: https://github.com/tungwaiyip/HTMLTestRunner 1 """ 2 A TestRunner for use with the Python unit testing framework. It 3 generates a HTML report to show the result at a glance. 4 5 The simplest way to use this is to invoke its main method. E.g. 6 7 import unittest 8 import HTMLTestRunner 9 10 ... define your tests ... 11 12 if __name__ == '__main__': 13 HTMLTestRunner.main() 14 15 16 For more customization options, instantiates a HTMLTestRunner object. 17 HTMLTestRunner is a counterpart to unittest's TextTestRunner. E.g. 18 19 # output to a file 20 fp

unittest 基础详解

一曲冷凌霜 提交于 2019-11-29 02:40:59
内容总括 setUp 与 tearDown setUpClass 与 tearDownClass unittest.main(verbosity=0/1/2) 按顺序执行 addTest 解析 setUp 与 tearDown 有几个test,就执行几次setUp 与 tearDown,浪费资源    2. setUpClass 与 tearDownClass   推荐使用,只初始化一次固件,要加 @classmethod   class BaiDuTest(unittest.TestCase): @classmethod def setUpClass(cls): print("start...") @classmethod def tearDownClass(self): print("end...")    3. unittest.main(verbosity=0/1/2) 默认为1,0与1 几乎无差别,展示测试总个数与全局结果 2 为详情展示    4 .按顺序执行 addTest import unittestclass BaiDuTest(unittest.TestCase): @classmethod def setUpClass(cls): print("start...") @classmethod def tearDownClass(self): print(

unittest-每个模块用例一条一条跑,模块都合在一个表格里面统计的方法

南笙酒味 提交于 2019-11-28 20:52:41
文件目录 文件里面的结构就是常规的 unittest框架的写法 总执行文件 # #coding=utf-8 import unittest, time, os, multiprocessing import unittest #引入框架 import HTMLTestRunner_Chart import sys reload(sys) sys.setdefaultencoding('utf8') #创建一个测试套件 testunit=unittest.TestSuite() #把测试用例目录里面 test开头的测试用例文件提取出来,并获取了里面的测试用例 n='/Users/lucax/Desktop/工作/自动化覆盖/codemao_request_houtai/script/user_manage/old_Cat_mange/' discover=unittest.defaultTestLoader.discover(n,pattern ='old_Cat_mange*.py',top_level_dir=n) #下面通过不断筛选提出不要的部分,最后剔除到只有模块名.类名.测试用例名称 for test_suite in discover:   for test_case in test_suite:     testunit.addTest(test_case) n='

Python单元测试工具doctest和unittest

允我心安 提交于 2019-11-28 16:30:07
Python标准库包含两个测试工具。 doctest:一个简单的模块,为检查文档而设计,但也适合用来编写单元测试。 unittest:一个通用的测试框架。 一、使用doctest进行单元测试 创建文件mymath.py,内容 def square(x): ''' 计算平方并返回结果(下面是单元测试的格式) >>> square(2) 4 >>> square(3) 9 ''' return x * x if __name__ == '__main__': import doctest,mymath doctest.testmod(mymath) 在Sublime Text 3中运行只是提示[Finished in 0.2s]。 在cmd命令下切换到mymath.py所在目录,运行python mymath.py -v后,有提示测试详细信息,测试通过。如下图: 把函数square里面的return x * x 改成 return x / x。 再次运行python mymath.py -v,提示测试不通过,如下图: 二、使用unittest进行单元测试 还是用mymath.py测试,内容: def square(x): return x * x 新建单元测试文件test_math.py,内容: import unittest, mymath class mathTestCase

你会写单元测试吗

耗尽温柔 提交于 2019-11-28 16:07:01
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。 Github: https://github.com/hylinux1024 微信公众号:终身开发者(angrycode) 也许你已经听说过 Test Driven Development ,但不知道你是否遵循这个规则呢?其实我自己在写代码的时候也很少会先写单元测试再写业务功能逻辑。这不我也今天也来学习如何在 Python 中写单元测试。 0x00 unittest Python 中的 unittest 单元测试框架跟其它语言如 JUnit 是类似的。它支持测试自动化、配置共享以及关机代码测试。 假设在我的项目目录下有一个 mysum 模块用于计算列表中各个数之和。 还有一个 test_mysum.py 用于编写单元测试的文件。 myproject/ │ ├── mysum/ │ └── __init__.py └── unittests └── test_mysum.py 打开 mysum 模块中的 __init__.py 文件。 添加下面的方法 def sum(args): total = 0 for arg in args: total += arg return total 打开 test_mysum

(八) 自动化测试的实例(以浏览器为例)

五迷三道 提交于 2019-11-28 15:27:07
(一)自动化测试的实例(以浏览器为例) # -*- coding: UTF-8 -*-__author__ = 'xxy'# 将所需要的包导入import timeimport unittestfrom appium import webdriver# 配置设备信息desired_caps = { 'platformName': 'Android', 'deviceName': '0123456789ABCDEF', 'platformVersion': '4.4.2', 'appPackage': 'com.android.launcher3', 'appActivity': 'com.android.launcher3.Launcher', 'unicodeKeyboard':True, 'resetKeyboard':True }# 1.定义测试类,父类为unittest.TestCasseclass AppTest(unittest.TestCase):# 2.定义setup()方法,用于执行测试用例前的初始化工作# 注意,所有类中方法的入参为self,定义方法的变量也要“self.变量 def setUp(self): self.driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)# 3

Python中Unittest框架

最后都变了- 提交于 2019-11-28 13:13:07
原文: http://blog.gqylpy.com/gqy/483 置顶:来自一名75后老程序员的武林秘籍——必读 (博主推荐) 来,先呈上武林秘籍链接: http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我会画原理图,会画 PCB,会模拟,会数字!玩过 PLC,玩过单片机,会用汇编,会用 C!玩过 ARM,比如 PLC,STM32,和时下正在起飞的 NXP RT1052!搞过 DSP,比如 TMS320F28335!搞过 FPGA,不管 Xilinx 还是 Altera,也不管是 Verilog 还是 VHDL,或者直接画数字电路图!我懂嵌入式系统,比如 uCOS 和 Linux!我懂开源的硬件,比如 Arduino 和树莓派!我也搞软件,学了一堆上位机的语言C#,JAVA,Python,Kotlin,Swift!会写爬虫工具,又自学写APP,不管Android 还是 IOS! 可是这一切有什么用呢?土鸡瓦狗!不值一提!干技术的永远就是最苦逼的那个人! 我相信看到这里的你,应该是个 IT