unittest

[Python Modules] unittest

假装没事ソ 提交于 2019-12-06 04:28:32
五夜光寒,照来积雪平于栈。西风何限,自起披衣看。 对此茫茫,不觉成长叹。何时旦,晓星欲散,飞起平沙雁。 在某个Python程序中看到这么一行 from unittest import mock 看起来像是一个Python自带的测试库。 经查 , unittest.mock 允许用户使用假的对象代替系统的真实对象。mock库中常用的是 MagicMock, Mock, patch() : >>> from unittest.mock import MagicMock >>> thing = ProductionClass() >>> thing.method = MagicMock(return_value=3) >>> thing.method(3, 4, 5, key='value') 3 可以看出 MagicMock 可以改变函数为固定输出。同事可以使用 side_effect 参数使得函数具有其他功能,可以实现函数的功能或者报错。 >>> mock = Mock(side_effect=KeyError('foo')) >>> mock() Traceback (most recent call last): ... KeyError: 'foo' >>> values = {'a': 1, 'b': 2, 'c': 3} >>> def side_effect(arg):

selenium关于断言的使用和获取input的值

淺唱寂寞╮ 提交于 2019-12-06 02:58:08
基本介绍: Selenium工具专门为WEB应用程序编写的一个验收测试工具。 Selenium的核心:browser bot,是用JAVASCRIPT编写的。 Selenium工具有4种:Selenium IDE, Selenium Control, Selenium Core 这儿我们主要总结了Selenium-IDE工具 Selenium-IDE只限于firefox浏览器中使用。 Selenium命令分成三类: 操作(action)、辅助(accessors)和断言(assertion): 操作action: 模拟用户与 Web 应用程序的交互。一般用于操作应用程序的状态。 如点击链接,选择选项的方式进行工作。如果一个动作执行失败,或是有错误,当前的测试将会停止执行。 操作中常见命令有 : open(打开页面) click(点击) clickAndWait(点击并等待) type(文本类型) select(选择下拉菜单) selectWindow(选择弹出窗口) pause(等待指定时间,以毫秒为单位,即要睡眠的时间) setSpeed(设定执行速度。以毫秒延迟间隔长度。默认没有延迟,即为0) setTimeout(指定等待动作完成的等待时间。默认为30秒。 需要等待的动作包括了OPEN 和WAITFOR) goBack(模拟用户点击其浏览器上的“back”按钮) close

unittest框架

不打扰是莪最后的温柔 提交于 2019-12-06 02:51:56
一、unittest框架简介   unittest设计时主要用于单元测试,但其他功能强大,也可以用于其他的自动化测试(GUI、接口)。 二、unittest框架的四个核心   1. testcase:测试用例   2. testsuite:测试套件   3. testfixture:用于配置或者删除环境,提供setUp()启动和tearDown()释放的方法,定义了特殊的运行方式   4. testrunner:提供run()方法,运行测试集,可以生成测试报告 三、unittest框架常用的类   1.TestCase  2.main  3.TestSuite  4.skip  5.TestResult  6.TestLoader 四、unittest框架的实现过程   1. 通过继承的方式(unittest.TestCase)获取父类方法,构建测试用例   2. 构建测试用例遵循标准:必须以test开头   3. 通过testfixture初始化运行时所需要的变量。setUp获取,tearDown回收   4. 定义测试类。unittest.main(),另外一种通过testsuite的方式指定运行某一些测试用例。unittest.TsetSuite()得到测试集对象。通过addTest()或者是addTests()   5. 运行测试集 来源: https://www

unittest发送测试报告邮件

限于喜欢 提交于 2019-12-05 22:28:30
About 有了测试报告就可以发送邮件了。 Python发邮件功能借助 smtplib 和 email 模块。 更多关于发邮件的故事点击: https://www.cnblogs.com/Neeo/articles/11199127.html 代码示例 import unittest import smtplib import HTMLTestRunner from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header class TestStringMethods(unittest.TestCase): def test_upper(self): """判断 foo.upper() 是否等于 FOO""" self.assertEqual('foo'.upper(), 'FOO') def test_isupper(self): """ 判断 Foo 是否为大写形式 """ self.assertTrue('Foo'.isupper()) def get_case_result(): """ 获取测试用例报告 """ suite = unittest.makeSuite(TestStringMethods)

unittest生成测试报告

 ̄綄美尐妖づ 提交于 2019-12-05 22:27:10
About HTMLTestRunner和BSTestRunner是Python标准库unittest的扩展,用来生成HTML的测试报告。两个下载安装和使用一致。 首先,Python2.x和Python3.x中两个扩展包不兼容(但下载和使用一致),这里以Python3.x为例。 只是目前,无法通过pip安装。所以在使用之前,需要下载 HTTLTestRunner.py ,下载地址在文章最后的链接中。或者将下面的源码拷贝一份,文件名为 HTTLTestRunner.py ,保存在Python解释器的 \Lib\site-packages\ 目录中即可。 BSTestRunner的下载使用参见HTTLTestRunner。 简单使用 import webbrowser import unittest import HTMLTestRunner import BSTestRunner class TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqual('foo'.upper(), 'FOO') def test_isupper(self): self.assertTrue('Foo'.isupper()) if __name__ == '__main__': suite = unittest

unittest自动化测试框架

梦想的初衷 提交于 2019-12-05 21:55:26
目录 框架的概念 Unittest单元测试框架 框架的概念 在系统开发过程中,框架是指对特定应用领域中的应用系统的部分设计和实现子系统的整体结构。 框架将应用系统划分为类和对象,定义类和对象的责任,类和对象如何相互协作,以及对象之间的控制线程。这些共有的设计因素由框架预先定义,自动化测试框架的定义为: 由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。 按框架的定义来分,自动化测试框架可以分为:基础功能测试框架、管理执行框架; 按不同的测试类型来分,可以分为:功能自动化测试框架、性能自动化测试框架; 按测试阶段来分,可以分为:单元自动化测试框架、接口自动化测试框架、系统自动化测试框架; 按组成结构来分,可以分为:单机自动化测试框架、分布式自动化测试框架。 Unittest单元测试框架 来源: https://www.cnblogs.com/TD1900/p/11946750.html

unittest框架

混江龙づ霸主 提交于 2019-12-05 20:36:09
About unittest是Python内置的单元测试框架(模块),不仅可以完成单元测试,也适用于web自动化测试中。 unittest提供了丰富的断言方法,判断测试用例是否通过,然后生成测试结果报告。 必要的准备与注意事项 首先,准备这样一个目录: M:\tests\ # 我的是M盘的tests目录,所有操作都在tests目录内完成 ├─discover │ ├─son │ │ ├─test_dict.py │ │ └─__init__.py │ ├─test_list.py │ ├─test_str.py │ └─__init__.py ├─loadTestsFromTestCaseDemo │ └─loadTestsFromTestCaseDemo.py ├─case_set.py ├─myMain.py # 代码演示文件,所有演示脚本文件 ├─test_tuple.py └─__init__.py 目录 如果跟流程走, 请务必建立和理解这样的一个目录,目前这些文件都是空的,后续会一一建立,各目录内的 __init__.py 也必须建立,虽然它是空的,但是它无比重要,因为它标明它所在目录是Python的包。 case_set.py 有4个函数,分别计算加减乘除,并且代码不变: """ 用例集 """ def add(x, y): """ 两数相加 """ return x

pytest和unittest对比

浪子不回头ぞ 提交于 2019-12-05 20:08:30
一、用例编写规则 1.在使用unittest编写测试用例的时候,需要遵循先创建testclass,测试类继承unittest.TestCase的固定格式。 pytest不需要,框架规范更自由,可以直接写def test_XXX()即可 (1)测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py) (2)测试方法必须以“test_”开头。 (3)测试类命名以"Test"开头。      二、用例分类执行 1、unittest默认执行全部用例,也可以通过加载testsuit,执行部分用例。 2、pytest可以通过@pytest.mark来标记类和方法,pytest.main加入参数("-m")可以只运行标记的类和方法。 三、用例前置和后置 1.unittest提供了setUp/tearDown,只能针对所有用例。 2.pytest中的fixture显然更加灵活。 可以任意自定义方法函数,只要加上@pytest.fixture()这个装饰器,那么被装饰的方法就可以被使用 四、参数化 1、unittest需依赖ddt库, 2、pytest直接使用 @pytest.mark.parametrize装饰器。 五、断言 1.unittest断言需要记很多断言格式(assertEqual、assertIn、assertTrue、assertFalse) 2

python_自动化测试用例参数化

送分小仙女□ 提交于 2019-12-05 14:53:01
参数化有三种,代码驱动,数据驱动,关键字驱动 代码驱动,测试数据写在代码中 如下: import requests,json import unittest import BeautifulReport fido_url = 'http://192.168.6.162:8080/uaf/reg/receive' '''代码驱动,代码实现做参数化的例子''' reg_receive_data1 = { "context": { "appID":"1103", "transNo":"1234567890", "userName":"mh", "transType":"00", "authType":"01", "opType":"00", "devices":{"deviceName": "HUA WEI", "deviceType": "iPhone 7", "deviceID": "0987654321"} } } reg_receive_data2 = { "context": { "appID":"", "transNo":"1234567890", "userName":"mh", "transType":"00", "authType":"01", "opType":"00", "devices":{"deviceName": "HUA WEI", "deviceType"

(三)unittest断言方法的介绍

被刻印的时光 ゝ 提交于 2019-12-05 11:12:20
断言如同在测试用例上,类似于预期结果与实际结果是否一致,如果一致则表示测试通过,Assert断言很好的用于测试结果判断上,更灵活的对预期结果和实际结果进行对比,下面简单的介绍一下unittest的Assert断言 unittest中基础的assert断言包括: 方法 用法 说明 assertEqual(a, b) a == b 用来判断a与b相等,如果相等则测试通过 assertNotEqual(a, b) a != b 用来判断a与b不相等,如果不相等则测试通过 assertTrue(x) bool(x) is True 用来判断条件是否为真,如果条件为真,测试通过(备注:最好使用assertEqual断言方法,代替) assertFalse(x) bool(x) is False 用来判断条件是否为假,如果条件为假,测试通过(备注:最好使用assertNotEqual断言方法,代替) assertIs(a, b) a is b 用来判断a和b是不是同一个对象,如果是,测试通过 assertIsNot(a, b) a is not b 用来判断a和b是不是同一个对象,如果不是,测试通过 assertIsNone(x) x is None 用来判断a是否空,如果为空,测试通过 assertIsNotNone(x) x is not None 用来判断a是否空,如果不为空,测试通过